1. Packages
  2. Azure Native
  3. API Docs
  4. compute
  5. VirtualMachine
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.34.0 published on Thursday, Mar 28, 2024 by Pulumi

azure-native.compute.VirtualMachine

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.34.0 published on Thursday, Mar 28, 2024 by Pulumi

    Describes a Virtual Machine. Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01.

    Other available API versions: 2023-07-01, 2023-09-01, 2024-03-01.

    Example Usage

    Create a Linux vm with a patch setting assessmentMode of ImageDefault.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.LinuxPatchAssessmentMode.ImageDefault,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "UbuntuServer",
                    Publisher = "Canonical",
                    Sku = "16.04-LTS",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				LinuxConfiguration: &compute.LinuxConfigurationArgs{
    					PatchSettings: &compute.LinuxPatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.LinuxPatchAssessmentModeImageDefault),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("UbuntuServer"),
    					Publisher: pulumi.String("Canonical"),
    					Sku:       pulumi.String("16.04-LTS"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxPatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .linuxConfiguration(LinuxConfigurationArgs.builder()
                        .patchSettings(LinuxPatchSettingsArgs.builder()
                            .assessmentMode("ImageDefault")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("UbuntuServer")
                        .publisher("Canonical")
                        .sku("16.04-LTS")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                patch_settings=azure_native.compute.LinuxPatchSettingsArgs(
                    assessment_mode=azure_native.compute.LinuxPatchAssessmentMode.IMAGE_DEFAULT,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="UbuntuServer",
                publisher="Canonical",
                sku="16.04-LTS",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            linuxConfiguration: {
                patchSettings: {
                    assessmentMode: azure_native.compute.LinuxPatchAssessmentMode.ImageDefault,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "UbuntuServer",
                publisher: "Canonical",
                sku: "16.04-LTS",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            linuxConfiguration:
              patchSettings:
                assessmentMode: ImageDefault
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: UbuntuServer
              publisher: Canonical
              sku: 16.04-LTS
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Linux vm with a patch setting patchMode of AutomaticByPlatform and AutomaticByPlatformSettings.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.LinuxPatchAssessmentMode.AutomaticByPlatform,
                        AutomaticByPlatformSettings = new AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs
                        {
                            BypassPlatformSafetyChecksOnUserSchedule = true,
                            RebootSetting = AzureNative.Compute.LinuxVMGuestPatchAutomaticByPlatformRebootSetting.Never,
                        },
                        PatchMode = AzureNative.Compute.LinuxVMGuestPatchMode.AutomaticByPlatform,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "UbuntuServer",
                    Publisher = "Canonical",
                    Sku = "16.04-LTS",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				LinuxConfiguration: &compute.LinuxConfigurationArgs{
    					PatchSettings: &compute.LinuxPatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.LinuxPatchAssessmentModeAutomaticByPlatform),
    						AutomaticByPlatformSettings: &compute.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs{
    							BypassPlatformSafetyChecksOnUserSchedule: pulumi.Bool(true),
    							RebootSetting:                            pulumi.String(compute.LinuxVMGuestPatchAutomaticByPlatformRebootSettingNever),
    						},
    						PatchMode: pulumi.String(compute.LinuxVMGuestPatchModeAutomaticByPlatform),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("UbuntuServer"),
    					Publisher: pulumi.String("Canonical"),
    					Sku:       pulumi.String("16.04-LTS"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxPatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .linuxConfiguration(LinuxConfigurationArgs.builder()
                        .patchSettings(LinuxPatchSettingsArgs.builder()
                            .assessmentMode("AutomaticByPlatform")
                            .automaticByPlatformSettings(LinuxVMGuestPatchAutomaticByPlatformSettingsArgs.builder()
                                .bypassPlatformSafetyChecksOnUserSchedule(true)
                                .rebootSetting("Never")
                                .build())
                            .patchMode("AutomaticByPlatform")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("UbuntuServer")
                        .publisher("Canonical")
                        .sku("16.04-LTS")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                patch_settings=azure_native.compute.LinuxPatchSettingsArgs(
                    assessment_mode=azure_native.compute.LinuxPatchAssessmentMode.AUTOMATIC_BY_PLATFORM,
                    automatic_by_platform_settings=azure_native.compute.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs(
                        bypass_platform_safety_checks_on_user_schedule=True,
                        reboot_setting=azure_native.compute.LinuxVMGuestPatchAutomaticByPlatformRebootSetting.NEVER,
                    ),
                    patch_mode=azure_native.compute.LinuxVMGuestPatchMode.AUTOMATIC_BY_PLATFORM,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="UbuntuServer",
                publisher="Canonical",
                sku="16.04-LTS",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            linuxConfiguration: {
                patchSettings: {
                    assessmentMode: azure_native.compute.LinuxPatchAssessmentMode.AutomaticByPlatform,
                    automaticByPlatformSettings: {
                        bypassPlatformSafetyChecksOnUserSchedule: true,
                        rebootSetting: azure_native.compute.LinuxVMGuestPatchAutomaticByPlatformRebootSetting.Never,
                    },
                    patchMode: azure_native.compute.LinuxVMGuestPatchMode.AutomaticByPlatform,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "UbuntuServer",
                publisher: "Canonical",
                sku: "16.04-LTS",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            linuxConfiguration:
              patchSettings:
                assessmentMode: AutomaticByPlatform
                automaticByPlatformSettings:
                  bypassPlatformSafetyChecksOnUserSchedule: true
                  rebootSetting: Never
                patchMode: AutomaticByPlatform
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: UbuntuServer
              publisher: Canonical
              sku: 16.04-LTS
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Linux vm with a patch setting patchMode of ImageDefault.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
                    {
                        PatchMode = AzureNative.Compute.LinuxVMGuestPatchMode.ImageDefault,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "UbuntuServer",
                    Publisher = "Canonical",
                    Sku = "16.04-LTS",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				LinuxConfiguration: &compute.LinuxConfigurationArgs{
    					PatchSettings: &compute.LinuxPatchSettingsArgs{
    						PatchMode: pulumi.String(compute.LinuxVMGuestPatchModeImageDefault),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("UbuntuServer"),
    					Publisher: pulumi.String("Canonical"),
    					Sku:       pulumi.String("16.04-LTS"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxPatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .linuxConfiguration(LinuxConfigurationArgs.builder()
                        .patchSettings(LinuxPatchSettingsArgs.builder()
                            .patchMode("ImageDefault")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("UbuntuServer")
                        .publisher("Canonical")
                        .sku("16.04-LTS")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                patch_settings=azure_native.compute.LinuxPatchSettingsArgs(
                    patch_mode=azure_native.compute.LinuxVMGuestPatchMode.IMAGE_DEFAULT,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="UbuntuServer",
                publisher="Canonical",
                sku="16.04-LTS",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            linuxConfiguration: {
                patchSettings: {
                    patchMode: azure_native.compute.LinuxVMGuestPatchMode.ImageDefault,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "UbuntuServer",
                publisher: "Canonical",
                sku: "16.04-LTS",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            linuxConfiguration:
              patchSettings:
                patchMode: ImageDefault
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: UbuntuServer
              publisher: Canonical
              sku: 16.04-LTS
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Linux vm with a patch settings patchMode and assessmentMode set to AutomaticByPlatform.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.LinuxPatchAssessmentMode.AutomaticByPlatform,
                        PatchMode = AzureNative.Compute.LinuxVMGuestPatchMode.AutomaticByPlatform,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "UbuntuServer",
                    Publisher = "Canonical",
                    Sku = "16.04-LTS",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				LinuxConfiguration: &compute.LinuxConfigurationArgs{
    					PatchSettings: &compute.LinuxPatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.LinuxPatchAssessmentModeAutomaticByPlatform),
    						PatchMode:      pulumi.String(compute.LinuxVMGuestPatchModeAutomaticByPlatform),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("UbuntuServer"),
    					Publisher: pulumi.String("Canonical"),
    					Sku:       pulumi.String("16.04-LTS"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxPatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .linuxConfiguration(LinuxConfigurationArgs.builder()
                        .patchSettings(LinuxPatchSettingsArgs.builder()
                            .assessmentMode("AutomaticByPlatform")
                            .patchMode("AutomaticByPlatform")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("UbuntuServer")
                        .publisher("Canonical")
                        .sku("16.04-LTS")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                patch_settings=azure_native.compute.LinuxPatchSettingsArgs(
                    assessment_mode=azure_native.compute.LinuxPatchAssessmentMode.AUTOMATIC_BY_PLATFORM,
                    patch_mode=azure_native.compute.LinuxVMGuestPatchMode.AUTOMATIC_BY_PLATFORM,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="UbuntuServer",
                publisher="Canonical",
                sku="16.04-LTS",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            linuxConfiguration: {
                patchSettings: {
                    assessmentMode: azure_native.compute.LinuxPatchAssessmentMode.AutomaticByPlatform,
                    patchMode: azure_native.compute.LinuxVMGuestPatchMode.AutomaticByPlatform,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "UbuntuServer",
                publisher: "Canonical",
                sku: "16.04-LTS",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            linuxConfiguration:
              patchSettings:
                assessmentMode: AutomaticByPlatform
                patchMode: AutomaticByPlatform
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: UbuntuServer
              publisher: Canonical
              sku: 16.04-LTS
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    CommunityGalleryImageId = "/CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					CommunityGalleryImageId: pulumi.String("/CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .communityGalleryImageId("/CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                community_gallery_image_id="/CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                communityGalleryImageId: "/CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              communityGalleryImageId: /CommunityGalleries/galleryPublicName/Images/communityGalleryImageName/Versions/communityGalleryImageVersionName
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    SharedGalleryImageId = "/SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					SharedGalleryImageId: pulumi.String("/SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .sharedGalleryImageId("/SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                shared_gallery_image_id="/SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                sharedGalleryImageId: "/SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              sharedGalleryImageId: /SharedGalleries/sharedGalleryName/Images/sharedGalleryImageName/Versions/sharedGalleryImageVersionName
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a VM with Disk Controller Type

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D4_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                DiskControllerType = AzureNative.Compute.DiskControllerTypes.NVMe,
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            UserData = "U29tZSBDdXN0b20gRGF0YQ==",
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D4_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				DiskControllerType: pulumi.String(compute.DiskControllerTypesNVMe),
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			UserData: pulumi.String("U29tZSBDdXN0b20gRGF0YQ=="),
    			VmName:   pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D4_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .diskControllerType("NVMe")
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .userData("U29tZSBDdXN0b20gRGF0YQ==")
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D4_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            disk_controller_type=azure_native.compute.DiskControllerTypes.NV_ME,
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        user_data="U29tZSBDdXN0b20gRGF0YQ==",
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D4_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            diskControllerType: azure_native.compute.DiskControllerTypes.NVMe,
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        userData: "U29tZSBDdXN0b20gRGF0YQ==",
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D4_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            diskControllerType: NVMe
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          userData: U29tZSBDdXN0b20gRGF0YQ==
          vmName: myVM
    

    Create a VM with HibernationEnabled

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            AdditionalCapabilities = new AzureNative.Compute.Inputs.AdditionalCapabilitiesArgs
            {
                HibernationEnabled = true,
            },
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "eastus2euap",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "{vm-name}",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2019-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "vmOSdisk",
                },
            },
            VmName = "{vm-name}",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			AdditionalCapabilities: &compute.AdditionalCapabilitiesArgs{
    				HibernationEnabled: pulumi.Bool(true),
    			},
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("eastus2euap"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("{vm-name}"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2019-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("vmOSdisk"),
    				},
    			},
    			VmName: pulumi.String("{vm-name}"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.AdditionalCapabilitiesArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .additionalCapabilities(AdditionalCapabilitiesArgs.builder()
                    .hibernationEnabled(true)
                    .build())
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("eastus2euap")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("{vm-name}")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2019-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("vmOSdisk")
                        .build())
                    .build())
                .vmName("{vm-name}")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        additional_capabilities=azure_native.compute.AdditionalCapabilitiesArgs(
            hibernation_enabled=True,
        ),
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="eastus2euap",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="{vm-name}",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2019-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="vmOSdisk",
            ),
        ),
        vm_name="{vm-name}")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        additionalCapabilities: {
            hibernationEnabled: true,
        },
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "eastus2euap",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "{vm-name}",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2019-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "vmOSdisk",
            },
        },
        vmName: "{vm-name}",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          additionalCapabilities:
            hibernationEnabled: true
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: eastus2euap
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: '{vm-name}'
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2019-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: vmOSdisk
          vmName: '{vm-name}'
    

    Create a VM with Uefi Settings of secureBoot and vTPM.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2s_v3,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.SecurityTypes.TrustedLaunch,
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = true,
                    VTpmEnabled = true,
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windowsserver-gen2preview-preview",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "windows10-tvm",
                    Version = "18363.592.2001092016",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2s_v3),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.SecurityProfileArgs{
    				SecurityType: pulumi.String(compute.SecurityTypesTrustedLaunch),
    				UefiSettings: &compute.UefiSettingsArgs{
    					SecureBootEnabled: pulumi.Bool(true),
    					VTpmEnabled:       pulumi.Bool(true),
    				},
    			},
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windowsserver-gen2preview-preview"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("windows10-tvm"),
    					Version:   pulumi.String("18363.592.2001092016"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_StandardSSD_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2s_v3")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .securityProfile(SecurityProfileArgs.builder()
                    .securityType("TrustedLaunch")
                    .uefiSettings(UefiSettingsArgs.builder()
                        .secureBootEnabled(true)
                        .vTpmEnabled(true)
                        .build())
                    .build())
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windowsserver-gen2preview-preview")
                        .publisher("MicrosoftWindowsServer")
                        .sku("windows10-tvm")
                        .version("18363.592.2001092016")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("StandardSSD_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2S_V3,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        security_profile=azure_native.compute.SecurityProfileArgs(
            security_type=azure_native.compute.SecurityTypes.TRUSTED_LAUNCH,
            uefi_settings=azure_native.compute.UefiSettingsArgs(
                secure_boot_enabled=True,
                v_tpm_enabled=True,
            ),
        ),
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windowsserver-gen2preview-preview",
                publisher="MicrosoftWindowsServer",
                sku="windows10-tvm",
                version="18363.592.2001092016",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2s_v3,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.SecurityTypes.TrustedLaunch,
            uefiSettings: {
                secureBootEnabled: true,
                vTpmEnabled: true,
            },
        },
        storageProfile: {
            imageReference: {
                offer: "windowsserver-gen2preview-preview",
                publisher: "MicrosoftWindowsServer",
                sku: "windows10-tvm",
                version: "18363.592.2001092016",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2s_v3
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: TrustedLaunch
            uefiSettings:
              secureBootEnabled: true
              vTpmEnabled: true
          storageProfile:
            imageReference:
              offer: windowsserver-gen2preview-preview
              publisher: MicrosoftWindowsServer
              sku: windows10-tvm
              version: 18363.592.2001092016
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              managedDisk:
                storageAccountType: StandardSSD_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a VM with UserData

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "{vm-name}",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "vmOSdisk",
                },
            },
            UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            VmName = "{vm-name}",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("{vm-name}"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("vmOSdisk"),
    				},
    			},
    			UserData: pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
    			VmName:   pulumi.String("{vm-name}"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("{vm-name}")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("vmOSdisk")
                        .build())
                    .build())
                .userData("RXhhbXBsZSBVc2VyRGF0YQ==")
                .vmName("{vm-name}")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="{vm-name}",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="vmOSdisk",
            ),
        ),
        user_data="RXhhbXBsZSBVc2VyRGF0YQ==",
        vm_name="{vm-name}")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "{vm-name}",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "vmOSdisk",
            },
        },
        userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        vmName: "{vm-name}",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: '{vm-name}'
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: vmOSdisk
          userData: RXhhbXBsZSBVc2VyRGF0YQ==
          vmName: '{vm-name}'
    

    Create a VM with VM Size Properties

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D4_v3,
                VmSizeProperties = new AzureNative.Compute.Inputs.VMSizePropertiesArgs
                {
                    VCPUsAvailable = 1,
                    VCPUsPerCore = 1,
                },
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            UserData = "U29tZSBDdXN0b20gRGF0YQ==",
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D4_v3),
    				VmSizeProperties: &compute.VMSizePropertiesArgs{
    					VCPUsAvailable: pulumi.Int(1),
    					VCPUsPerCore:   pulumi.Int(1),
    				},
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			UserData: pulumi.String("U29tZSBDdXN0b20gRGF0YQ=="),
    			VmName:   pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VMSizePropertiesArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D4_v3")
                    .vmSizeProperties(VMSizePropertiesArgs.builder()
                        .vCPUsAvailable(1)
                        .vCPUsPerCore(1)
                        .build())
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .userData("U29tZSBDdXN0b20gRGF0YQ==")
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D4_V3,
            vm_size_properties=azure_native.compute.VMSizePropertiesArgs(
                v_cpus_available=1,
                v_cpus_per_core=1,
            ),
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        user_data="U29tZSBDdXN0b20gRGF0YQ==",
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D4_v3,
            vmSizeProperties: {
                vCPUsAvailable: 1,
                vCPUsPerCore: 1,
            },
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        userData: "U29tZSBDdXN0b20gRGF0YQ==",
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D4_v3
            vmSizeProperties:
              vCPUsAvailable: 1
              vCPUsPerCore: 1
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          userData: U29tZSBDdXN0b20gRGF0YQ==
          vmName: myVM
    

    Create a VM with network interface configuration

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkApiVersion = AzureNative.Compute.NetworkApiVersion.NetworkApiVersion_2020_11_01,
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceConfigurationArgs
                    {
                        DeleteOption = AzureNative.Compute.DeleteOptions.Delete,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceIPConfigurationArgs
                            {
                                Name = "{ip-config-name}",
                                Primary = true,
                                PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressConfigurationArgs
                                {
                                    DeleteOption = AzureNative.Compute.DeleteOptions.Detach,
                                    Name = "{publicIP-config-name}",
                                    PublicIPAllocationMethod = AzureNative.Compute.PublicIPAllocationMethod.Static,
                                    Sku = new AzureNative.Compute.Inputs.PublicIPAddressSkuArgs
                                    {
                                        Name = AzureNative.Compute.PublicIPAddressSkuName.Basic,
                                        Tier = AzureNative.Compute.PublicIPAddressSkuTier.Global,
                                    },
                                },
                            },
                        },
                        Name = "{nic-config-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkApiVersion: pulumi.String(compute.NetworkApiVersion_2020_11_01),
    				NetworkInterfaceConfigurations: compute.VirtualMachineNetworkInterfaceConfigurationArray{
    					&compute.VirtualMachineNetworkInterfaceConfigurationArgs{
    						DeleteOption: pulumi.String(compute.DeleteOptionsDelete),
    						IpConfigurations: compute.VirtualMachineNetworkInterfaceIPConfigurationArray{
    							&compute.VirtualMachineNetworkInterfaceIPConfigurationArgs{
    								Name:    pulumi.String("{ip-config-name}"),
    								Primary: pulumi.Bool(true),
    								PublicIPAddressConfiguration: &compute.VirtualMachinePublicIPAddressConfigurationArgs{
    									DeleteOption:             pulumi.String(compute.DeleteOptionsDetach),
    									Name:                     pulumi.String("{publicIP-config-name}"),
    									PublicIPAllocationMethod: pulumi.String(compute.PublicIPAllocationMethodStatic),
    									Sku: &compute.PublicIPAddressSkuArgs{
    										Name: pulumi.String(compute.PublicIPAddressSkuNameBasic),
    										Tier: pulumi.String(compute.PublicIPAddressSkuTierGlobal),
    									},
    								},
    							},
    						},
    						Name:    pulumi.String("{nic-config-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkApiVersion("2020-11-01")
                    .networkInterfaceConfigurations(VirtualMachineNetworkInterfaceConfigurationArgs.builder()
                        .deleteOption("Delete")
                        .ipConfigurations(VirtualMachineNetworkInterfaceIPConfigurationArgs.builder()
                            .name("{ip-config-name}")
                            .primary(true)
                            .publicIPAddressConfiguration(VirtualMachinePublicIPAddressConfigurationArgs.builder()
                                .deleteOption("Detach")
                                .name("{publicIP-config-name}")
                                .publicIPAllocationMethod("Static")
                                .sku(PublicIPAddressSkuArgs.builder()
                                    .name("Basic")
                                    .tier("Global")
                                    .build())
                                .build())
                            .build())
                        .name("{nic-config-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_api_version=azure_native.compute.NetworkApiVersion.NETWORK_API_VERSION_2020_11_01,
            network_interface_configurations=[azure_native.compute.VirtualMachineNetworkInterfaceConfigurationArgs(
                delete_option=azure_native.compute.DeleteOptions.DELETE,
                ip_configurations=[azure_native.compute.VirtualMachineNetworkInterfaceIPConfigurationArgs(
                    name="{ip-config-name}",
                    primary=True,
                    public_ip_address_configuration=azure_native.compute.VirtualMachinePublicIPAddressConfigurationArgs(
                        delete_option=azure_native.compute.DeleteOptions.DETACH,
                        name="{publicIP-config-name}",
                        public_ip_allocation_method=azure_native.compute.PublicIPAllocationMethod.STATIC,
                        sku=azure_native.compute.PublicIPAddressSkuArgs(
                            name=azure_native.compute.PublicIPAddressSkuName.BASIC,
                            tier=azure_native.compute.PublicIPAddressSkuTier.GLOBAL_,
                        ),
                    ),
                )],
                name="{nic-config-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkApiVersion: azure_native.compute.NetworkApiVersion.NetworkApiVersion_2020_11_01,
            networkInterfaceConfigurations: [{
                deleteOption: azure_native.compute.DeleteOptions.Delete,
                ipConfigurations: [{
                    name: "{ip-config-name}",
                    primary: true,
                    publicIPAddressConfiguration: {
                        deleteOption: azure_native.compute.DeleteOptions.Detach,
                        name: "{publicIP-config-name}",
                        publicIPAllocationMethod: azure_native.compute.PublicIPAllocationMethod.Static,
                        sku: {
                            name: azure_native.compute.PublicIPAddressSkuName.Basic,
                            tier: azure_native.compute.PublicIPAddressSkuTier.Global,
                        },
                    },
                }],
                name: "{nic-config-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkApiVersion: 2020-11-01
            networkInterfaceConfigurations:
              - deleteOption: Delete
                ipConfigurations:
                  - name: '{ip-config-name}'
                    primary: true
                    publicIPAddressConfiguration:
                      deleteOption: Detach
                      name: '{publicIP-config-name}'
                      publicIPAllocationMethod: Static
                      sku:
                        name: Basic
                        tier: Global
                name: '{nic-config-name}'
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a VM with securityType ConfidentialVM with Customer Managed Keys

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = "Standard_DC2as_v5",
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.SecurityTypes.ConfidentialVM,
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = true,
                    VTpmEnabled = true,
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "2019-datacenter-cvm",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "windows-cvm",
                    Version = "17763.2183.2109130127",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                            },
                            SecurityEncryptionType = AzureNative.Compute.SecurityEncryptionTypes.DiskWithVMGuestState,
                        },
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String("Standard_DC2as_v5"),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.SecurityProfileArgs{
    				SecurityType: pulumi.String(compute.SecurityTypesConfidentialVM),
    				UefiSettings: &compute.UefiSettingsArgs{
    					SecureBootEnabled: pulumi.Bool(true),
    					VTpmEnabled:       pulumi.Bool(true),
    				},
    			},
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("2019-datacenter-cvm"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("windows-cvm"),
    					Version:   pulumi.String("17763.2183.2109130127"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    							},
    							SecurityEncryptionType: pulumi.String(compute.SecurityEncryptionTypesDiskWithVMGuestState),
    						},
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_StandardSSD_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.VMDiskSecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiskEncryptionSetParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DC2as_v5")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .securityProfile(SecurityProfileArgs.builder()
                    .securityType("ConfidentialVM")
                    .uefiSettings(UefiSettingsArgs.builder()
                        .secureBootEnabled(true)
                        .vTpmEnabled(true)
                        .build())
                    .build())
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("2019-datacenter-cvm")
                        .publisher("MicrosoftWindowsServer")
                        .sku("windows-cvm")
                        .version("17763.2183.2109130127")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .securityProfile(VMDiskSecurityProfileArgs.builder()
                                .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                    .build())
                                .securityEncryptionType("DiskWithVMGuestState")
                                .build())
                            .storageAccountType("StandardSSD_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size="Standard_DC2as_v5",
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        security_profile=azure_native.compute.SecurityProfileArgs(
            security_type=azure_native.compute.SecurityTypes.CONFIDENTIAL_VM,
            uefi_settings=azure_native.compute.UefiSettingsArgs(
                secure_boot_enabled=True,
                v_tpm_enabled=True,
            ),
        ),
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="2019-datacenter-cvm",
                publisher="MicrosoftWindowsServer",
                sku="windows-cvm",
                version="17763.2183.2109130127",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    security_profile=azure_native.compute.VMDiskSecurityProfileArgs(
                        disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        ),
                        security_encryption_type=azure_native.compute.SecurityEncryptionTypes.DISK_WITH_VM_GUEST_STATE,
                    ),
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: "Standard_DC2as_v5",
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.SecurityTypes.ConfidentialVM,
            uefiSettings: {
                secureBootEnabled: true,
                vTpmEnabled: true,
            },
        },
        storageProfile: {
            imageReference: {
                offer: "2019-datacenter-cvm",
                publisher: "MicrosoftWindowsServer",
                sku: "windows-cvm",
                version: "17763.2183.2109130127",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    securityProfile: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        securityEncryptionType: azure_native.compute.SecurityEncryptionTypes.DiskWithVMGuestState,
                    },
                    storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DC2as_v5
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: ConfidentialVM
            uefiSettings:
              secureBootEnabled: true
              vTpmEnabled: true
          storageProfile:
            imageReference:
              offer: 2019-datacenter-cvm
              publisher: MicrosoftWindowsServer
              sku: windows-cvm
              version: 17763.2183.2109130127
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              managedDisk:
                securityProfile:
                  diskEncryptionSet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                  securityEncryptionType: DiskWithVMGuestState
                storageAccountType: StandardSSD_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a VM with securityType ConfidentialVM with Platform Managed Keys

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = "Standard_DC2as_v5",
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.SecurityTypes.ConfidentialVM,
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = true,
                    VTpmEnabled = true,
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "2019-datacenter-cvm",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "windows-cvm",
                    Version = "17763.2183.2109130127",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                        {
                            SecurityEncryptionType = AzureNative.Compute.SecurityEncryptionTypes.DiskWithVMGuestState,
                        },
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String("Standard_DC2as_v5"),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.SecurityProfileArgs{
    				SecurityType: pulumi.String(compute.SecurityTypesConfidentialVM),
    				UefiSettings: &compute.UefiSettingsArgs{
    					SecureBootEnabled: pulumi.Bool(true),
    					VTpmEnabled:       pulumi.Bool(true),
    				},
    			},
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("2019-datacenter-cvm"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("windows-cvm"),
    					Version:   pulumi.String("17763.2183.2109130127"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    							SecurityEncryptionType: pulumi.String(compute.SecurityEncryptionTypesDiskWithVMGuestState),
    						},
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_StandardSSD_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.VMDiskSecurityProfileArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DC2as_v5")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .securityProfile(SecurityProfileArgs.builder()
                    .securityType("ConfidentialVM")
                    .uefiSettings(UefiSettingsArgs.builder()
                        .secureBootEnabled(true)
                        .vTpmEnabled(true)
                        .build())
                    .build())
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("2019-datacenter-cvm")
                        .publisher("MicrosoftWindowsServer")
                        .sku("windows-cvm")
                        .version("17763.2183.2109130127")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .securityProfile(VMDiskSecurityProfileArgs.builder()
                                .securityEncryptionType("DiskWithVMGuestState")
                                .build())
                            .storageAccountType("StandardSSD_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size="Standard_DC2as_v5",
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        security_profile=azure_native.compute.SecurityProfileArgs(
            security_type=azure_native.compute.SecurityTypes.CONFIDENTIAL_VM,
            uefi_settings=azure_native.compute.UefiSettingsArgs(
                secure_boot_enabled=True,
                v_tpm_enabled=True,
            ),
        ),
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="2019-datacenter-cvm",
                publisher="MicrosoftWindowsServer",
                sku="windows-cvm",
                version="17763.2183.2109130127",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    security_profile=azure_native.compute.VMDiskSecurityProfileArgs(
                        security_encryption_type=azure_native.compute.SecurityEncryptionTypes.DISK_WITH_VM_GUEST_STATE,
                    ),
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: "Standard_DC2as_v5",
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.SecurityTypes.ConfidentialVM,
            uefiSettings: {
                secureBootEnabled: true,
                vTpmEnabled: true,
            },
        },
        storageProfile: {
            imageReference: {
                offer: "2019-datacenter-cvm",
                publisher: "MicrosoftWindowsServer",
                sku: "windows-cvm",
                version: "17763.2183.2109130127",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    securityProfile: {
                        securityEncryptionType: azure_native.compute.SecurityEncryptionTypes.DiskWithVMGuestState,
                    },
                    storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DC2as_v5
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: ConfidentialVM
            uefiSettings:
              secureBootEnabled: true
              vTpmEnabled: true
          storageProfile:
            imageReference:
              offer: 2019-datacenter-cvm
              publisher: MicrosoftWindowsServer
              sku: windows-cvm
              version: 17763.2183.2109130127
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              managedDisk:
                securityProfile:
                  securityEncryptionType: DiskWithVMGuestState
                storageAccountType: StandardSSD_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with a patch setting assessmentMode of ImageDefault.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.WindowsPatchAssessmentMode.ImageDefault,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.WindowsPatchAssessmentModeImageDefault),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .assessmentMode("ImageDefault")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    assessment_mode=azure_native.compute.WindowsPatchAssessmentMode.IMAGE_DEFAULT,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    assessmentMode: azure_native.compute.WindowsPatchAssessmentMode.ImageDefault,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                assessmentMode: ImageDefault
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with a patch setting patchMode of AutomaticByOS.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.AutomaticByOS,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						PatchMode: pulumi.String(compute.WindowsVMGuestPatchModeAutomaticByOS),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .patchMode("AutomaticByOS")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    patch_mode=azure_native.compute.WindowsVMGuestPatchMode.AUTOMATIC_BY_OS,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    patchMode: azure_native.compute.WindowsVMGuestPatchMode.AutomaticByOS,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                patchMode: AutomaticByOS
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with a patch setting patchMode of AutomaticByPlatform and AutomaticByPlatformSettings.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.WindowsPatchAssessmentMode.AutomaticByPlatform,
                        AutomaticByPlatformSettings = new AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs
                        {
                            BypassPlatformSafetyChecksOnUserSchedule = false,
                            RebootSetting = AzureNative.Compute.WindowsVMGuestPatchAutomaticByPlatformRebootSetting.Never,
                        },
                        PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.WindowsPatchAssessmentModeAutomaticByPlatform),
    						AutomaticByPlatformSettings: &compute.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs{
    							BypassPlatformSafetyChecksOnUserSchedule: pulumi.Bool(false),
    							RebootSetting:                            pulumi.String(compute.WindowsVMGuestPatchAutomaticByPlatformRebootSettingNever),
    						},
    						PatchMode: pulumi.String(compute.WindowsVMGuestPatchModeAutomaticByPlatform),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .assessmentMode("AutomaticByPlatform")
                            .automaticByPlatformSettings(WindowsVMGuestPatchAutomaticByPlatformSettingsArgs.builder()
                                .bypassPlatformSafetyChecksOnUserSchedule(false)
                                .rebootSetting("Never")
                                .build())
                            .patchMode("AutomaticByPlatform")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    assessment_mode=azure_native.compute.WindowsPatchAssessmentMode.AUTOMATIC_BY_PLATFORM,
                    automatic_by_platform_settings=azure_native.compute.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs(
                        bypass_platform_safety_checks_on_user_schedule=False,
                        reboot_setting=azure_native.compute.WindowsVMGuestPatchAutomaticByPlatformRebootSetting.NEVER,
                    ),
                    patch_mode=azure_native.compute.WindowsVMGuestPatchMode.AUTOMATIC_BY_PLATFORM,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    assessmentMode: azure_native.compute.WindowsPatchAssessmentMode.AutomaticByPlatform,
                    automaticByPlatformSettings: {
                        bypassPlatformSafetyChecksOnUserSchedule: false,
                        rebootSetting: azure_native.compute.WindowsVMGuestPatchAutomaticByPlatformRebootSetting.Never,
                    },
                    patchMode: azure_native.compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                assessmentMode: AutomaticByPlatform
                automaticByPlatformSettings:
                  bypassPlatformSafetyChecksOnUserSchedule: false
                  rebootSetting: Never
                patchMode: AutomaticByPlatform
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with a patch setting patchMode of AutomaticByPlatform and enableHotpatching set to true.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        EnableHotpatching = true,
                        PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						EnableHotpatching: pulumi.Bool(true),
    						PatchMode:         pulumi.String(compute.WindowsVMGuestPatchModeAutomaticByPlatform),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .enableHotpatching(true)
                            .patchMode("AutomaticByPlatform")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    enable_hotpatching=True,
                    patch_mode=azure_native.compute.WindowsVMGuestPatchMode.AUTOMATIC_BY_PLATFORM,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    enableHotpatching: true,
                    patchMode: azure_native.compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                enableHotpatching: true
                patchMode: AutomaticByPlatform
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with a patch setting patchMode of Manual.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.Manual,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						PatchMode: pulumi.String(compute.WindowsVMGuestPatchModeManual),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .patchMode("Manual")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    patch_mode=azure_native.compute.WindowsVMGuestPatchMode.MANUAL,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    patchMode: azure_native.compute.WindowsVMGuestPatchMode.Manual,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                patchMode: Manual
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a Windows vm with patch settings patchMode and assessmentMode set to AutomaticByPlatform.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    EnableAutomaticUpdates = true,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        AssessmentMode = AzureNative.Compute.WindowsPatchAssessmentMode.AutomaticByPlatform,
                        PatchMode = AzureNative.Compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                    },
                    ProvisionVMAgent = true,
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				WindowsConfiguration: &compute.WindowsConfigurationArgs{
    					EnableAutomaticUpdates: pulumi.Bool(true),
    					PatchSettings: &compute.PatchSettingsArgs{
    						AssessmentMode: pulumi.String(compute.WindowsPatchAssessmentModeAutomaticByPlatform),
    						PatchMode:      pulumi.String(compute.WindowsVMGuestPatchModeAutomaticByPlatform),
    					},
    					ProvisionVMAgent: pulumi.Bool(true),
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.WindowsConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.PatchSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .windowsConfiguration(WindowsConfigurationArgs.builder()
                        .enableAutomaticUpdates(true)
                        .patchSettings(PatchSettingsArgs.builder()
                            .assessmentMode("AutomaticByPlatform")
                            .patchMode("AutomaticByPlatform")
                            .build())
                        .provisionVMAgent(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
            windows_configuration=azure_native.compute.WindowsConfigurationArgs(
                enable_automatic_updates=True,
                patch_settings=azure_native.compute.PatchSettingsArgs(
                    assessment_mode=azure_native.compute.WindowsPatchAssessmentMode.AUTOMATIC_BY_PLATFORM,
                    patch_mode=azure_native.compute.WindowsVMGuestPatchMode.AUTOMATIC_BY_PLATFORM,
                ),
                provision_vm_agent=True,
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
            windowsConfiguration: {
                enableAutomaticUpdates: true,
                patchSettings: {
                    assessmentMode: azure_native.compute.WindowsPatchAssessmentMode.AutomaticByPlatform,
                    patchMode: azure_native.compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
                },
                provisionVMAgent: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
            windowsConfiguration:
              enableAutomaticUpdates: true
              patchSettings:
                assessmentMode: AutomaticByPlatform
                patchMode: AutomaticByPlatform
              provisionVMAgent: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a custom-image vm from an unmanaged generalized os image.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                    {
                        Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                    },
                    Name = "myVMosdisk",
                    OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
                    Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                    {
                        Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                    },
                },
            },
            VmName = "{vm-name}",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					Image: &compute.VirtualHardDiskArgs{
    						Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd"),
    					},
    					Name:   pulumi.String("myVMosdisk"),
    					OsType: compute.OperatingSystemTypesWindows,
    					Vhd: &compute.VirtualHardDiskArgs{
    						Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd"),
    					},
    				},
    			},
    			VmName: pulumi.String("{vm-name}"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualHardDiskArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .image(VirtualHardDiskArgs.builder()
                            .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd")
                            .build())
                        .name("myVMosdisk")
                        .osType("Windows")
                        .vhd(VirtualHardDiskArgs.builder()
                            .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd")
                            .build())
                        .build())
                    .build())
                .vmName("{vm-name}")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                image=azure_native.compute.VirtualHardDiskArgs(
                    uri="http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                ),
                name="myVMosdisk",
                os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
                vhd=azure_native.compute.VirtualHardDiskArgs(
                    uri="http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                ),
            ),
        ),
        vm_name="{vm-name}")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                image: {
                    uri: "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                },
                name: "myVMosdisk",
                osType: azure_native.compute.OperatingSystemTypes.Windows,
                vhd: {
                    uri: "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                },
            },
        },
        vmName: "{vm-name}",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              image:
                uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd
              name: myVMosdisk
              osType: Windows
              vhd:
                uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd
          vmName: '{vm-name}'
    

    Create a platform-image vm with unmanaged os and data disks.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                        DiskSizeGB = 1023,
                        Lun = 0,
                        Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                        {
                            Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd",
                        },
                    },
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                        DiskSizeGB = 1023,
                        Lun = 1,
                        Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                        {
                            Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd",
                        },
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    Name = "myVMosdisk",
                    Vhd = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                    {
                        Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                    },
                },
            },
            VmName = "{vm-name}",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				DataDisks: compute.DataDiskArray{
    					&compute.DataDiskArgs{
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(0),
    						Vhd: &compute.VirtualHardDiskArgs{
    							Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd"),
    						},
    					},
    					&compute.DataDiskArgs{
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(1),
    						Vhd: &compute.VirtualHardDiskArgs{
    							Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd"),
    						},
    					},
    				},
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					Name:         pulumi.String("myVMosdisk"),
    					Vhd: &compute.VirtualHardDiskArgs{
    						Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd"),
    					},
    				},
    			},
    			VmName: pulumi.String("{vm-name}"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualHardDiskArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .dataDisks(                
                        DataDiskArgs.builder()
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(0)
                            .vhd(VirtualHardDiskArgs.builder()
                                .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd")
                                .build())
                            .build(),
                        DataDiskArgs.builder()
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(1)
                            .vhd(VirtualHardDiskArgs.builder()
                                .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd")
                                .build())
                            .build())
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .name("myVMosdisk")
                        .vhd(VirtualHardDiskArgs.builder()
                            .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd")
                            .build())
                        .build())
                    .build())
                .vmName("{vm-name}")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            data_disks=[
                azure_native.compute.DataDiskArgs(
                    create_option=azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    disk_size_gb=1023,
                    lun=0,
                    vhd=azure_native.compute.VirtualHardDiskArgs(
                        uri="http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd",
                    ),
                ),
                azure_native.compute.DataDiskArgs(
                    create_option=azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    disk_size_gb=1023,
                    lun=1,
                    vhd=azure_native.compute.VirtualHardDiskArgs(
                        uri="http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd",
                    ),
                ),
            ],
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                name="myVMosdisk",
                vhd=azure_native.compute.VirtualHardDiskArgs(
                    uri="http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                ),
            ),
        ),
        vm_name="{vm-name}")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            dataDisks: [
                {
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 0,
                    vhd: {
                        uri: "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd",
                    },
                },
                {
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 1,
                    vhd: {
                        uri: "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd",
                    },
                },
            ],
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                name: "myVMosdisk",
                vhd: {
                    uri: "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd",
                },
            },
        },
        vmName: "{vm-name}",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            dataDisks:
              - createOption: Empty
                diskSizeGB: 1023
                lun: 0
                vhd:
                  uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd
              - createOption: Empty
                diskSizeGB: 1023
                lun: 1
                vhd:
                  uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              name: myVMosdisk
              vhd:
                uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd
          vmName: '{vm-name}'
    

    Create a vm from a custom image.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm from a generalized shared image.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm from a specialized shared image.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm in a Virtual Machine Scale Set with customer assigned platformFaultDomain.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            PlatformFaultDomain = 1,
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VirtualMachineScaleSet = new AzureNative.Compute.Inputs.SubResourceArgs
            {
                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}",
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			PlatformFaultDomain: pulumi.Int(1),
    			ResourceGroupName:   pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VirtualMachineScaleSet: &compute.SubResourceArgs{
    				Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}"),
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .platformFaultDomain(1)
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .virtualMachineScaleSet(SubResourceArgs.builder()
                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}")
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        platform_fault_domain=1,
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        virtual_machine_scale_set=azure_native.compute.SubResourceArgs(
            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}",
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        platformFaultDomain: 1,
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        virtualMachineScaleSet: {
            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}",
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          platformFaultDomain: 1
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          virtualMachineScaleSet:
            id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{existing-flex-vmss-name-with-platformFaultDomainCount-greater-than-1}
          vmName: myVM
    

    Create a vm in an availability set.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            AvailabilitySet = new AzureNative.Compute.Inputs.SubResourceArgs
            {
                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}",
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			AvailabilitySet: &compute.SubResourceArgs{
    				Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}"),
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .availabilitySet(SubResourceArgs.builder()
                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}")
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        availability_set=azure_native.compute.SubResourceArgs(
            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}",
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        availabilitySet: {
            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}",
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          availabilitySet:
            id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with Application Profile.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            ApplicationProfile = new AzureNative.Compute.Inputs.ApplicationProfileArgs
            {
                GalleryApplications = new[]
                {
                    new AzureNative.Compute.Inputs.VMGalleryApplicationArgs
                    {
                        ConfigurationReference = "https://mystorageaccount.blob.core.windows.net/configurations/settings.config",
                        EnableAutomaticUpgrade = false,
                        Order = 1,
                        PackageReferenceId = "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0",
                        Tags = "myTag1",
                        TreatFailureAsDeploymentFailure = false,
                    },
                    new AzureNative.Compute.Inputs.VMGalleryApplicationArgs
                    {
                        PackageReferenceId = "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                    },
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "{image_offer}",
                    Publisher = "{image_publisher}",
                    Sku = "{image_sku}",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			ApplicationProfile: &compute.ApplicationProfileArgs{
    				GalleryApplications: compute.VMGalleryApplicationArray{
    					&compute.VMGalleryApplicationArgs{
    						ConfigurationReference:          pulumi.String("https://mystorageaccount.blob.core.windows.net/configurations/settings.config"),
    						EnableAutomaticUpgrade:          pulumi.Bool(false),
    						Order:                           pulumi.Int(1),
    						PackageReferenceId:              pulumi.String("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0"),
    						Tags:                            pulumi.String("myTag1"),
    						TreatFailureAsDeploymentFailure: pulumi.Bool(false),
    					},
    					&compute.VMGalleryApplicationArgs{
    						PackageReferenceId: pulumi.String("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1"),
    					},
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("{image_offer}"),
    					Publisher: pulumi.String("{image_publisher}"),
    					Sku:       pulumi.String("{image_sku}"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.ApplicationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .applicationProfile(ApplicationProfileArgs.builder()
                    .galleryApplications(                
                        VMGalleryApplicationArgs.builder()
                            .configurationReference("https://mystorageaccount.blob.core.windows.net/configurations/settings.config")
                            .enableAutomaticUpgrade(false)
                            .order(1)
                            .packageReferenceId("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0")
                            .tags("myTag1")
                            .treatFailureAsDeploymentFailure(false)
                            .build(),
                        VMGalleryApplicationArgs.builder()
                            .packageReferenceId("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1")
                            .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("{image_offer}")
                        .publisher("{image_publisher}")
                        .sku("{image_sku}")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        application_profile=azure_native.compute.ApplicationProfileArgs(
            gallery_applications=[
                azure_native.compute.VMGalleryApplicationArgs(
                    configuration_reference="https://mystorageaccount.blob.core.windows.net/configurations/settings.config",
                    enable_automatic_upgrade=False,
                    order=1,
                    package_reference_id="/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0",
                    tags="myTag1",
                    treat_failure_as_deployment_failure=False,
                ),
                azure_native.compute.VMGalleryApplicationArgs(
                    package_reference_id="/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                ),
            ],
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="{image_offer}",
                publisher="{image_publisher}",
                sku="{image_sku}",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        applicationProfile: {
            galleryApplications: [
                {
                    configurationReference: "https://mystorageaccount.blob.core.windows.net/configurations/settings.config",
                    enableAutomaticUpgrade: false,
                    order: 1,
                    packageReferenceId: "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0",
                    tags: "myTag1",
                    treatFailureAsDeploymentFailure: false,
                },
                {
                    packageReferenceId: "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                },
            ],
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "{image_offer}",
                publisher: "{image_publisher}",
                sku: "{image_sku}",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          applicationProfile:
            galleryApplications:
              - configurationReference: https://mystorageaccount.blob.core.windows.net/configurations/settings.config
                enableAutomaticUpgrade: false
                order: 1
                packageReferenceId: /subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0
                tags: myTag1
                treatFailureAsDeploymentFailure: false
              - packageReferenceId: /subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: '{image_offer}'
              publisher: '{image_publisher}'
              sku: '{image_sku}'
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with DiskEncryptionSet resource id in the os disk and data disk.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                        DiskSizeGB = 1023,
                        Lun = 0,
                        ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                            },
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Attach,
                        DiskSizeGB = 1023,
                        Lun = 1,
                        ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                            },
                            Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}",
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                        {
                            Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				DataDisks: compute.DataDiskArray{
    					&compute.DataDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(0),
    						ManagedDisk: &compute.ManagedDiskParametersArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    							},
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    						},
    					},
    					&compute.DataDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesAttach),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(1),
    						ManagedDisk: &compute.ManagedDiskParametersArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    							},
    							Id:                 pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}"),
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    						},
    					},
    				},
    				ImageReference: &compute.ImageReferenceArgs{
    					Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    							Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    						},
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.DiskEncryptionSetParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .dataDisks(                
                        DataDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(0)
                            .managedDisk(ManagedDiskParametersArgs.builder()
                                .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                    .build())
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build(),
                        DataDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("Attach")
                            .diskSizeGB(1023)
                            .lun(1)
                            .managedDisk(ManagedDiskParametersArgs.builder()
                                .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                    .build())
                                .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}")
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                    .imageReference(ImageReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                .build())
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            data_disks=[
                azure_native.compute.DataDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option=azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    disk_size_gb=1023,
                    lun=0,
                    managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                        disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        ),
                        storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    ),
                ),
                azure_native.compute.DataDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option=azure_native.compute.DiskCreateOptionTypes.ATTACH,
                    disk_size_gb=1023,
                    lun=1,
                    managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                        disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        ),
                        id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}",
                        storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    ),
                ),
            ],
            image_reference=azure_native.compute.ImageReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                        id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                    ),
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            dataDisks: [
                {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 0,
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
                {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.Attach,
                    diskSizeGB: 1023,
                    lun: 1,
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}",
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            ],
            imageReference: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    diskEncryptionSet: {
                        id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                    },
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            dataDisks:
              - caching: ReadWrite
                createOption: Empty
                diskSizeGB: 1023
                lun: 0
                managedDisk:
                  diskEncryptionSet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                  storageAccountType: Standard_LRS
              - caching: ReadWrite
                createOption: Attach
                diskSizeGB: 1023
                lun: 1
                managedDisk:
                  diskEncryptionSet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/{existing-managed-disk-name}
                  storageAccountType: Standard_LRS
            imageReference:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                diskEncryptionSet:
                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with Host Encryption using encryptionAtHost property.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_DS1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                EncryptionAtHost = true,
            },
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_DS1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.SecurityProfileArgs{
    				EncryptionAtHost: pulumi.Bool(true),
    			},
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DS1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .securityProfile(SecurityProfileArgs.builder()
                    .encryptionAtHost(true)
                    .build())
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_DS1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        security_profile=azure_native.compute.SecurityProfileArgs(
            encryption_at_host=True,
        ),
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_DS1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            encryptionAtHost: true,
        },
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DS1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          securityProfile:
            encryptionAtHost: true
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with Scheduled Events Profile

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
            {
                OsImageNotificationProfile = new AzureNative.Compute.Inputs.OSImageNotificationProfileArgs
                {
                    Enable = true,
                    NotBeforeTimeout = "PT15M",
                },
                TerminateNotificationProfile = new AzureNative.Compute.Inputs.TerminateNotificationProfileArgs
                {
                    Enable = true,
                    NotBeforeTimeout = "PT10M",
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			ScheduledEventsProfile: &compute.ScheduledEventsProfileArgs{
    				OsImageNotificationProfile: &compute.OSImageNotificationProfileArgs{
    					Enable:           pulumi.Bool(true),
    					NotBeforeTimeout: pulumi.String("PT15M"),
    				},
    				TerminateNotificationProfile: &compute.TerminateNotificationProfileArgs{
    					Enable:           pulumi.Bool(true),
    					NotBeforeTimeout: pulumi.String("PT10M"),
    				},
    			},
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSImageNotificationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.TerminateNotificationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .scheduledEventsProfile(ScheduledEventsProfileArgs.builder()
                    .osImageNotificationProfile(OSImageNotificationProfileArgs.builder()
                        .enable(true)
                        .notBeforeTimeout("PT15M")
                        .build())
                    .terminateNotificationProfile(TerminateNotificationProfileArgs.builder()
                        .enable(true)
                        .notBeforeTimeout("PT10M")
                        .build())
                    .build())
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        scheduled_events_profile=azure_native.compute.ScheduledEventsProfileArgs(
            os_image_notification_profile=azure_native.compute.OSImageNotificationProfileArgs(
                enable=True,
                not_before_timeout="PT15M",
            ),
            terminate_notification_profile=azure_native.compute.TerminateNotificationProfileArgs(
                enable=True,
                not_before_timeout="PT10M",
            ),
        ),
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        scheduledEventsProfile: {
            osImageNotificationProfile: {
                enable: true,
                notBeforeTimeout: "PT15M",
            },
            terminateNotificationProfile: {
                enable: true,
                notBeforeTimeout: "PT10M",
            },
        },
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          scheduledEventsProfile:
            osImageNotificationProfile:
              enable: true
              notBeforeTimeout: PT15M
            terminateNotificationProfile:
              enable: true
              notBeforeTimeout: PT10M
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with a marketplace image plan.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with an extensions time budget.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            ExtensionsTimeBudget = "PT30M",
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			ExtensionsTimeBudget: pulumi.String("PT30M"),
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .extensionsTimeBudget("PT30M")
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        extensions_time_budget="PT30M",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        extensionsTimeBudget: "PT30M",
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          extensionsTimeBudget: PT30M
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with boot diagnostics.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled:    pulumi.Bool(true),
    					StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
                storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
                storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
              storageUri: http://{existing-storage-account-name}.blob.core.windows.net
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with empty data disks.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D2_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                        DiskSizeGB = 1023,
                        Lun = 0,
                    },
                    new AzureNative.Compute.Inputs.DataDiskArgs
                    {
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                        DiskSizeGB = 1023,
                        Lun = 1,
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D2_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				DataDisks: compute.DataDiskArray{
    					&compute.DataDiskArgs{
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(0),
    					},
    					&compute.DataDiskArgs{
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    						DiskSizeGB:   pulumi.Int(1023),
    						Lun:          pulumi.Int(1),
    					},
    				},
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D2_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .dataDisks(                
                        DataDiskArgs.builder()
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(0)
                            .build(),
                        DataDiskArgs.builder()
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(1)
                            .build())
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D2_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            data_disks=[
                azure_native.compute.DataDiskArgs(
                    create_option=azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    disk_size_gb=1023,
                    lun=0,
                ),
                azure_native.compute.DataDiskArgs(
                    create_option=azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    disk_size_gb=1023,
                    lun=1,
                ),
            ],
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D2_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            dataDisks: [
                {
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 0,
                },
                {
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 1,
                },
            ],
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D2_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            dataDisks:
              - createOption: Empty
                diskSizeGB: 1023
                lun: 0
              - createOption: Empty
                diskSizeGB: 1023
                lun: 1
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with ephemeral os disk provisioning in Cache disk using placement property.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_DS1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = AzureNative.Compute.DiffDiskOptions.Local,
                        Placement = AzureNative.Compute.DiffDiskPlacement.CacheDisk,
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_DS1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    						Option:    pulumi.String(compute.DiffDiskOptionsLocal),
    						Placement: pulumi.String(compute.DiffDiskPlacementCacheDisk),
    					},
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DS1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .diffDiskSettings(DiffDiskSettingsArgs.builder()
                            .option("Local")
                            .placement("CacheDisk")
                            .build())
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_DS1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                diff_disk_settings=azure_native.compute.DiffDiskSettingsArgs(
                    option=azure_native.compute.DiffDiskOptions.LOCAL,
                    placement=azure_native.compute.DiffDiskPlacement.CACHE_DISK,
                ),
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_DS1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                diffDiskSettings: {
                    option: azure_native.compute.DiffDiskOptions.Local,
                    placement: azure_native.compute.DiffDiskPlacement.CacheDisk,
                },
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DS1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              diffDiskSettings:
                option: Local
                placement: CacheDisk
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with ephemeral os disk provisioning in Resource disk using placement property.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_DS1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = AzureNative.Compute.DiffDiskOptions.Local,
                        Placement = AzureNative.Compute.DiffDiskPlacement.ResourceDisk,
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_DS1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    						Option:    pulumi.String(compute.DiffDiskOptionsLocal),
    						Placement: pulumi.String(compute.DiffDiskPlacementResourceDisk),
    					},
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DS1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .diffDiskSettings(DiffDiskSettingsArgs.builder()
                            .option("Local")
                            .placement("ResourceDisk")
                            .build())
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_DS1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                diff_disk_settings=azure_native.compute.DiffDiskSettingsArgs(
                    option=azure_native.compute.DiffDiskOptions.LOCAL,
                    placement=azure_native.compute.DiffDiskPlacement.RESOURCE_DISK,
                ),
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_DS1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                diffDiskSettings: {
                    option: azure_native.compute.DiffDiskOptions.Local,
                    placement: azure_native.compute.DiffDiskPlacement.ResourceDisk,
                },
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DS1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              diffDiskSettings:
                option: Local
                placement: ResourceDisk
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with ephemeral os disk.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_DS1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = AzureNative.Compute.DiffDiskOptions.Local,
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_DS1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    						Option: pulumi.String(compute.DiffDiskOptionsLocal),
    					},
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DS1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .diffDiskSettings(DiffDiskSettingsArgs.builder()
                            .option("Local")
                            .build())
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_DS1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                diff_disk_settings=azure_native.compute.DiffDiskSettingsArgs(
                    option=azure_native.compute.DiffDiskOptions.LOCAL,
                ),
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_DS1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                diffDiskSettings: {
                    option: azure_native.compute.DiffDiskOptions.Local,
                },
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_DS1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              diffDiskSettings:
                option: Local
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with managed boot diagnostics.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    				BootDiagnostics: &compute.BootDiagnosticsArgs{
    					Enabled: pulumi.Bool(true),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                    .bootDiagnostics(BootDiagnosticsArgs.builder()
                        .enabled(true)
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
            boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                enabled=True,
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        diagnosticsProfile: {
            bootDiagnostics: {
                enabled: true,
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          diagnosticsProfile:
            bootDiagnostics:
              enabled: true
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with password authentication.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with premium storage.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("WindowsServer"),
    					Publisher: pulumi.String("MicrosoftWindowsServer"),
    					Sku:       pulumi.String("2016-Datacenter"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Premium_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("WindowsServer")
                        .publisher("MicrosoftWindowsServer")
                        .sku("2016-Datacenter")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Premium_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="WindowsServer",
                publisher="MicrosoftWindowsServer",
                sku="2016-Datacenter",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "WindowsServer",
                publisher: "MicrosoftWindowsServer",
                sku: "2016-Datacenter",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: WindowsServer
              publisher: MicrosoftWindowsServer
              sku: 2016-Datacenter
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Premium_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create a vm with ssh authentication.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_D1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    DisablePasswordAuthentication = true,
                    Ssh = new AzureNative.Compute.Inputs.SshConfigurationArgs
                    {
                        PublicKeys = new[]
                        {
                            new AzureNative.Compute.Inputs.SshPublicKeyArgs
                            {
                                KeyData = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
                                Path = "/home/{your-username}/.ssh/authorized_keys",
                            },
                        },
                    },
                },
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "{image_offer}",
                    Publisher = "{image_publisher}",
                    Sku = "{image_sku}",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_D1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    				LinuxConfiguration: &compute.LinuxConfigurationArgs{
    					DisablePasswordAuthentication: pulumi.Bool(true),
    					Ssh: &compute.SshConfigurationArgs{
    						PublicKeys: compute.SshPublicKeyTypeArray{
    							&compute.SshPublicKeyTypeArgs{
    								KeyData: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1"),
    								Path:    pulumi.String("/home/{your-username}/.ssh/authorized_keys"),
    							},
    						},
    					},
    				},
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("{image_offer}"),
    					Publisher: pulumi.String("{image_publisher}"),
    					Sku:       pulumi.String("{image_sku}"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadWrite,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.SshConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_D1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .linuxConfiguration(LinuxConfigurationArgs.builder()
                        .disablePasswordAuthentication(true)
                        .ssh(SshConfigurationArgs.builder()
                            .publicKeys(SshPublicKeyArgs.builder()
                                .keyData("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1")
                                .path("/home/{your-username}/.ssh/authorized_keys")
                                .build())
                            .build())
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("{image_offer}")
                        .publisher("{image_publisher}")
                        .sku("{image_sku}")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadWrite")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_D1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_username="{your-username}",
            computer_name="myVM",
            linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                disable_password_authentication=True,
                ssh=azure_native.compute.SshConfigurationArgs(
                    public_keys=[azure_native.compute.SshPublicKeyArgs(
                        key_data="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
                        path="/home/{your-username}/.ssh/authorized_keys",
                    )],
                ),
            ),
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="{image_offer}",
                publisher="{image_publisher}",
                sku="{image_sku}",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_WRITE,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_D1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminUsername: "{your-username}",
            computerName: "myVM",
            linuxConfiguration: {
                disablePasswordAuthentication: true,
                ssh: {
                    publicKeys: [{
                        keyData: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
                        path: "/home/{your-username}/.ssh/authorized_keys",
                    }],
                },
            },
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "{image_offer}",
                publisher: "{image_publisher}",
                sku: "{image_sku}",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadWrite,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          hardwareProfile:
            vmSize: Standard_D1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminUsername: '{your-username}'
            computerName: myVM
            linuxConfiguration:
              disablePasswordAuthentication: true
              ssh:
                publicKeys:
                  - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                    path: /home/{your-username}/.ssh/authorized_keys
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: '{image_offer}'
              publisher: '{image_publisher}'
              sku: '{image_sku}'
              version: latest
            osDisk:
              caching: ReadWrite
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create or update a VM with capacity reservation

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachine = new AzureNative.Compute.VirtualMachine("virtualMachine", new()
        {
            CapacityReservation = new AzureNative.Compute.Inputs.CapacityReservationProfileArgs
            {
                CapacityReservationGroup = new AzureNative.Compute.Inputs.SubResourceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                },
            },
            HardwareProfile = new AzureNative.Compute.Inputs.HardwareProfileArgs
            {
                VmSize = AzureNative.Compute.VirtualMachineSizeTypes.Standard_DS1_v2,
            },
            Location = "westus",
            NetworkProfile = new AzureNative.Compute.Inputs.NetworkProfileArgs
            {
                NetworkInterfaces = new[]
                {
                    new AzureNative.Compute.Inputs.NetworkInterfaceReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.OSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerName = "myVM",
            },
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            StorageProfile = new AzureNative.Compute.Inputs.StorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.OSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                    ManagedDisk = new AzureNative.Compute.Inputs.ManagedDiskParametersArgs
                    {
                        StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                    },
                    Name = "myVMosdisk",
                },
            },
            VmName = "myVM",
        });
    
    });
    
    package main
    
    import (
    	"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.NewVirtualMachine(ctx, "virtualMachine", &compute.VirtualMachineArgs{
    			CapacityReservation: &compute.CapacityReservationProfileArgs{
    				CapacityReservationGroup: &compute.SubResourceArgs{
    					Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}"),
    				},
    			},
    			HardwareProfile: &compute.HardwareProfileArgs{
    				VmSize: pulumi.String(compute.VirtualMachineSizeTypes_Standard_DS1_v2),
    			},
    			Location: pulumi.String("westus"),
    			NetworkProfile: &compute.NetworkProfileArgs{
    				NetworkInterfaces: compute.NetworkInterfaceReferenceArray{
    					&compute.NetworkInterfaceReferenceArgs{
    						Id:      pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}"),
    						Primary: pulumi.Bool(true),
    					},
    				},
    			},
    			OsProfile: &compute.OSProfileArgs{
    				AdminPassword: pulumi.String("{your-password}"),
    				AdminUsername: pulumi.String("{your-username}"),
    				ComputerName:  pulumi.String("myVM"),
    			},
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			StorageProfile: &compute.StorageProfileArgs{
    				ImageReference: &compute.ImageReferenceArgs{
    					Offer:     pulumi.String("windows-data-science-vm"),
    					Publisher: pulumi.String("microsoft-ads"),
    					Sku:       pulumi.String("windows2016"),
    					Version:   pulumi.String("latest"),
    				},
    				OsDisk: &compute.OSDiskArgs{
    					Caching:      compute.CachingTypesReadOnly,
    					CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    					ManagedDisk: &compute.ManagedDiskParametersArgs{
    						StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    					},
    					Name: pulumi.String("myVMosdisk"),
    				},
    			},
    			VmName: pulumi.String("myVM"),
    		})
    		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.VirtualMachine;
    import com.pulumi.azurenative.compute.VirtualMachineArgs;
    import com.pulumi.azurenative.compute.inputs.CapacityReservationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
    import com.pulumi.azurenative.compute.inputs.HardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.NetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.StorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.OSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.ManagedDiskParametersArgs;
    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 virtualMachine = new VirtualMachine("virtualMachine", VirtualMachineArgs.builder()        
                .capacityReservation(CapacityReservationProfileArgs.builder()
                    .capacityReservationGroup(SubResourceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}")
                        .build())
                    .build())
                .hardwareProfile(HardwareProfileArgs.builder()
                    .vmSize("Standard_DS1_v2")
                    .build())
                .location("westus")
                .networkProfile(NetworkProfileArgs.builder()
                    .networkInterfaces(NetworkInterfaceReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}")
                        .primary(true)
                        .build())
                    .build())
                .osProfile(OSProfileArgs.builder()
                    .adminPassword("{your-password}")
                    .adminUsername("{your-username}")
                    .computerName("myVM")
                    .build())
                .plan(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .storageProfile(StorageProfileArgs.builder()
                    .imageReference(ImageReferenceArgs.builder()
                        .offer("windows-data-science-vm")
                        .publisher("microsoft-ads")
                        .sku("windows2016")
                        .version("latest")
                        .build())
                    .osDisk(OSDiskArgs.builder()
                        .caching("ReadOnly")
                        .createOption("FromImage")
                        .managedDisk(ManagedDiskParametersArgs.builder()
                            .storageAccountType("Standard_LRS")
                            .build())
                        .name("myVMosdisk")
                        .build())
                    .build())
                .vmName("myVM")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine = azure_native.compute.VirtualMachine("virtualMachine",
        capacity_reservation=azure_native.compute.CapacityReservationProfileArgs(
            capacity_reservation_group=azure_native.compute.SubResourceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
            ),
        ),
        hardware_profile=azure_native.compute.HardwareProfileArgs(
            vm_size=azure_native.compute.VirtualMachineSizeTypes.STANDARD_DS1_V2,
        ),
        location="westus",
        network_profile=azure_native.compute.NetworkProfileArgs(
            network_interfaces=[azure_native.compute.NetworkInterfaceReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary=True,
            )],
        ),
        os_profile=azure_native.compute.OSProfileArgs(
            admin_password="{your-password}",
            admin_username="{your-username}",
            computer_name="myVM",
        ),
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        storage_profile=azure_native.compute.StorageProfileArgs(
            image_reference=azure_native.compute.ImageReferenceArgs(
                offer="windows-data-science-vm",
                publisher="microsoft-ads",
                sku="windows2016",
                version="latest",
            ),
            os_disk=azure_native.compute.OSDiskArgs(
                caching=azure_native.compute.CachingTypes.READ_ONLY,
                create_option=azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                managed_disk=azure_native.compute.ManagedDiskParametersArgs(
                    storage_account_type=azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                ),
                name="myVMosdisk",
            ),
        ),
        vm_name="myVM")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachine = new azure_native.compute.VirtualMachine("virtualMachine", {
        capacityReservation: {
            capacityReservationGroup: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
            },
        },
        hardwareProfile: {
            vmSize: azure_native.compute.VirtualMachineSizeTypes.Standard_DS1_v2,
        },
        location: "westus",
        networkProfile: {
            networkInterfaces: [{
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
                primary: true,
            }],
        },
        osProfile: {
            adminPassword: "{your-password}",
            adminUsername: "{your-username}",
            computerName: "myVM",
        },
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        storageProfile: {
            imageReference: {
                offer: "windows-data-science-vm",
                publisher: "microsoft-ads",
                sku: "windows2016",
                version: "latest",
            },
            osDisk: {
                caching: azure_native.compute.CachingTypes.ReadOnly,
                createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                managedDisk: {
                    storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                },
                name: "myVMosdisk",
            },
        },
        vmName: "myVM",
    });
    
    resources:
      virtualMachine:
        type: azure-native:compute:VirtualMachine
        properties:
          capacityReservation:
            capacityReservationGroup:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}
          hardwareProfile:
            vmSize: Standard_DS1_v2
          location: westus
          networkProfile:
            networkInterfaces:
              - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                primary: true
          osProfile:
            adminPassword: '{your-password}'
            adminUsername: '{your-username}'
            computerName: myVM
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          storageProfile:
            imageReference:
              offer: windows-data-science-vm
              publisher: microsoft-ads
              sku: windows2016
              version: latest
            osDisk:
              caching: ReadOnly
              createOption: FromImage
              managedDisk:
                storageAccountType: Standard_LRS
              name: myVMosdisk
          vmName: myVM
    

    Create VirtualMachine Resource

    new VirtualMachine(name: string, args: VirtualMachineArgs, opts?: CustomResourceOptions);
    @overload
    def VirtualMachine(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       additional_capabilities: Optional[AdditionalCapabilitiesArgs] = None,
                       application_profile: Optional[ApplicationProfileArgs] = None,
                       availability_set: Optional[SubResourceArgs] = None,
                       billing_profile: Optional[BillingProfileArgs] = None,
                       capacity_reservation: Optional[CapacityReservationProfileArgs] = None,
                       diagnostics_profile: Optional[DiagnosticsProfileArgs] = None,
                       eviction_policy: Optional[Union[str, VirtualMachineEvictionPolicyTypes]] = None,
                       extended_location: Optional[ExtendedLocationArgs] = None,
                       extensions_time_budget: Optional[str] = None,
                       hardware_profile: Optional[HardwareProfileArgs] = None,
                       host: Optional[SubResourceArgs] = None,
                       host_group: Optional[SubResourceArgs] = None,
                       identity: Optional[VirtualMachineIdentityArgs] = None,
                       license_type: Optional[str] = None,
                       location: Optional[str] = None,
                       network_profile: Optional[NetworkProfileArgs] = None,
                       os_profile: Optional[OSProfileArgs] = None,
                       plan: Optional[PlanArgs] = None,
                       platform_fault_domain: Optional[int] = None,
                       priority: Optional[Union[str, VirtualMachinePriorityTypes]] = None,
                       proximity_placement_group: Optional[SubResourceArgs] = None,
                       resource_group_name: Optional[str] = None,
                       scheduled_events_profile: Optional[ScheduledEventsProfileArgs] = None,
                       security_profile: Optional[SecurityProfileArgs] = None,
                       storage_profile: Optional[StorageProfileArgs] = None,
                       tags: Optional[Mapping[str, str]] = None,
                       user_data: Optional[str] = None,
                       virtual_machine_scale_set: Optional[SubResourceArgs] = None,
                       vm_name: Optional[str] = None,
                       zones: Optional[Sequence[str]] = None)
    @overload
    def VirtualMachine(resource_name: str,
                       args: VirtualMachineArgs,
                       opts: Optional[ResourceOptions] = None)
    func NewVirtualMachine(ctx *Context, name string, args VirtualMachineArgs, opts ...ResourceOption) (*VirtualMachine, error)
    public VirtualMachine(string name, VirtualMachineArgs args, CustomResourceOptions? opts = null)
    public VirtualMachine(String name, VirtualMachineArgs args)
    public VirtualMachine(String name, VirtualMachineArgs args, CustomResourceOptions options)
    
    type: azure-native:compute:VirtualMachine
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args VirtualMachineArgs
    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 VirtualMachineArgs
    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 VirtualMachineArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args VirtualMachineArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args VirtualMachineArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    VirtualMachine 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 VirtualMachine resource accepts the following input properties:

    ResourceGroupName string
    The name of the resource group.
    AdditionalCapabilities Pulumi.AzureNative.Compute.Inputs.AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the virtual machine.
    ApplicationProfile Pulumi.AzureNative.Compute.Inputs.ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS.
    AvailabilitySet Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    BillingProfile Pulumi.AzureNative.Compute.Inputs.BillingProfile
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    CapacityReservation Pulumi.AzureNative.Compute.Inputs.CapacityReservationProfile
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    DiagnosticsProfile Pulumi.AzureNative.Compute.Inputs.DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string | Pulumi.AzureNative.Compute.VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtendedLocation Pulumi.AzureNative.Compute.Inputs.ExtendedLocation
    The extended location of the Virtual Machine.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    HardwareProfile Pulumi.AzureNative.Compute.Inputs.HardwareProfile
    Specifies the hardware settings for the virtual machine.
    Host Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    HostGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    Identity Pulumi.AzureNative.Compute.Inputs.VirtualMachineIdentity
    The identity of the virtual machine, if configured.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    Location string
    Resource location
    NetworkProfile Pulumi.AzureNative.Compute.Inputs.NetworkProfile
    Specifies the network interfaces of the virtual machine.
    OsProfile Pulumi.AzureNative.Compute.Inputs.OSProfile
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    Plan Pulumi.AzureNative.Compute.Inputs.Plan
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    PlatformFaultDomain int
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    Priority string | Pulumi.AzureNative.Compute.VirtualMachinePriorityTypes
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    ProximityPlacementGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    ScheduledEventsProfile Pulumi.AzureNative.Compute.Inputs.ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.SecurityProfile
    Specifies the Security related profile settings for the virtual machine.
    StorageProfile Pulumi.AzureNative.Compute.Inputs.StorageProfile
    Specifies the storage settings for the virtual machine disks.
    Tags Dictionary<string, string>
    Resource tags
    UserData string
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    VirtualMachineScaleSet Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    VmName string
    The name of the virtual machine.
    Zones List<string>
    The virtual machine zones.
    ResourceGroupName string
    The name of the resource group.
    AdditionalCapabilities AdditionalCapabilitiesArgs
    Specifies additional capabilities enabled or disabled on the virtual machine.
    ApplicationProfile ApplicationProfileArgs
    Specifies the gallery applications that should be made available to the VM/VMSS.
    AvailabilitySet SubResourceArgs
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    BillingProfile BillingProfileArgs
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    CapacityReservation CapacityReservationProfileArgs
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    DiagnosticsProfile DiagnosticsProfileArgs
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtendedLocation ExtendedLocationArgs
    The extended location of the Virtual Machine.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    HardwareProfile HardwareProfileArgs
    Specifies the hardware settings for the virtual machine.
    Host SubResourceArgs
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    HostGroup SubResourceArgs
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    Identity VirtualMachineIdentityArgs
    The identity of the virtual machine, if configured.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    Location string
    Resource location
    NetworkProfile NetworkProfileArgs
    Specifies the network interfaces of the virtual machine.
    OsProfile OSProfileArgs
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    Plan PlanArgs
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    PlatformFaultDomain int
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    Priority string | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    ProximityPlacementGroup SubResourceArgs
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    ScheduledEventsProfile ScheduledEventsProfileArgs
    Specifies Scheduled Event related configurations.
    SecurityProfile SecurityProfileArgs
    Specifies the Security related profile settings for the virtual machine.
    StorageProfile StorageProfileArgs
    Specifies the storage settings for the virtual machine disks.
    Tags map[string]string
    Resource tags
    UserData string
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    VirtualMachineScaleSet SubResourceArgs
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    VmName string
    The name of the virtual machine.
    Zones []string
    The virtual machine zones.
    resourceGroupName String
    The name of the resource group.
    additionalCapabilities AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the virtual machine.
    applicationProfile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS.
    availabilitySet SubResource
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    billingProfile BillingProfile
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfile
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extendedLocation ExtendedLocation
    The extended location of the Virtual Machine.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    hardwareProfile HardwareProfile
    Specifies the hardware settings for the virtual machine.
    host SubResource
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    hostGroup SubResource
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    identity VirtualMachineIdentity
    The identity of the virtual machine, if configured.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    location String
    Resource location
    networkProfile NetworkProfile
    Specifies the network interfaces of the virtual machine.
    osProfile OSProfile
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    plan Plan
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    platformFaultDomain Integer
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    priority String | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    proximityPlacementGroup SubResource
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    scheduledEventsProfile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    securityProfile SecurityProfile
    Specifies the Security related profile settings for the virtual machine.
    storageProfile StorageProfile
    Specifies the storage settings for the virtual machine disks.
    tags Map<String,String>
    Resource tags
    userData String
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    virtualMachineScaleSet SubResource
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    vmName String
    The name of the virtual machine.
    zones List<String>
    The virtual machine zones.
    resourceGroupName string
    The name of the resource group.
    additionalCapabilities AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the virtual machine.
    applicationProfile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS.
    availabilitySet SubResource
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    billingProfile BillingProfile
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfile
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy string | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extendedLocation ExtendedLocation
    The extended location of the Virtual Machine.
    extensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    hardwareProfile HardwareProfile
    Specifies the hardware settings for the virtual machine.
    host SubResource
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    hostGroup SubResource
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    identity VirtualMachineIdentity
    The identity of the virtual machine, if configured.
    licenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    location string
    Resource location
    networkProfile NetworkProfile
    Specifies the network interfaces of the virtual machine.
    osProfile OSProfile
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    plan Plan
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    platformFaultDomain number
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    priority string | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    proximityPlacementGroup SubResource
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    scheduledEventsProfile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    securityProfile SecurityProfile
    Specifies the Security related profile settings for the virtual machine.
    storageProfile StorageProfile
    Specifies the storage settings for the virtual machine disks.
    tags {[key: string]: string}
    Resource tags
    userData string
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    virtualMachineScaleSet SubResource
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    vmName string
    The name of the virtual machine.
    zones string[]
    The virtual machine zones.
    resource_group_name str
    The name of the resource group.
    additional_capabilities AdditionalCapabilitiesArgs
    Specifies additional capabilities enabled or disabled on the virtual machine.
    application_profile ApplicationProfileArgs
    Specifies the gallery applications that should be made available to the VM/VMSS.
    availability_set SubResourceArgs
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    billing_profile BillingProfileArgs
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    capacity_reservation CapacityReservationProfileArgs
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    diagnostics_profile DiagnosticsProfileArgs
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    eviction_policy str | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extended_location ExtendedLocationArgs
    The extended location of the Virtual Machine.
    extensions_time_budget str
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    hardware_profile HardwareProfileArgs
    Specifies the hardware settings for the virtual machine.
    host SubResourceArgs
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    host_group SubResourceArgs
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    identity VirtualMachineIdentityArgs
    The identity of the virtual machine, if configured.
    license_type str
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    location str
    Resource location
    network_profile NetworkProfileArgs
    Specifies the network interfaces of the virtual machine.
    os_profile OSProfileArgs
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    plan PlanArgs
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    platform_fault_domain int
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    priority str | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    proximity_placement_group SubResourceArgs
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    scheduled_events_profile ScheduledEventsProfileArgs
    Specifies Scheduled Event related configurations.
    security_profile SecurityProfileArgs
    Specifies the Security related profile settings for the virtual machine.
    storage_profile StorageProfileArgs
    Specifies the storage settings for the virtual machine disks.
    tags Mapping[str, str]
    Resource tags
    user_data str
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    virtual_machine_scale_set SubResourceArgs
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    vm_name str
    The name of the virtual machine.
    zones Sequence[str]
    The virtual machine zones.
    resourceGroupName String
    The name of the resource group.
    additionalCapabilities Property Map
    Specifies additional capabilities enabled or disabled on the virtual machine.
    applicationProfile Property Map
    Specifies the gallery applications that should be made available to the VM/VMSS.
    availabilitySet Property Map
    Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
    billingProfile Property Map
    Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
    capacityReservation Property Map
    Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
    diagnosticsProfile Property Map
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String | "Deallocate" | "Delete"
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extendedLocation Property Map
    The extended location of the Virtual Machine.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    hardwareProfile Property Map
    Specifies the hardware settings for the virtual machine.
    host Property Map
    Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
    hostGroup Property Map
    Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
    identity Property Map
    The identity of the virtual machine, if configured.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    location String
    Resource location
    networkProfile Property Map
    Specifies the network interfaces of the virtual machine.
    osProfile Property Map
    Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
    plan Property Map
    Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
    platformFaultDomain Number
    Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
    priority String | "Regular" | "Low" | "Spot"
    Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
    proximityPlacementGroup Property Map
    Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
    scheduledEventsProfile Property Map
    Specifies Scheduled Event related configurations.
    securityProfile Property Map
    Specifies the Security related profile settings for the virtual machine.
    storageProfile Property Map
    Specifies the storage settings for the virtual machine disks.
    tags Map<String>
    Resource tags
    userData String
    UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    virtualMachineScaleSet Property Map
    Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
    vmName String
    The name of the virtual machine.
    zones List<String>
    The virtual machine zones.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceView Pulumi.AzureNative.Compute.Outputs.VirtualMachineInstanceViewResponse
    The virtual machine instance view.
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Resources List<Pulumi.AzureNative.Compute.Outputs.VirtualMachineExtensionResponse>
    The virtual machine child extension resources.
    TimeCreated string
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    Type string
    Resource type
    VmId string
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceView VirtualMachineInstanceViewResponse
    The virtual machine instance view.
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Resources []VirtualMachineExtensionResponse
    The virtual machine child extension resources.
    TimeCreated string
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    Type string
    Resource type
    VmId string
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceView VirtualMachineInstanceViewResponse
    The virtual machine instance view.
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    resources List<VirtualMachineExtensionResponse>
    The virtual machine child extension resources.
    timeCreated String
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    type String
    Resource type
    vmId String
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
    id string
    The provider-assigned unique ID for this managed resource.
    instanceView VirtualMachineInstanceViewResponse
    The virtual machine instance view.
    name string
    Resource name
    provisioningState string
    The provisioning state, which only appears in the response.
    resources VirtualMachineExtensionResponse[]
    The virtual machine child extension resources.
    timeCreated string
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    type string
    Resource type
    vmId string
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
    id str
    The provider-assigned unique ID for this managed resource.
    instance_view VirtualMachineInstanceViewResponse
    The virtual machine instance view.
    name str
    Resource name
    provisioning_state str
    The provisioning state, which only appears in the response.
    resources Sequence[VirtualMachineExtensionResponse]
    The virtual machine child extension resources.
    time_created str
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    type str
    Resource type
    vm_id str
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceView Property Map
    The virtual machine instance view.
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    resources List<Property Map>
    The virtual machine child extension resources.
    timeCreated String
    Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
    type String
    Resource type
    vmId String
    Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.

    Supporting Types

    AdditionalCapabilities, AdditionalCapabilitiesArgs

    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernation_enabled bool
    The flag that enables or disables hibernation capability on the VM.
    ultra_ssd_enabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.

    AdditionalCapabilitiesResponse, AdditionalCapabilitiesResponseArgs

    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernation_enabled bool
    The flag that enables or disables hibernation capability on the VM.
    ultra_ssd_enabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.

    AdditionalUnattendContent, AdditionalUnattendContentArgs

    ComponentName Pulumi.AzureNative.Compute.ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName Pulumi.AzureNative.Compute.PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName Pulumi.AzureNative.Compute.SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    ComponentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    component_name ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content str
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    pass_name PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    setting_name SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName "Microsoft-Windows-Shell-Setup"
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName "OobeSystem"
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName "AutoLogon" | "FirstLogonCommands"
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

    AdditionalUnattendContentResponse, AdditionalUnattendContentResponseArgs

    ComponentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName string
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    ComponentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName string
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName String
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName String
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName String
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName string
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    component_name str
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content str
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    pass_name str
    The pass name. Currently, the only allowable value is OobeSystem.
    setting_name str
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName String
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName String
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName String
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

    ApiErrorBaseResponse, ApiErrorBaseResponseArgs

    Code string
    The error code.
    Message string
    The error message.
    Target string
    The target of the particular error.
    Code string
    The error code.
    Message string
    The error message.
    Target string
    The target of the particular error.
    code String
    The error code.
    message String
    The error message.
    target String
    The target of the particular error.
    code string
    The error code.
    message string
    The error message.
    target string
    The target of the particular error.
    code str
    The error code.
    message str
    The error message.
    target str
    The target of the particular error.
    code String
    The error code.
    message String
    The error message.
    target String
    The target of the particular error.

    ApiErrorResponse, ApiErrorResponseArgs

    Code string
    The error code.
    Details List<Pulumi.AzureNative.Compute.Inputs.ApiErrorBaseResponse>
    The Api error details
    Innererror Pulumi.AzureNative.Compute.Inputs.InnerErrorResponse
    The Api inner error
    Message string
    The error message.
    Target string
    The target of the particular error.
    Code string
    The error code.
    Details []ApiErrorBaseResponse
    The Api error details
    Innererror InnerErrorResponse
    The Api inner error
    Message string
    The error message.
    Target string
    The target of the particular error.
    code String
    The error code.
    details List<ApiErrorBaseResponse>
    The Api error details
    innererror InnerErrorResponse
    The Api inner error
    message String
    The error message.
    target String
    The target of the particular error.
    code string
    The error code.
    details ApiErrorBaseResponse[]
    The Api error details
    innererror InnerErrorResponse
    The Api inner error
    message string
    The error message.
    target string
    The target of the particular error.
    code str
    The error code.
    details Sequence[ApiErrorBaseResponse]
    The Api error details
    innererror InnerErrorResponse
    The Api inner error
    message str
    The error message.
    target str
    The target of the particular error.
    code String
    The error code.
    details List<Property Map>
    The Api error details
    innererror Property Map
    The Api inner error
    message String
    The error message.
    target String
    The target of the particular error.

    ApplicationProfile, ApplicationProfileArgs

    GalleryApplications List<Pulumi.AzureNative.Compute.Inputs.VMGalleryApplication>
    Specifies the gallery applications that should be made available to the VM/VMSS
    GalleryApplications []VMGalleryApplication
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<VMGalleryApplication>
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications VMGalleryApplication[]
    Specifies the gallery applications that should be made available to the VM/VMSS
    gallery_applications Sequence[VMGalleryApplication]
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<Property Map>
    Specifies the gallery applications that should be made available to the VM/VMSS

    ApplicationProfileResponse, ApplicationProfileResponseArgs

    GalleryApplications List<Pulumi.AzureNative.Compute.Inputs.VMGalleryApplicationResponse>
    Specifies the gallery applications that should be made available to the VM/VMSS
    GalleryApplications []VMGalleryApplicationResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<VMGalleryApplicationResponse>
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications VMGalleryApplicationResponse[]
    Specifies the gallery applications that should be made available to the VM/VMSS
    gallery_applications Sequence[VMGalleryApplicationResponse]
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<Property Map>
    Specifies the gallery applications that should be made available to the VM/VMSS

    AvailablePatchSummaryResponse, AvailablePatchSummaryResponseArgs

    AssessmentActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    CriticalAndSecurityPatchCount int
    The number of critical or security patches that have been detected as available and not yet installed.
    Error Pulumi.AzureNative.Compute.Inputs.ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    LastModifiedTime string
    The UTC timestamp when the operation began.
    OtherPatchCount int
    The number of all available patches excluding critical and security.
    RebootPending bool
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    StartTime string
    The UTC timestamp when the operation began.
    Status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    AssessmentActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    CriticalAndSecurityPatchCount int
    The number of critical or security patches that have been detected as available and not yet installed.
    Error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    LastModifiedTime string
    The UTC timestamp when the operation began.
    OtherPatchCount int
    The number of all available patches excluding critical and security.
    RebootPending bool
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    StartTime string
    The UTC timestamp when the operation began.
    Status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    assessmentActivityId String
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    criticalAndSecurityPatchCount Integer
    The number of critical or security patches that have been detected as available and not yet installed.
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    lastModifiedTime String
    The UTC timestamp when the operation began.
    otherPatchCount Integer
    The number of all available patches excluding critical and security.
    rebootPending Boolean
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    startTime String
    The UTC timestamp when the operation began.
    status String
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    assessmentActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    criticalAndSecurityPatchCount number
    The number of critical or security patches that have been detected as available and not yet installed.
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    lastModifiedTime string
    The UTC timestamp when the operation began.
    otherPatchCount number
    The number of all available patches excluding critical and security.
    rebootPending boolean
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    startTime string
    The UTC timestamp when the operation began.
    status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    assessment_activity_id str
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    critical_and_security_patch_count int
    The number of critical or security patches that have been detected as available and not yet installed.
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    last_modified_time str
    The UTC timestamp when the operation began.
    other_patch_count int
    The number of all available patches excluding critical and security.
    reboot_pending bool
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    start_time str
    The UTC timestamp when the operation began.
    status str
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    assessmentActivityId String
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    criticalAndSecurityPatchCount Number
    The number of critical or security patches that have been detected as available and not yet installed.
    error Property Map
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    lastModifiedTime String
    The UTC timestamp when the operation began.
    otherPatchCount Number
    The number of all available patches excluding critical and security.
    rebootPending Boolean
    The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred.
    startTime String
    The UTC timestamp when the operation began.
    status String
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."

    BillingProfile, BillingProfileArgs

    MaxPrice double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    MaxPrice float64
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    max_price float
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.

    BillingProfileResponse, BillingProfileResponseArgs

    MaxPrice double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    MaxPrice float64
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    max_price float
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.

    BootDiagnostics, BootDiagnosticsArgs

    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storage_uri str
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.

    BootDiagnosticsInstanceViewResponse, BootDiagnosticsInstanceViewResponseArgs

    ConsoleScreenshotBlobUri string
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    SerialConsoleLogBlobUri string
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    Status Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.
    ConsoleScreenshotBlobUri string
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    SerialConsoleLogBlobUri string
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    Status InstanceViewStatusResponse
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.
    consoleScreenshotBlobUri String
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    serialConsoleLogBlobUri String
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    status InstanceViewStatusResponse
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.
    consoleScreenshotBlobUri string
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    serialConsoleLogBlobUri string
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    status InstanceViewStatusResponse
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.
    console_screenshot_blob_uri str
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    serial_console_log_blob_uri str
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    status InstanceViewStatusResponse
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.
    consoleScreenshotBlobUri String
    The console screenshot blob URI. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    serialConsoleLogBlobUri String
    The serial console log blob Uri. Note: This will not be set if boot diagnostics is currently enabled with managed storage.
    status Property Map
    The boot diagnostics status information for the VM. Note: It will be set only if there are errors encountered in enabling boot diagnostics.

    BootDiagnosticsResponse, BootDiagnosticsResponseArgs

    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storage_uri str
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.

    CachingTypes, CachingTypesArgs

    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    CachingTypesNone
    None
    CachingTypesReadOnly
    ReadOnly
    CachingTypesReadWrite
    ReadWrite
    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    NONE
    None
    READ_ONLY
    ReadOnly
    READ_WRITE
    ReadWrite
    "None"
    None
    "ReadOnly"
    ReadOnly
    "ReadWrite"
    ReadWrite

    CapacityReservationProfile, CapacityReservationProfileArgs

    CapacityReservationGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    CapacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacity_reservation_group SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup Property Map
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.

    CapacityReservationProfileResponse, CapacityReservationProfileResponseArgs

    CapacityReservationGroup Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    CapacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacity_reservation_group SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup Property Map
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.

    ComponentNames, ComponentNamesArgs

    Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    ComponentNames_Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    MicrosoftWindowsShellSetup
    Microsoft-Windows-Shell-Setup
    Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    MICROSOFT_WINDOWS_SHELL_SETUP
    Microsoft-Windows-Shell-Setup
    "Microsoft-Windows-Shell-Setup"
    Microsoft-Windows-Shell-Setup

    DataDisk, DataDiskArgs

    CreateOption string | Pulumi.AzureNative.Compute.DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching Pulumi.AzureNative.Compute.CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | Pulumi.AzureNative.Compute.DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    DetachOption string | Pulumi.AzureNative.Compute.DiskDetachOptionTypes
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDisk
    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.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.ManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    ToBeDetached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    Vhd Pulumi.AzureNative.Compute.Inputs.VirtualHardDisk
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    DetachOption string | DiskDetachOptionTypes
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image VirtualHardDisk
    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.
    ManagedDisk ManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    ToBeDetached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    Vhd VirtualHardDisk
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    lun Integer
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption String | DiskDetachOptionTypes
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    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.
    managedDisk ManagedDiskParameters
    The managed disk parameters.
    name String
    The disk name.
    toBeDetached Boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDisk
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    lun number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption string | DiskDetachOptionTypes
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    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.
    managedDisk ManagedDiskParameters
    The managed disk parameters.
    name string
    The disk name.
    toBeDetached boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDisk
    The virtual hard disk.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    delete_option str | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detach_option str | DiskDetachOptionTypes
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    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.
    managed_disk ManagedDiskParameters
    The managed disk parameters.
    name str
    The disk name.
    to_be_detached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDisk
    The virtual hard disk.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | "FromImage" | "Empty" | "Attach"
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    lun Number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching "None" | "ReadOnly" | "ReadWrite"
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | "Delete" | "Detach"
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption String | "ForceDetach"
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image Property Map
    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.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    toBeDetached Boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd Property Map
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    DataDiskResponse, DataDiskResponseArgs

    CreateOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    DiskIOPSReadWrite double
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    DiskMBpsReadWrite double
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    DetachOption string
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDiskResponse
    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.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.ManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    ToBeDetached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    Vhd Pulumi.AzureNative.Compute.Inputs.VirtualHardDiskResponse
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    DiskIOPSReadWrite float64
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    DiskMBpsReadWrite float64
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    DetachOption string
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image VirtualHardDiskResponse
    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.
    ManagedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    ToBeDetached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    Vhd VirtualHardDiskResponse
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    diskIOPSReadWrite Double
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    diskMBpsReadWrite Double
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    lun Integer
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption String
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    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.
    managedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    name String
    The disk name.
    toBeDetached Boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    diskIOPSReadWrite number
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    diskMBpsReadWrite number
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    lun number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption string
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    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.
    managedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    name string
    The disk name.
    toBeDetached boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    disk_iops_read_write float
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    disk_m_bps_read_write float
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching str
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    delete_option str
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detach_option str
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    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.
    managed_disk ManagedDiskParametersResponse
    The managed disk parameters.
    name str
    The disk name.
    to_be_detached bool
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    diskIOPSReadWrite Number
    Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    diskMBpsReadWrite Number
    Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set.
    lun Number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the data disk is deleted when VM is deleted. Detach. If this value is used, the data disk is retained after VM is deleted. The default value is set to Detach.
    detachOption String
    Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: ForceDetach. detachOption: ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image Property Map
    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.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    toBeDetached Boolean
    Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
    vhd Property Map
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    DeleteOptions, DeleteOptionsArgs

    Delete
    Delete
    Detach
    Detach
    DeleteOptionsDelete
    Delete
    DeleteOptionsDetach
    Detach
    Delete
    Delete
    Detach
    Detach
    Delete
    Delete
    Detach
    Detach
    DELETE
    Delete
    DETACH
    Detach
    "Delete"
    Delete
    "Detach"
    Detach

    DiagnosticsProfile, DiagnosticsProfileArgs

    BootDiagnostics Pulumi.AzureNative.Compute.Inputs.BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    BootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    boot_diagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics Property Map
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.

    DiagnosticsProfileResponse, DiagnosticsProfileResponseArgs

    BootDiagnostics Pulumi.AzureNative.Compute.Inputs.BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    BootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    boot_diagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics Property Map
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.

    DiffDiskOptions, DiffDiskOptionsArgs

    Local
    Local
    DiffDiskOptionsLocal
    Local
    Local
    Local
    Local
    Local
    LOCAL
    Local
    "Local"
    Local

    DiffDiskPlacement, DiffDiskPlacementArgs

    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    DiffDiskPlacementCacheDisk
    CacheDisk
    DiffDiskPlacementResourceDisk
    ResourceDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    CACHE_DISK
    CacheDisk
    RESOURCE_DISK
    ResourceDisk
    "CacheDisk"
    CacheDisk
    "ResourceDisk"
    ResourceDisk

    DiffDiskSettings, DiffDiskSettingsArgs

    Option string | Pulumi.AzureNative.Compute.DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    Placement string | Pulumi.AzureNative.Compute.DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    Option string | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    Placement string | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option String | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement String | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option string | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement string | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option str | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement str | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option String | "Local"
    Specifies the ephemeral disk settings for operating system disk.
    placement String | "CacheDisk" | "ResourceDisk"
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.

    DiffDiskSettingsResponse, DiffDiskSettingsResponseArgs

    Option string
    Specifies the ephemeral disk settings for operating system disk.
    Placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    Option string
    Specifies the ephemeral disk settings for operating system disk.
    Placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option String
    Specifies the ephemeral disk settings for operating system disk.
    placement String
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option string
    Specifies the ephemeral disk settings for operating system disk.
    placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option str
    Specifies the ephemeral disk settings for operating system disk.
    placement str
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.
    option String
    Specifies the ephemeral disk settings for operating system disk.
    placement String
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk.

    DiskControllerTypes, DiskControllerTypesArgs

    SCSI
    SCSI
    NVMe
    NVMe
    DiskControllerTypesSCSI
    SCSI
    DiskControllerTypesNVMe
    NVMe
    SCSI
    SCSI
    NVMe
    NVMe
    SCSI
    SCSI
    NVMe
    NVMe
    SCSI
    SCSI
    NV_ME
    NVMe
    "SCSI"
    SCSI
    "NVMe"
    NVMe

    DiskCreateOptionTypes, DiskCreateOptionTypesArgs

    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    DiskCreateOptionTypesFromImage
    FromImage
    DiskCreateOptionTypesEmpty
    Empty
    DiskCreateOptionTypesAttach
    Attach
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    FROM_IMAGE
    FromImage
    EMPTY
    Empty
    ATTACH
    Attach
    "FromImage"
    FromImage
    "Empty"
    Empty
    "Attach"
    Attach

    DiskDeleteOptionTypes, DiskDeleteOptionTypesArgs

    Delete
    Delete
    Detach
    Detach
    DiskDeleteOptionTypesDelete
    Delete
    DiskDeleteOptionTypesDetach
    Detach
    Delete
    Delete
    Detach
    Detach
    Delete
    Delete
    Detach
    Detach
    DELETE
    Delete
    DETACH
    Detach
    "Delete"
    Delete
    "Detach"
    Detach

    DiskDetachOptionTypes, DiskDetachOptionTypesArgs

    ForceDetach
    ForceDetach
    DiskDetachOptionTypesForceDetach
    ForceDetach
    ForceDetach
    ForceDetach
    ForceDetach
    ForceDetach
    FORCE_DETACH
    ForceDetach
    "ForceDetach"
    ForceDetach

    DiskEncryptionSetParameters, DiskEncryptionSetParametersArgs

    Id string
    Resource Id
    Id string
    Resource Id
    id String
    Resource Id
    id string
    Resource Id
    id str
    Resource Id
    id String
    Resource Id

    DiskEncryptionSetParametersResponse, DiskEncryptionSetParametersResponseArgs

    Id string
    Resource Id
    Id string
    Resource Id
    id String
    Resource Id
    id string
    Resource Id
    id str
    Resource Id
    id String
    Resource Id

    DiskEncryptionSettings, DiskEncryptionSettingsArgs

    DiskEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReference
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    Enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    KeyEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultKeyReference
    Specifies the location of the key encryption key in Key Vault.
    DiskEncryptionKey KeyVaultSecretReference
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    Enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    KeyEncryptionKey KeyVaultKeyReference
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey KeyVaultSecretReference
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled Boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey KeyVaultKeyReference
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey KeyVaultSecretReference
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey KeyVaultKeyReference
    Specifies the location of the key encryption key in Key Vault.
    disk_encryption_key KeyVaultSecretReference
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    key_encryption_key KeyVaultKeyReference
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey Property Map
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled Boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey Property Map
    Specifies the location of the key encryption key in Key Vault.

    DiskEncryptionSettingsResponse, DiskEncryptionSettingsResponseArgs

    DiskEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReferenceResponse
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    Enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    KeyEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultKeyReferenceResponse
    Specifies the location of the key encryption key in Key Vault.
    DiskEncryptionKey KeyVaultSecretReferenceResponse
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    Enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    KeyEncryptionKey KeyVaultKeyReferenceResponse
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey KeyVaultSecretReferenceResponse
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled Boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey KeyVaultKeyReferenceResponse
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey KeyVaultSecretReferenceResponse
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey KeyVaultKeyReferenceResponse
    Specifies the location of the key encryption key in Key Vault.
    disk_encryption_key KeyVaultSecretReferenceResponse
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled bool
    Specifies whether disk encryption should be enabled on the virtual machine.
    key_encryption_key KeyVaultKeyReferenceResponse
    Specifies the location of the key encryption key in Key Vault.
    diskEncryptionKey Property Map
    Specifies the location of the disk encryption key, which is a Key Vault Secret.
    enabled Boolean
    Specifies whether disk encryption should be enabled on the virtual machine.
    keyEncryptionKey Property Map
    Specifies the location of the key encryption key in Key Vault.

    DiskInstanceViewResponse, DiskInstanceViewResponseArgs

    EncryptionSettings List<Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSettingsResponse>
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    Name string
    The disk name.
    Statuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    EncryptionSettings []DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    Name string
    The disk name.
    Statuses []InstanceViewStatusResponse
    The resource status information.
    encryptionSettings List<DiskEncryptionSettingsResponse>
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    name String
    The disk name.
    statuses List<InstanceViewStatusResponse>
    The resource status information.
    encryptionSettings DiskEncryptionSettingsResponse[]
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    name string
    The disk name.
    statuses InstanceViewStatusResponse[]
    The resource status information.
    encryption_settings Sequence[DiskEncryptionSettingsResponse]
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    name str
    The disk name.
    statuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    encryptionSettings List<Property Map>
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15
    name String
    The disk name.
    statuses List<Property Map>
    The resource status information.

    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

    HardwareProfile, HardwareProfileArgs

    VmSize string | Pulumi.AzureNative.Compute.VirtualMachineSizeTypes
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    VmSizeProperties Pulumi.AzureNative.Compute.Inputs.VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    VmSize string | VirtualMachineSizeTypes
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    VmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize String | VirtualMachineSizeTypes
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize string | VirtualMachineSizeTypes
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vm_size str | VirtualMachineSizeTypes
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vm_size_properties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize String | "Basic_A0" | "Basic_A1" | "Basic_A2" | "Basic_A3" | "Basic_A4" | "Standard_A0" | "Standard_A1" | "Standard_A2" | "Standard_A3" | "Standard_A4" | "Standard_A5" | "Standard_A6" | "Standard_A7" | "Standard_A8" | "Standard_A9" | "Standard_A10" | "Standard_A11" | "Standard_A1_v2" | "Standard_A2_v2" | "Standard_A4_v2" | "Standard_A8_v2" | "Standard_A2m_v2" | "Standard_A4m_v2" | "Standard_A8m_v2" | "Standard_B1s" | "Standard_B1ms" | "Standard_B2s" | "Standard_B2ms" | "Standard_B4ms" | "Standard_B8ms" | "Standard_D1" | "Standard_D2" | "Standard_D3" | "Standard_D4" | "Standard_D11" | "Standard_D12" | "Standard_D13" | "Standard_D14" | "Standard_D1_v2" | "Standard_D2_v2" | "Standard_D3_v2" | "Standard_D4_v2" | "Standard_D5_v2" | "Standard_D2_v3" | "Standard_D4_v3" | "Standard_D8_v3" | "Standard_D16_v3" | "Standard_D32_v3" | "Standard_D64_v3" | "Standard_D2s_v3" | "Standard_D4s_v3" | "Standard_D8s_v3" | "Standard_D16s_v3" | "Standard_D32s_v3" | "Standard_D64s_v3" | "Standard_D11_v2" | "Standard_D12_v2" | "Standard_D13_v2" | "Standard_D14_v2" | "Standard_D15_v2" | "Standard_DS1" | "Standard_DS2" | "Standard_DS3" | "Standard_DS4" | "Standard_DS11" | "Standard_DS12" | "Standard_DS13" | "Standard_DS14" | "Standard_DS1_v2" | "Standard_DS2_v2" | "Standard_DS3_v2" | "Standard_DS4_v2" | "Standard_DS5_v2" | "Standard_DS11_v2" | "Standard_DS12_v2" | "Standard_DS13_v2" | "Standard_DS14_v2" | "Standard_DS15_v2" | "Standard_DS13-4_v2" | "Standard_DS13-2_v2" | "Standard_DS14-8_v2" | "Standard_DS14-4_v2" | "Standard_E2_v3" | "Standard_E4_v3" | "Standard_E8_v3" | "Standard_E16_v3" | "Standard_E32_v3" | "Standard_E64_v3" | "Standard_E2s_v3" | "Standard_E4s_v3" | "Standard_E8s_v3" | "Standard_E16s_v3" | "Standard_E32s_v3" | "Standard_E64s_v3" | "Standard_E32-16_v3" | "Standard_E32-8s_v3" | "Standard_E64-32s_v3" | "Standard_E64-16s_v3" | "Standard_F1" | "Standard_F2" | "Standard_F4" | "Standard_F8" | "Standard_F16" | "Standard_F1s" | "Standard_F2s" | "Standard_F4s" | "Standard_F8s" | "Standard_F16s" | "Standard_F2s_v2" | "Standard_F4s_v2" | "Standard_F8s_v2" | "Standard_F16s_v2" | "Standard_F32s_v2" | "Standard_F64s_v2" | "Standard_F72s_v2" | "Standard_G1" | "Standard_G2" | "Standard_G3" | "Standard_G4" | "Standard_G5" | "Standard_GS1" | "Standard_GS2" | "Standard_GS3" | "Standard_GS4" | "Standard_GS5" | "Standard_GS4-8" | "Standard_GS4-4" | "Standard_GS5-16" | "Standard_GS5-8" | "Standard_H8" | "Standard_H16" | "Standard_H8m" | "Standard_H16m" | "Standard_H16r" | "Standard_H16mr" | "Standard_L4s" | "Standard_L8s" | "Standard_L16s" | "Standard_L32s" | "Standard_M64s" | "Standard_M64ms" | "Standard_M128s" | "Standard_M128ms" | "Standard_M64-32ms" | "Standard_M64-16ms" | "Standard_M128-64ms" | "Standard_M128-32ms" | "Standard_NC6" | "Standard_NC12" | "Standard_NC24" | "Standard_NC24r" | "Standard_NC6s_v2" | "Standard_NC12s_v2" | "Standard_NC24s_v2" | "Standard_NC24rs_v2" | "Standard_NC6s_v3" | "Standard_NC12s_v3" | "Standard_NC24s_v3" | "Standard_NC24rs_v3" | "Standard_ND6s" | "Standard_ND12s" | "Standard_ND24s" | "Standard_ND24rs" | "Standard_NV6" | "Standard_NV12" | "Standard_NV24"
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties Property Map
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.

    HardwareProfileResponse, HardwareProfileResponseArgs

    VmSize string
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    VmSizeProperties Pulumi.AzureNative.Compute.Inputs.VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    VmSize string
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    VmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize String
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize string
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vm_size str
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vm_size_properties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.
    vmSize String
    Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: List all available virtual machine sizes in an availability set, List all available virtual machine sizes in a region, List all available virtual machine sizes for resizing. For more information about virtual machine sizes, see Sizes for virtual machines. The available VM sizes depend on region and availability set.
    vmSizeProperties Property Map
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in VM Customization for more details.

    IPVersions, IPVersionsArgs

    IPv4
    IPv4
    IPv6
    IPv6
    IPVersionsIPv4
    IPv4
    IPVersionsIPv6
    IPv6
    IPv4
    IPv4
    IPv6
    IPv6
    IPv4
    IPv4
    IPv6
    IPv6
    I_PV4
    IPv4
    I_PV6
    IPv6
    "IPv4"
    IPv4
    "IPv6"
    IPv6

    ImageReference, ImageReferenceArgs

    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id string
    Resource Id
    offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher string
    The image publisher.
    sharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku string
    The image SKU.
    version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    community_gallery_image_id str
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id str
    Resource Id
    offer str
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher str
    The image publisher.
    shared_gallery_image_id str
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku str
    The image SKU.
    version str
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.

    ImageReferenceResponse, ImageReferenceResponseArgs

    ExactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    ExactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion String
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id string
    Resource Id
    offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher string
    The image publisher.
    sharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku string
    The image SKU.
    version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exact_version str
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    community_gallery_image_id str
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id str
    Resource Id
    offer str
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher str
    The image publisher.
    shared_gallery_image_id str
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku str
    The image SKU.
    version str
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion String
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.

    InnerErrorResponse, InnerErrorResponseArgs

    Errordetail string
    The internal error message or exception dump.
    Exceptiontype string
    The exception type.
    Errordetail string
    The internal error message or exception dump.
    Exceptiontype string
    The exception type.
    errordetail String
    The internal error message or exception dump.
    exceptiontype String
    The exception type.
    errordetail string
    The internal error message or exception dump.
    exceptiontype string
    The exception type.
    errordetail str
    The internal error message or exception dump.
    exceptiontype str
    The exception type.
    errordetail String
    The internal error message or exception dump.
    exceptiontype String
    The exception type.

    InstanceViewStatusResponse, InstanceViewStatusResponseArgs

    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level string
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level string
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level String
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.
    code string
    The status code.
    displayStatus string
    The short localizable label for the status.
    level string
    The level code.
    message string
    The detailed status message, including for alerts and error messages.
    time string
    The time of the status.
    code str
    The status code.
    display_status str
    The short localizable label for the status.
    level str
    The level code.
    message str
    The detailed status message, including for alerts and error messages.
    time str
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level String
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.

    KeyVaultKeyReference, KeyVaultKeyReferenceArgs

    KeyUrl string
    The URL referencing a key encryption key in Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResource
    The relative URL of the Key Vault containing the key.
    KeyUrl string
    The URL referencing a key encryption key in Key Vault.
    SourceVault SubResource
    The relative URL of the Key Vault containing the key.
    keyUrl String
    The URL referencing a key encryption key in Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the key.
    keyUrl string
    The URL referencing a key encryption key in Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the key.
    key_url str
    The URL referencing a key encryption key in Key Vault.
    source_vault SubResource
    The relative URL of the Key Vault containing the key.
    keyUrl String
    The URL referencing a key encryption key in Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the key.

    KeyVaultKeyReferenceResponse, KeyVaultKeyReferenceResponseArgs

    KeyUrl string
    The URL referencing a key encryption key in Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The relative URL of the Key Vault containing the key.
    KeyUrl string
    The URL referencing a key encryption key in Key Vault.
    SourceVault SubResourceResponse
    The relative URL of the Key Vault containing the key.
    keyUrl String
    The URL referencing a key encryption key in Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the key.
    keyUrl string
    The URL referencing a key encryption key in Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the key.
    key_url str
    The URL referencing a key encryption key in Key Vault.
    source_vault SubResourceResponse
    The relative URL of the Key Vault containing the key.
    keyUrl String
    The URL referencing a key encryption key in Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the key.

    KeyVaultSecretReference, KeyVaultSecretReferenceArgs

    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResource
    The relative URL of the Key Vault containing the secret.
    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl string
    The URL referencing a secret in a Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secret_url str
    The URL referencing a secret in a Key Vault.
    source_vault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the secret.

    KeyVaultSecretReferenceResponse, KeyVaultSecretReferenceResponseArgs

    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl string
    The URL referencing a secret in a Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secret_url str
    The URL referencing a secret in a Key Vault.
    source_vault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the secret.

    LastPatchInstallationSummaryResponse, LastPatchInstallationSummaryResponseArgs

    Error Pulumi.AzureNative.Compute.Inputs.ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    ExcludedPatchCount int
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    FailedPatchCount int
    The count of patches that failed installation.
    InstallationActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    InstalledPatchCount int
    The count of patches that successfully installed.
    LastModifiedTime string
    The UTC timestamp when the operation began.
    MaintenanceWindowExceeded bool
    Describes whether the operation ran out of time before it completed all its intended actions
    NotSelectedPatchCount int
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    PendingPatchCount int
    The number of all available patches expected to be installed over the course of the patch installation operation.
    StartTime string
    The UTC timestamp when the operation began.
    Status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    Error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    ExcludedPatchCount int
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    FailedPatchCount int
    The count of patches that failed installation.
    InstallationActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    InstalledPatchCount int
    The count of patches that successfully installed.
    LastModifiedTime string
    The UTC timestamp when the operation began.
    MaintenanceWindowExceeded bool
    Describes whether the operation ran out of time before it completed all its intended actions
    NotSelectedPatchCount int
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    PendingPatchCount int
    The number of all available patches expected to be installed over the course of the patch installation operation.
    StartTime string
    The UTC timestamp when the operation began.
    Status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    excludedPatchCount Integer
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    failedPatchCount Integer
    The count of patches that failed installation.
    installationActivityId String
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    installedPatchCount Integer
    The count of patches that successfully installed.
    lastModifiedTime String
    The UTC timestamp when the operation began.
    maintenanceWindowExceeded Boolean
    Describes whether the operation ran out of time before it completed all its intended actions
    notSelectedPatchCount Integer
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    pendingPatchCount Integer
    The number of all available patches expected to be installed over the course of the patch installation operation.
    startTime String
    The UTC timestamp when the operation began.
    status String
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    excludedPatchCount number
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    failedPatchCount number
    The count of patches that failed installation.
    installationActivityId string
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    installedPatchCount number
    The count of patches that successfully installed.
    lastModifiedTime string
    The UTC timestamp when the operation began.
    maintenanceWindowExceeded boolean
    Describes whether the operation ran out of time before it completed all its intended actions
    notSelectedPatchCount number
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    pendingPatchCount number
    The number of all available patches expected to be installed over the course of the patch installation operation.
    startTime string
    The UTC timestamp when the operation began.
    status string
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    error ApiErrorResponse
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    excluded_patch_count int
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    failed_patch_count int
    The count of patches that failed installation.
    installation_activity_id str
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    installed_patch_count int
    The count of patches that successfully installed.
    last_modified_time str
    The UTC timestamp when the operation began.
    maintenance_window_exceeded bool
    Describes whether the operation ran out of time before it completed all its intended actions
    not_selected_patch_count int
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    pending_patch_count int
    The number of all available patches expected to be installed over the course of the patch installation operation.
    start_time str
    The UTC timestamp when the operation began.
    status str
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
    error Property Map
    The errors that were encountered during execution of the operation. The details array contains the list of them.
    excludedPatchCount Number
    The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
    failedPatchCount Number
    The count of patches that failed installation.
    installationActivityId String
    The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
    installedPatchCount Number
    The count of patches that successfully installed.
    lastModifiedTime String
    The UTC timestamp when the operation began.
    maintenanceWindowExceeded Boolean
    Describes whether the operation ran out of time before it completed all its intended actions
    notSelectedPatchCount Number
    The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry.
    pendingPatchCount Number
    The number of all available patches expected to be installed over the course of the patch installation operation.
    startTime String
    The UTC timestamp when the operation began.
    status String
    The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."

    LinuxConfiguration, LinuxConfigurationArgs

    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh Pulumi.AzureNative.Compute.Inputs.SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disable_password_authentication bool
    Specifies whether password authentication should be disabled.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patch_settings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh Property Map
    Specifies the ssh key configuration for a Linux OS.

    LinuxConfigurationResponse, LinuxConfigurationResponseArgs

    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh Pulumi.AzureNative.Compute.Inputs.SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disable_password_authentication bool
    Specifies whether password authentication should be disabled.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patch_settings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh Property Map
    Specifies the ssh key configuration for a Linux OS.

    LinuxPatchAssessmentMode, LinuxPatchAssessmentModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    LinuxPatchAssessmentModeImageDefault
    ImageDefault
    LinuxPatchAssessmentModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    LinuxPatchSettings, LinuxPatchSettingsArgs

    AssessmentMode string | Pulumi.AzureNative.Compute.LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string | Pulumi.AzureNative.Compute.LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    AssessmentMode string | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode string | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode string | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessment_mode str | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patch_mode str | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true

    LinuxPatchSettingsResponse, LinuxPatchSettingsResponseArgs

    AssessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    AssessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessment_mode str
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patch_mode str
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true

    LinuxVMGuestPatchAutomaticByPlatformRebootSetting, LinuxVMGuestPatchAutomaticByPlatformRebootSettingArgs

    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingUnknown
    Unknown
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingIfRequired
    IfRequired
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingNever
    Never
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingAlways
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    UNKNOWN
    Unknown
    IF_REQUIRED
    IfRequired
    NEVER
    Never
    ALWAYS
    Always
    "Unknown"
    Unknown
    "IfRequired"
    IfRequired
    "Never"
    Never
    "Always"
    Always

    LinuxVMGuestPatchAutomaticByPlatformSettings, LinuxVMGuestPatchAutomaticByPlatformSettingsArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | Pulumi.AzureNative.Compute.LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | "Unknown" | "IfRequired" | "Never" | "Always"
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    LinuxVMGuestPatchAutomaticByPlatformSettingsResponse, LinuxVMGuestPatchAutomaticByPlatformSettingsResponseArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    LinuxVMGuestPatchMode, LinuxVMGuestPatchModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    LinuxVMGuestPatchModeImageDefault
    ImageDefault
    LinuxVMGuestPatchModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    MaintenanceRedeployStatusResponse, MaintenanceRedeployStatusResponseArgs

    IsCustomerInitiatedMaintenanceAllowed bool
    True, if customer is allowed to perform Maintenance.
    LastOperationMessage string
    Message returned for the last Maintenance Operation.
    LastOperationResultCode string
    The Last Maintenance Operation Result Code.
    MaintenanceWindowEndTime string
    End Time for the Maintenance Window.
    MaintenanceWindowStartTime string
    Start Time for the Maintenance Window.
    PreMaintenanceWindowEndTime string
    End Time for the Pre Maintenance Window.
    PreMaintenanceWindowStartTime string
    Start Time for the Pre Maintenance Window.
    IsCustomerInitiatedMaintenanceAllowed bool
    True, if customer is allowed to perform Maintenance.
    LastOperationMessage string
    Message returned for the last Maintenance Operation.
    LastOperationResultCode string
    The Last Maintenance Operation Result Code.
    MaintenanceWindowEndTime string
    End Time for the Maintenance Window.
    MaintenanceWindowStartTime string
    Start Time for the Maintenance Window.
    PreMaintenanceWindowEndTime string
    End Time for the Pre Maintenance Window.
    PreMaintenanceWindowStartTime string
    Start Time for the Pre Maintenance Window.
    isCustomerInitiatedMaintenanceAllowed Boolean
    True, if customer is allowed to perform Maintenance.
    lastOperationMessage String
    Message returned for the last Maintenance Operation.
    lastOperationResultCode String
    The Last Maintenance Operation Result Code.
    maintenanceWindowEndTime String
    End Time for the Maintenance Window.
    maintenanceWindowStartTime String
    Start Time for the Maintenance Window.
    preMaintenanceWindowEndTime String
    End Time for the Pre Maintenance Window.
    preMaintenanceWindowStartTime String
    Start Time for the Pre Maintenance Window.
    isCustomerInitiatedMaintenanceAllowed boolean
    True, if customer is allowed to perform Maintenance.
    lastOperationMessage string
    Message returned for the last Maintenance Operation.
    lastOperationResultCode string
    The Last Maintenance Operation Result Code.
    maintenanceWindowEndTime string
    End Time for the Maintenance Window.
    maintenanceWindowStartTime string
    Start Time for the Maintenance Window.
    preMaintenanceWindowEndTime string
    End Time for the Pre Maintenance Window.
    preMaintenanceWindowStartTime string
    Start Time for the Pre Maintenance Window.
    is_customer_initiated_maintenance_allowed bool
    True, if customer is allowed to perform Maintenance.
    last_operation_message str
    Message returned for the last Maintenance Operation.
    last_operation_result_code str
    The Last Maintenance Operation Result Code.
    maintenance_window_end_time str
    End Time for the Maintenance Window.
    maintenance_window_start_time str
    Start Time for the Maintenance Window.
    pre_maintenance_window_end_time str
    End Time for the Pre Maintenance Window.
    pre_maintenance_window_start_time str
    Start Time for the Pre Maintenance Window.
    isCustomerInitiatedMaintenanceAllowed Boolean
    True, if customer is allowed to perform Maintenance.
    lastOperationMessage String
    Message returned for the last Maintenance Operation.
    lastOperationResultCode String
    The Last Maintenance Operation Result Code.
    maintenanceWindowEndTime String
    End Time for the Maintenance Window.
    maintenanceWindowStartTime String
    Start Time for the Maintenance Window.
    preMaintenanceWindowEndTime String
    End Time for the Pre Maintenance Window.
    preMaintenanceWindowStartTime String
    Start Time for the Pre Maintenance Window.

    ManagedDiskParameters, ManagedDiskParametersArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    Id string
    Resource Id
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    StorageAccountType string | Pulumi.AzureNative.Compute.StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    DiskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    Id string
    Resource Id
    SecurityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    StorageAccountType string | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id String
    Resource Id
    securityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storageAccountType String | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id string
    Resource Id
    securityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storageAccountType string | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    disk_encryption_set DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id str
    Resource Id
    security_profile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storage_account_type str | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id String
    Resource Id
    securityProfile Property Map
    Specifies the security profile for the managed disk.
    storageAccountType String | "Standard_LRS" | "Premium_LRS" | "StandardSSD_LRS" | "UltraSSD_LRS" | "Premium_ZRS" | "StandardSSD_ZRS" | "PremiumV2_LRS"
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.

    ManagedDiskParametersResponse, ManagedDiskParametersResponseArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    Id string
    Resource Id
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    StorageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    DiskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    Id string
    Resource Id
    SecurityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    StorageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id String
    Resource Id
    securityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storageAccountType String
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id string
    Resource Id
    securityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    disk_encryption_set DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id str
    Resource Id
    security_profile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storage_account_type str
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk.
    id String
    Resource Id
    securityProfile Property Map
    Specifies the security profile for the managed disk.
    storageAccountType String
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.

    NetworkApiVersion, NetworkApiVersionArgs

    NetworkApiVersion_2020_11_01
    2020-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    _20201101
    2020-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    NETWORK_API_VERSION_2020_11_01
    2020-11-01
    "2020-11-01"
    2020-11-01

    NetworkInterfaceReference, NetworkInterfaceReferenceArgs

    DeleteOption string | Pulumi.AzureNative.Compute.DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    Id string
    Resource Id
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    DeleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    Id string
    Resource Id
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption String | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    id String
    Resource Id
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    id string
    Resource Id
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    delete_option str | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    id str
    Resource Id
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption String | "Delete" | "Detach"
    Specify what happens to the network interface when the VM is deleted
    id String
    Resource Id
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    NetworkInterfaceReferenceResponse, NetworkInterfaceReferenceResponseArgs

    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    Id string
    Resource Id
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    Id string
    Resource Id
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    id String
    Resource Id
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption string
    Specify what happens to the network interface when the VM is deleted
    id string
    Resource Id
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    delete_option str
    Specify what happens to the network interface when the VM is deleted
    id str
    Resource Id
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    id String
    Resource Id
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    NetworkProfile, NetworkProfileArgs

    NetworkApiVersion string | Pulumi.AzureNative.Compute.NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    NetworkInterfaceConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceConfiguration>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    NetworkInterfaces List<Pulumi.AzureNative.Compute.Inputs.NetworkInterfaceReference>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    NetworkApiVersion string | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    NetworkInterfaceConfigurations []VirtualMachineNetworkInterfaceConfiguration
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    NetworkInterfaces []NetworkInterfaceReference
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion String | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations List<VirtualMachineNetworkInterfaceConfiguration>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces List<NetworkInterfaceReference>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion string | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations VirtualMachineNetworkInterfaceConfiguration[]
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces NetworkInterfaceReference[]
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    network_api_version str | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    network_interface_configurations Sequence[VirtualMachineNetworkInterfaceConfiguration]
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    network_interfaces Sequence[NetworkInterfaceReference]
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion String | "2020-11-01"
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations List<Property Map>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces List<Property Map>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.

    NetworkProfileResponse, NetworkProfileResponseArgs

    NetworkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    NetworkInterfaceConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceConfigurationResponse>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    NetworkInterfaces List<Pulumi.AzureNative.Compute.Inputs.NetworkInterfaceReferenceResponse>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    NetworkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    NetworkInterfaceConfigurations []VirtualMachineNetworkInterfaceConfigurationResponse
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    NetworkInterfaces []NetworkInterfaceReferenceResponse
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion String
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations List<VirtualMachineNetworkInterfaceConfigurationResponse>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces List<NetworkInterfaceReferenceResponse>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations VirtualMachineNetworkInterfaceConfigurationResponse[]
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces NetworkInterfaceReferenceResponse[]
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    network_api_version str
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    network_interface_configurations Sequence[VirtualMachineNetworkInterfaceConfigurationResponse]
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    network_interfaces Sequence[NetworkInterfaceReferenceResponse]
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
    networkApiVersion String
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
    networkInterfaceConfigurations List<Property Map>
    Specifies the networking configurations that will be used to create the virtual machine networking resources.
    networkInterfaces List<Property Map>
    Specifies the list of resource Ids for the network interfaces associated with the virtual machine.

    OSDisk, OSDiskArgs

    CreateOption string | Pulumi.AzureNative.Compute.DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Caching Pulumi.AzureNative.Compute.CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | Pulumi.AzureNative.Compute.DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    DiffDiskSettings Pulumi.AzureNative.Compute.Inputs.DiffDiskSettings
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    EncryptionSettings Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSettings
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDisk
    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.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.ManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    OsType Pulumi.AzureNative.Compute.OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    Vhd Pulumi.AzureNative.Compute.Inputs.VirtualHardDisk
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    DiffDiskSettings DiffDiskSettings
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    EncryptionSettings DiskEncryptionSettings
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    Image VirtualHardDisk
    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.
    ManagedDisk ManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    OsType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    Vhd VirtualHardDisk
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings DiffDiskSettings
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings DiskEncryptionSettings
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDisk
    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.
    managedDisk ManagedDiskParameters
    The managed disk parameters.
    name String
    The disk name.
    osType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDisk
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings DiffDiskSettings
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings DiskEncryptionSettings
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDisk
    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.
    managedDisk ManagedDiskParameters
    The managed disk parameters.
    name string
    The disk name.
    osType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDisk
    The virtual hard disk.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str | DiskCreateOptionTypes
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    delete_option str | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diff_disk_settings DiffDiskSettings
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryption_settings DiskEncryptionSettings
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDisk
    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.
    managed_disk ManagedDiskParameters
    The managed disk parameters.
    name str
    The disk name.
    os_type OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDisk
    The virtual hard disk.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | "FromImage" | "Empty" | "Attach"
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching "None" | "ReadOnly" | "ReadWrite"
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | "Delete" | "Detach"
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings Property Map
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings Property Map
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image Property Map
    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.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    osType "Windows" | "Linux"
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd Property Map
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    OSDiskResponse, OSDiskResponseArgs

    CreateOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    DiffDiskSettings Pulumi.AzureNative.Compute.Inputs.DiffDiskSettingsResponse
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    EncryptionSettings Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDiskResponse
    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.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.ManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    OsType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    Vhd Pulumi.AzureNative.Compute.Inputs.VirtualHardDiskResponse
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    DiffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    EncryptionSettings DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    Image VirtualHardDiskResponse
    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.
    ManagedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    OsType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    Vhd VirtualHardDiskResponse
    The virtual hard disk.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDiskResponse
    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.
    managedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    name String
    The disk name.
    osType String
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDiskResponse
    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.
    managedDisk ManagedDiskParametersResponse
    The managed disk parameters.
    name string
    The disk name.
    osType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching str
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    delete_option str
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diff_disk_settings DiffDiskSettingsResponse
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryption_settings DiskEncryptionSettingsResponse
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image VirtualHardDiskResponse
    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.
    managed_disk ManagedDiskParametersResponse
    The managed disk parameters.
    name str
    The disk name.
    os_type str
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd VirtualHardDiskResponse
    The virtual hard disk.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machine should be created. Possible values are: Attach. This value is used when you are using a specialized disk to create the virtual machine. FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The defaulting behavior is: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: Delete. If this value is used, the OS disk is deleted when VM is deleted. Detach. If this value is used, the os disk is retained after VM is deleted. The default value is set to Detach. For an ephemeral OS Disk, the default value is set to Delete. The user cannot change the delete option for an ephemeral OS Disk.
    diffDiskSettings Property Map
    Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    encryptionSettings Property Map
    Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15.
    image Property Map
    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.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    osType String
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd Property Map
    The virtual hard disk.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    OSImageNotificationProfile, OSImageNotificationProfileArgs

    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    not_before_timeout str
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)

    OSImageNotificationProfileResponse, OSImageNotificationProfileResponseArgs

    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    not_before_timeout str
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)

    OSProfile, OSProfileArgs

    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    ComputerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    LinuxConfiguration Pulumi.AzureNative.Compute.Inputs.LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets List<Pulumi.AzureNative.Compute.Inputs.VaultSecretGroup>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration Pulumi.AzureNative.Compute.Inputs.WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    ComputerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    LinuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets []VaultSecretGroup
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName String
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<VaultSecretGroup>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal boolean
    Optional property which must either be set to True or omitted.
    secrets VaultSecretGroup[]
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    admin_password str
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    admin_username str
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allow_extension_operations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computer_name str
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    custom_data str
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linux_configuration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    require_guest_provision_signal bool
    Optional property which must either be set to True or omitted.
    secrets Sequence[VaultSecretGroup]
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windows_configuration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName String
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration Property Map
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<Property Map>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration Property Map
    Specifies Windows operating system settings on the virtual machine.

    OSProfileResponse, OSProfileResponseArgs

    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    ComputerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    LinuxConfiguration Pulumi.AzureNative.Compute.Inputs.LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets List<Pulumi.AzureNative.Compute.Inputs.VaultSecretGroupResponse>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration Pulumi.AzureNative.Compute.Inputs.WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    ComputerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    LinuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets []VaultSecretGroupResponse
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName String
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<VaultSecretGroupResponse>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername string
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName string
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal boolean
    Optional property which must either be set to True or omitted.
    secrets VaultSecretGroupResponse[]
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    admin_password str
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    admin_username str
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allow_extension_operations bool
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computer_name str
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    custom_data str
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linux_configuration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    require_guest_provision_signal bool
    Optional property which must either be set to True or omitted.
    secrets Sequence[VaultSecretGroupResponse]
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windows_configuration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. This property cannot be updated after the VM is created. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters.
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
    computerName String
    Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. Max-length (Windows): 15 characters. Max-length (Linux): 64 characters. For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. Note: Do not pass any secrets or passwords in customData property. This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs. For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation.
    linuxConfiguration Property Map
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<Property Map>
    Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration Property Map
    Specifies Windows operating system settings on the virtual machine.

    OperatingSystemTypes, OperatingSystemTypesArgs

    Windows
    Windows
    Linux
    Linux
    OperatingSystemTypesWindows
    Windows
    OperatingSystemTypesLinux
    Linux
    Windows
    Windows
    Linux
    Linux
    Windows
    Windows
    Linux
    Linux
    WINDOWS
    Windows
    LINUX
    Linux
    "Windows"
    Windows
    "Linux"
    Linux

    PassNames, PassNamesArgs

    OobeSystem
    OobeSystem
    PassNamesOobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OOBE_SYSTEM
    OobeSystem
    "OobeSystem"
    OobeSystem

    PatchSettings, PatchSettingsArgs

    AssessmentMode string | Pulumi.AzureNative.Compute.WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string | Pulumi.AzureNative.Compute.WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    AssessmentMode string | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode string | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode string | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessment_mode str | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enable_hotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patch_mode str | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String | "Manual" | "AutomaticByOS" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true

    PatchSettingsResponse, PatchSettingsResponseArgs

    AssessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    AssessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessment_mode str
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enable_hotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patch_mode str
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true

    Plan, PlanArgs

    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.
    name string
    The plan ID.
    product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode string
    The promotion code.
    publisher string
    The publisher ID.
    name str
    The plan ID.
    product str
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotion_code str
    The promotion code.
    publisher str
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.

    PlanResponse, PlanResponseArgs

    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.
    name string
    The plan ID.
    product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode string
    The promotion code.
    publisher string
    The publisher ID.
    name str
    The plan ID.
    product str
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotion_code str
    The promotion code.
    publisher str
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.

    ProtocolTypes, ProtocolTypesArgs

    Http
    Http
    Https
    Https
    ProtocolTypesHttp
    Http
    ProtocolTypesHttps
    Https
    Http
    Http
    Https
    Https
    Http
    Http
    Https
    Https
    HTTP
    Http
    HTTPS
    Https
    "Http"
    Http
    "Https"
    Https

    PublicIPAddressSku, PublicIPAddressSkuArgs

    Name string | Pulumi.AzureNative.Compute.PublicIPAddressSkuName
    Specify public IP sku name
    Tier string | Pulumi.AzureNative.Compute.PublicIPAddressSkuTier
    Specify public IP sku tier
    Name string | PublicIPAddressSkuName
    Specify public IP sku name
    Tier string | PublicIPAddressSkuTier
    Specify public IP sku tier
    name String | PublicIPAddressSkuName
    Specify public IP sku name
    tier String | PublicIPAddressSkuTier
    Specify public IP sku tier
    name string | PublicIPAddressSkuName
    Specify public IP sku name
    tier string | PublicIPAddressSkuTier
    Specify public IP sku tier
    name str | PublicIPAddressSkuName
    Specify public IP sku name
    tier str | PublicIPAddressSkuTier
    Specify public IP sku tier
    name String | "Basic" | "Standard"
    Specify public IP sku name
    tier String | "Regional" | "Global"
    Specify public IP sku tier

    PublicIPAddressSkuName, PublicIPAddressSkuNameArgs

    Basic
    Basic
    Standard
    Standard
    PublicIPAddressSkuNameBasic
    Basic
    PublicIPAddressSkuNameStandard
    Standard
    Basic
    Basic
    Standard
    Standard
    Basic
    Basic
    Standard
    Standard
    BASIC
    Basic
    STANDARD
    Standard
    "Basic"
    Basic
    "Standard"
    Standard

    PublicIPAddressSkuResponse, PublicIPAddressSkuResponseArgs

    Name string
    Specify public IP sku name
    Tier string
    Specify public IP sku tier
    Name string
    Specify public IP sku name
    Tier string
    Specify public IP sku tier
    name String
    Specify public IP sku name
    tier String
    Specify public IP sku tier
    name string
    Specify public IP sku name
    tier string
    Specify public IP sku tier
    name str
    Specify public IP sku name
    tier str
    Specify public IP sku tier
    name String
    Specify public IP sku name
    tier String
    Specify public IP sku tier

    PublicIPAddressSkuTier, PublicIPAddressSkuTierArgs

    Regional
    Regional
    Global
    Global
    PublicIPAddressSkuTierRegional
    Regional
    PublicIPAddressSkuTierGlobal
    Global
    Regional
    Regional
    Global
    Global
    Regional
    Regional
    Global
    Global
    REGIONAL
    Regional
    GLOBAL_
    Global
    "Regional"
    Regional
    "Global"
    Global

    PublicIPAllocationMethod, PublicIPAllocationMethodArgs

    Dynamic
    Dynamic
    Static
    Static
    PublicIPAllocationMethodDynamic
    Dynamic
    PublicIPAllocationMethodStatic
    Static
    Dynamic
    Dynamic
    Static
    Static
    Dynamic
    Dynamic
    Static
    Static
    DYNAMIC
    Dynamic
    STATIC
    Static
    "Dynamic"
    Dynamic
    "Static"
    Static

    ResourceIdentityType, ResourceIdentityTypeArgs

    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    ResourceIdentityTypeSystemAssigned
    SystemAssigned
    ResourceIdentityTypeUserAssigned
    UserAssigned
    ResourceIdentityType_SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    ResourceIdentityTypeNone
    None
    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    SYSTEM_ASSIGNED
    SystemAssigned
    USER_ASSIGNED
    UserAssigned
    SYSTEM_ASSIGNED_USER_ASSIGNED
    SystemAssigned, UserAssigned
    NONE
    None
    "SystemAssigned"
    SystemAssigned
    "UserAssigned"
    UserAssigned
    "SystemAssigned, UserAssigned"
    SystemAssigned, UserAssigned
    "None"
    None

    ScheduledEventsProfile, ScheduledEventsProfileArgs

    OsImageNotificationProfile Pulumi.AzureNative.Compute.Inputs.OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile Pulumi.AzureNative.Compute.Inputs.TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    OsImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    os_image_notification_profile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminate_notification_profile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile Property Map
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile Property Map
    Specifies Terminate Scheduled Event related configurations.

    ScheduledEventsProfileResponse, ScheduledEventsProfileResponseArgs

    OsImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    os_image_notification_profile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminate_notification_profile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile Property Map
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile Property Map
    Specifies Terminate Scheduled Event related configurations.

    SecurityEncryptionTypes, SecurityEncryptionTypesArgs

    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    SecurityEncryptionTypesVMGuestStateOnly
    VMGuestStateOnly
    SecurityEncryptionTypesDiskWithVMGuestState
    DiskWithVMGuestState
    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    VM_GUEST_STATE_ONLY
    VMGuestStateOnly
    DISK_WITH_VM_GUEST_STATE
    DiskWithVMGuestState
    "VMGuestStateOnly"
    VMGuestStateOnly
    "DiskWithVMGuestState"
    DiskWithVMGuestState

    SecurityProfile, SecurityProfileArgs

    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string | Pulumi.AzureNative.Compute.SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings Pulumi.AzureNative.Compute.Inputs.UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType string | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryption_at_host bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    security_type str | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefi_settings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String | "TrustedLaunch" | "ConfidentialVM"
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings Property Map
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.

    SecurityProfileResponse, SecurityProfileResponseArgs

    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings Pulumi.AzureNative.Compute.Inputs.UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryption_at_host bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    security_type str
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefi_settings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings Property Map
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.

    SecurityTypes, SecurityTypesArgs

    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    SecurityTypesTrustedLaunch
    TrustedLaunch
    SecurityTypesConfidentialVM
    ConfidentialVM
    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    TRUSTED_LAUNCH
    TrustedLaunch
    CONFIDENTIAL_VM
    ConfidentialVM
    "TrustedLaunch"
    TrustedLaunch
    "ConfidentialVM"
    ConfidentialVM

    SettingNames, SettingNamesArgs

    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    SettingNamesAutoLogon
    AutoLogon
    SettingNamesFirstLogonCommands
    FirstLogonCommands
    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    AUTO_LOGON
    AutoLogon
    FIRST_LOGON_COMMANDS
    FirstLogonCommands
    "AutoLogon"
    AutoLogon
    "FirstLogonCommands"
    FirstLogonCommands

    SshConfiguration, SshConfigurationArgs

    PublicKeys List<Pulumi.AzureNative.Compute.Inputs.SshPublicKey>
    The list of SSH public keys used to authenticate with linux based VMs.
    PublicKeys []SshPublicKeyType
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<SshPublicKey>
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys SshPublicKey[]
    The list of SSH public keys used to authenticate with linux based VMs.
    public_keys Sequence[SshPublicKey]
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<Property Map>
    The list of SSH public keys used to authenticate with linux based VMs.

    SshConfigurationResponse, SshConfigurationResponseArgs

    PublicKeys List<Pulumi.AzureNative.Compute.Inputs.SshPublicKeyResponse>
    The list of SSH public keys used to authenticate with linux based VMs.
    PublicKeys []SshPublicKeyResponse
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<SshPublicKeyResponse>
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys SshPublicKeyResponse[]
    The list of SSH public keys used to authenticate with linux based VMs.
    public_keys Sequence[SshPublicKeyResponse]
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<Property Map>
    The list of SSH public keys used to authenticate with linux based VMs.

    SshPublicKey, SshPublicKeyArgs

    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    key_data str
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path str
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys

    SshPublicKeyResponse, SshPublicKeyResponseArgs

    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    key_data str
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path str
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys

    StorageAccountTypes, StorageAccountTypesArgs

    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    StorageAccountTypes_Standard_LRS
    Standard_LRS
    StorageAccountTypes_Premium_LRS
    Premium_LRS
    StorageAccountTypes_StandardSSD_LRS
    StandardSSD_LRS
    StorageAccountTypes_UltraSSD_LRS
    UltraSSD_LRS
    StorageAccountTypes_Premium_ZRS
    Premium_ZRS
    StorageAccountTypes_StandardSSD_ZRS
    StandardSSD_ZRS
    StorageAccountTypes_PremiumV2_LRS
    PremiumV2_LRS
    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    STANDARD_LRS
    Standard_LRS
    PREMIUM_LRS
    Premium_LRS
    STANDARD_SS_D_LRS
    StandardSSD_LRS
    ULTRA_SS_D_LRS
    UltraSSD_LRS
    PREMIUM_ZRS
    Premium_ZRS
    STANDARD_SS_D_ZRS
    StandardSSD_ZRS
    PREMIUM_V2_LRS
    PremiumV2_LRS
    "Standard_LRS"
    Standard_LRS
    "Premium_LRS"
    Premium_LRS
    "StandardSSD_LRS"
    StandardSSD_LRS
    "UltraSSD_LRS"
    UltraSSD_LRS
    "Premium_ZRS"
    Premium_ZRS
    "StandardSSD_ZRS"
    StandardSSD_ZRS
    "PremiumV2_LRS"
    PremiumV2_LRS

    StorageProfile, StorageProfileArgs

    DataDisks List<Pulumi.AzureNative.Compute.Inputs.DataDisk>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType string | Pulumi.AzureNative.Compute.DiskControllerTypes
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk Pulumi.AzureNative.Compute.Inputs.OSDisk
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DataDisks []DataDisk
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType string | DiskControllerTypes
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    ImageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk OSDisk
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<DataDisk>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType String | DiskControllerTypes
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk OSDisk
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks DataDisk[]
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType string | DiskControllerTypes
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk OSDisk
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    data_disks Sequence[DataDisk]
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    disk_controller_type str | DiskControllerTypes
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    image_reference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    os_disk OSDisk
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<Property Map>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType String | "SCSI" | "NVMe"
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference Property Map
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk Property Map
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.

    StorageProfileResponse, StorageProfileResponseArgs

    DataDisks List<Pulumi.AzureNative.Compute.Inputs.DataDiskResponse>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType string
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk Pulumi.AzureNative.Compute.Inputs.OSDiskResponse
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DataDisks []DataDiskResponse
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType string
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    ImageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk OSDiskResponse
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<DataDiskResponse>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType String
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk OSDiskResponse
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks DataDiskResponse[]
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType string
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk OSDiskResponse
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    data_disks Sequence[DataDiskResponse]
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    disk_controller_type str
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    image_reference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    os_disk OSDiskResponse
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<Property Map>
    Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType String
    Specifies the disk controller type configured for the VM. Note: This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01.
    imageReference Property Map
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk Property Map
    Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.

    SubResource, SubResourceArgs

    Id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    Id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id String
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id str
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id String
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.

    SubResourceResponse, SubResourceResponseArgs

    Id string
    Resource Id
    Id string
    Resource Id
    id String
    Resource Id
    id string
    Resource Id
    id str
    Resource Id
    id String
    Resource Id

    TerminateNotificationProfile, TerminateNotificationProfileArgs

    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    not_before_timeout str
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)

    TerminateNotificationProfileResponse, TerminateNotificationProfileResponseArgs

    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    not_before_timeout str
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)

    UefiSettings, UefiSettingsArgs

    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    v_tpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.

    UefiSettingsResponse, UefiSettingsResponseArgs

    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    v_tpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.

    UserAssignedIdentitiesResponseUserAssignedIdentities, UserAssignedIdentitiesResponseUserAssignedIdentitiesArgs

    ClientId string
    The client id of user assigned identity.
    PrincipalId string
    The principal id of user assigned identity.
    ClientId string
    The client id of user assigned identity.
    PrincipalId string
    The principal id of user assigned identity.
    clientId String
    The client id of user assigned identity.
    principalId String
    The principal id of user assigned identity.
    clientId string
    The client id of user assigned identity.
    principalId string
    The principal id of user assigned identity.
    client_id str
    The client id of user assigned identity.
    principal_id str
    The principal id of user assigned identity.
    clientId String
    The client id of user assigned identity.
    principalId String
    The principal id of user assigned identity.

    VMDiskSecurityProfile, VMDiskSecurityProfileArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string | Pulumi.AzureNative.Compute.SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    DiskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType string | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    disk_encryption_set DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    security_encryption_type str | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String | "VMGuestStateOnly" | "DiskWithVMGuestState"
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.

    VMDiskSecurityProfileResponse, VMDiskSecurityProfileResponseArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    DiskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    disk_encryption_set DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    security_encryption_type str
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.

    VMGalleryApplication, VMGalleryApplicationArgs

    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Integer
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order number
    Optional, Specifies the order in which the packages have to be installed
    tags string
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    package_reference_id str
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configuration_reference str
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enable_automatic_upgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order int
    Optional, Specifies the order in which the packages have to be installed
    tags str
    Optional, Specifies a passthrough value for more generic context.
    treat_failure_as_deployment_failure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Number
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment

    VMGalleryApplicationResponse, VMGalleryApplicationResponseArgs

    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Integer
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order number
    Optional, Specifies the order in which the packages have to be installed
    tags string
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    package_reference_id str
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configuration_reference str
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enable_automatic_upgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order int
    Optional, Specifies the order in which the packages have to be installed
    tags str
    Optional, Specifies a passthrough value for more generic context.
    treat_failure_as_deployment_failure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Number
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment

    VMSizeProperties, VMSizePropertiesArgs

    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Integer
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Integer
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    v_cpus_available int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    v_cpus_per_core int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.

    VMSizePropertiesResponse, VMSizePropertiesResponseArgs

    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Integer
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Integer
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    v_cpus_available int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    v_cpus_per_core int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.

    VaultCertificate, VaultCertificateArgs

    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificate_store str
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.

    VaultCertificateResponse, VaultCertificateResponseArgs

    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificate_store str
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.

    VaultSecretGroup, VaultSecretGroupArgs

    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates List<Pulumi.AzureNative.Compute.Inputs.VaultCertificate>
    The list of key vault references in SourceVault which contain certificates.
    SourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates []VaultCertificate
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<VaultCertificate>
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates VaultCertificate[]
    The list of key vault references in SourceVault which contain certificates.
    source_vault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vault_certificates Sequence[VaultCertificate]
    The list of key vault references in SourceVault which contain certificates.
    sourceVault Property Map
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<Property Map>
    The list of key vault references in SourceVault which contain certificates.

    VaultSecretGroupResponse, VaultSecretGroupResponseArgs

    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates List<Pulumi.AzureNative.Compute.Inputs.VaultCertificateResponse>
    The list of key vault references in SourceVault which contain certificates.
    SourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates []VaultCertificateResponse
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<VaultCertificateResponse>
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates VaultCertificateResponse[]
    The list of key vault references in SourceVault which contain certificates.
    source_vault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vault_certificates Sequence[VaultCertificateResponse]
    The list of key vault references in SourceVault which contain certificates.
    sourceVault Property Map
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<Property Map>
    The list of key vault references in SourceVault which contain certificates.

    VirtualHardDisk, VirtualHardDiskArgs

    Uri string
    Specifies the virtual hard disk's uri.
    Uri string
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.
    uri string
    Specifies the virtual hard disk's uri.
    uri str
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.

    VirtualHardDiskResponse, VirtualHardDiskResponseArgs

    Uri string
    Specifies the virtual hard disk's uri.
    Uri string
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.
    uri string
    Specifies the virtual hard disk's uri.
    uri str
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.

    VirtualMachineAgentInstanceViewResponse, VirtualMachineAgentInstanceViewResponseArgs

    ExtensionHandlers []VirtualMachineExtensionHandlerInstanceViewResponse
    The virtual machine extension handler instance view.
    Statuses []InstanceViewStatusResponse
    The resource status information.
    VmAgentVersion string
    The VM Agent full version.
    extensionHandlers List<VirtualMachineExtensionHandlerInstanceViewResponse>
    The virtual machine extension handler instance view.
    statuses List<InstanceViewStatusResponse>
    The resource status information.
    vmAgentVersion String
    The VM Agent full version.
    extensionHandlers VirtualMachineExtensionHandlerInstanceViewResponse[]
    The virtual machine extension handler instance view.
    statuses InstanceViewStatusResponse[]
    The resource status information.
    vmAgentVersion string
    The VM Agent full version.
    extension_handlers Sequence[VirtualMachineExtensionHandlerInstanceViewResponse]
    The virtual machine extension handler instance view.
    statuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    vm_agent_version str
    The VM Agent full version.
    extensionHandlers List<Property Map>
    The virtual machine extension handler instance view.
    statuses List<Property Map>
    The resource status information.
    vmAgentVersion String
    The VM Agent full version.

    VirtualMachineEvictionPolicyTypes, VirtualMachineEvictionPolicyTypesArgs

    Deallocate
    Deallocate
    Delete
    Delete
    VirtualMachineEvictionPolicyTypesDeallocate
    Deallocate
    VirtualMachineEvictionPolicyTypesDelete
    Delete
    Deallocate
    Deallocate
    Delete
    Delete
    Deallocate
    Deallocate
    Delete
    Delete
    DEALLOCATE
    Deallocate
    DELETE
    Delete
    "Deallocate"
    Deallocate
    "Delete"
    Delete

    VirtualMachineExtensionHandlerInstanceViewResponse, VirtualMachineExtensionHandlerInstanceViewResponseArgs

    Status Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse
    The extension handler status.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Status InstanceViewStatusResponse
    The extension handler status.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    status InstanceViewStatusResponse
    The extension handler status.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    status InstanceViewStatusResponse
    The extension handler status.
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    status InstanceViewStatusResponse
    The extension handler status.
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    status Property Map
    The extension handler status.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineExtensionInstanceViewResponse, VirtualMachineExtensionInstanceViewResponseArgs

    Name string
    The virtual machine extension name.
    Statuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    Substatuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Name string
    The virtual machine extension name.
    Statuses []InstanceViewStatusResponse
    The resource status information.
    Substatuses []InstanceViewStatusResponse
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<InstanceViewStatusResponse>
    The resource status information.
    substatuses List<InstanceViewStatusResponse>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    name string
    The virtual machine extension name.
    statuses InstanceViewStatusResponse[]
    The resource status information.
    substatuses InstanceViewStatusResponse[]
    The resource status information.
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    name str
    The virtual machine extension name.
    statuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    substatuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<Property Map>
    The resource status information.
    substatuses List<Property Map>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineExtensionResponse, VirtualMachineExtensionResponseArgs

    Id string
    Resource Id
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions List<string>
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings object
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags Dictionary<string, string>
    Resource tags
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Id string
    Resource Id
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings interface{}
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions []string
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings interface{}
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags map[string]string
    Resource tags
    TypeHandlerVersion string
    Specifies the version of the script handler.
    id String
    Resource Id
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Object
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String,String>
    Resource tags
    typeHandlerVersion String
    Specifies the version of the script handler.
    id string
    Resource Id
    name string
    Resource name
    provisioningState string
    The provisioning state, which only appears in the response.
    type string
    Resource type
    autoUpgradeMinorVersion boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location string
    Resource location
    protectedSettings any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions string[]
    Collection of extension names after which this extension needs to be provisioned.
    publisher string
    The name of the extension handler publisher.
    settings any
    Json formatted public settings for the extension.
    suppressFailures boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags {[key: string]: string}
    Resource tags
    typeHandlerVersion string
    Specifies the version of the script handler.
    id str
    Resource Id
    name str
    Resource name
    provisioning_state str
    The provisioning state, which only appears in the response.
    type str
    Resource type
    auto_upgrade_minor_version bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enable_automatic_upgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    force_update_tag str
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instance_view VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location str
    Resource location
    protected_settings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protected_settings_from_key_vault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provision_after_extensions Sequence[str]
    Collection of extension names after which this extension needs to be provisioned.
    publisher str
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppress_failures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Mapping[str, str]
    Resource tags
    type_handler_version str
    Specifies the version of the script handler.
    id String
    Resource Id
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView Property Map
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault Property Map
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String>
    Resource tags
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineHealthStatusResponse, VirtualMachineHealthStatusResponseArgs

    Status InstanceViewStatusResponse
    The health status information for the VM.
    status InstanceViewStatusResponse
    The health status information for the VM.
    status InstanceViewStatusResponse
    The health status information for the VM.
    status InstanceViewStatusResponse
    The health status information for the VM.
    status Property Map
    The health status information for the VM.

    VirtualMachineIdentity, VirtualMachineIdentityArgs

    Type Pulumi.AzureNative.Compute.ResourceIdentityType
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    UserAssignedIdentities List<string>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    Type ResourceIdentityType
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    UserAssignedIdentities []string
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities List<String>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities string[]
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    user_assigned_identities Sequence[str]
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities List<String>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

    VirtualMachineIdentityResponse, VirtualMachineIdentityResponseArgs

    PrincipalId string
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    TenantId string
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    Type string
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    UserAssignedIdentities Dictionary<string, Pulumi.AzureNative.Compute.Inputs.UserAssignedIdentitiesResponseUserAssignedIdentities>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    PrincipalId string
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    TenantId string
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    Type string
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    UserAssignedIdentities map[string]UserAssignedIdentitiesResponseUserAssignedIdentities
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId String
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    tenantId String
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    type String
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities Map<String,UserAssignedIdentitiesResponseUserAssignedIdentities>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId string
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    tenantId string
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    type string
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities {[key: string]: UserAssignedIdentitiesResponseUserAssignedIdentities}
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principal_id str
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    tenant_id str
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    type str
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    user_assigned_identities Mapping[str, UserAssignedIdentitiesResponseUserAssignedIdentities]
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId String
    The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
    tenantId String
    The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
    type String
    The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
    userAssignedIdentities Map<Property Map>
    The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

    VirtualMachineInstanceViewResponse, VirtualMachineInstanceViewResponseArgs

    AssignedHost string
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    VmHealth Pulumi.AzureNative.Compute.Inputs.VirtualMachineHealthStatusResponse
    The health status for the VM.
    BootDiagnostics Pulumi.AzureNative.Compute.Inputs.BootDiagnosticsInstanceViewResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    ComputerName string
    The computer name assigned to the virtual machine.
    Disks List<Pulumi.AzureNative.Compute.Inputs.DiskInstanceViewResponse>
    The virtual machine disk information.
    Extensions List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtensionInstanceViewResponse>
    The extensions information.
    HyperVGeneration string
    Specifies the HyperVGeneration Type associated with a resource
    MaintenanceRedeployStatus Pulumi.AzureNative.Compute.Inputs.MaintenanceRedeployStatusResponse
    The Maintenance Operation status on the virtual machine.
    OsName string
    The Operating System running on the virtual machine.
    OsVersion string
    The version of Operating System running on the virtual machine.
    PatchStatus Pulumi.AzureNative.Compute.Inputs.VirtualMachinePatchStatusResponse
    [Preview Feature] The status of virtual machine patch operations.
    PlatformFaultDomain int
    Specifies the fault domain of the virtual machine.
    PlatformUpdateDomain int
    Specifies the update domain of the virtual machine.
    RdpThumbPrint string
    The Remote desktop certificate thumbprint.
    Statuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    VmAgent Pulumi.AzureNative.Compute.Inputs.VirtualMachineAgentInstanceViewResponse
    The VM Agent running on the virtual machine.
    AssignedHost string
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    VmHealth VirtualMachineHealthStatusResponse
    The health status for the VM.
    BootDiagnostics BootDiagnosticsInstanceViewResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    ComputerName string
    The computer name assigned to the virtual machine.
    Disks []DiskInstanceViewResponse
    The virtual machine disk information.
    Extensions []VirtualMachineExtensionInstanceViewResponse
    The extensions information.
    HyperVGeneration string
    Specifies the HyperVGeneration Type associated with a resource
    MaintenanceRedeployStatus MaintenanceRedeployStatusResponse
    The Maintenance Operation status on the virtual machine.
    OsName string
    The Operating System running on the virtual machine.
    OsVersion string
    The version of Operating System running on the virtual machine.
    PatchStatus VirtualMachinePatchStatusResponse
    [Preview Feature] The status of virtual machine patch operations.
    PlatformFaultDomain int
    Specifies the fault domain of the virtual machine.
    PlatformUpdateDomain int
    Specifies the update domain of the virtual machine.
    RdpThumbPrint string
    The Remote desktop certificate thumbprint.
    Statuses []InstanceViewStatusResponse
    The resource status information.
    VmAgent VirtualMachineAgentInstanceViewResponse
    The VM Agent running on the virtual machine.
    assignedHost String
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    vmHealth VirtualMachineHealthStatusResponse
    The health status for the VM.
    bootDiagnostics BootDiagnosticsInstanceViewResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    computerName String
    The computer name assigned to the virtual machine.
    disks List<DiskInstanceViewResponse>
    The virtual machine disk information.
    extensions List<VirtualMachineExtensionInstanceViewResponse>
    The extensions information.
    hyperVGeneration String
    Specifies the HyperVGeneration Type associated with a resource
    maintenanceRedeployStatus MaintenanceRedeployStatusResponse
    The Maintenance Operation status on the virtual machine.
    osName String
    The Operating System running on the virtual machine.
    osVersion String
    The version of Operating System running on the virtual machine.
    patchStatus VirtualMachinePatchStatusResponse
    [Preview Feature] The status of virtual machine patch operations.
    platformFaultDomain Integer
    Specifies the fault domain of the virtual machine.
    platformUpdateDomain Integer
    Specifies the update domain of the virtual machine.
    rdpThumbPrint String
    The Remote desktop certificate thumbprint.
    statuses List<InstanceViewStatusResponse>
    The resource status information.
    vmAgent VirtualMachineAgentInstanceViewResponse
    The VM Agent running on the virtual machine.
    assignedHost string
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    vmHealth VirtualMachineHealthStatusResponse
    The health status for the VM.
    bootDiagnostics BootDiagnosticsInstanceViewResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    computerName string
    The computer name assigned to the virtual machine.
    disks DiskInstanceViewResponse[]
    The virtual machine disk information.
    extensions VirtualMachineExtensionInstanceViewResponse[]
    The extensions information.
    hyperVGeneration string
    Specifies the HyperVGeneration Type associated with a resource
    maintenanceRedeployStatus MaintenanceRedeployStatusResponse
    The Maintenance Operation status on the virtual machine.
    osName string
    The Operating System running on the virtual machine.
    osVersion string
    The version of Operating System running on the virtual machine.
    patchStatus VirtualMachinePatchStatusResponse
    [Preview Feature] The status of virtual machine patch operations.
    platformFaultDomain number
    Specifies the fault domain of the virtual machine.
    platformUpdateDomain number
    Specifies the update domain of the virtual machine.
    rdpThumbPrint string
    The Remote desktop certificate thumbprint.
    statuses InstanceViewStatusResponse[]
    The resource status information.
    vmAgent VirtualMachineAgentInstanceViewResponse
    The VM Agent running on the virtual machine.
    assigned_host str
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    vm_health VirtualMachineHealthStatusResponse
    The health status for the VM.
    boot_diagnostics BootDiagnosticsInstanceViewResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    computer_name str
    The computer name assigned to the virtual machine.
    disks Sequence[DiskInstanceViewResponse]
    The virtual machine disk information.
    extensions Sequence[VirtualMachineExtensionInstanceViewResponse]
    The extensions information.
    hyper_v_generation str
    Specifies the HyperVGeneration Type associated with a resource
    maintenance_redeploy_status MaintenanceRedeployStatusResponse
    The Maintenance Operation status on the virtual machine.
    os_name str
    The Operating System running on the virtual machine.
    os_version str
    The version of Operating System running on the virtual machine.
    patch_status VirtualMachinePatchStatusResponse
    [Preview Feature] The status of virtual machine patch operations.
    platform_fault_domain int
    Specifies the fault domain of the virtual machine.
    platform_update_domain int
    Specifies the update domain of the virtual machine.
    rdp_thumb_print str
    The Remote desktop certificate thumbprint.
    statuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    vm_agent VirtualMachineAgentInstanceViewResponse
    The VM Agent running on the virtual machine.
    assignedHost String
    Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01.
    vmHealth Property Map
    The health status for the VM.
    bootDiagnostics Property Map
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    computerName String
    The computer name assigned to the virtual machine.
    disks List<Property Map>
    The virtual machine disk information.
    extensions List<Property Map>
    The extensions information.
    hyperVGeneration String
    Specifies the HyperVGeneration Type associated with a resource
    maintenanceRedeployStatus Property Map
    The Maintenance Operation status on the virtual machine.
    osName String
    The Operating System running on the virtual machine.
    osVersion String
    The version of Operating System running on the virtual machine.
    patchStatus Property Map
    [Preview Feature] The status of virtual machine patch operations.
    platformFaultDomain Number
    Specifies the fault domain of the virtual machine.
    platformUpdateDomain Number
    Specifies the update domain of the virtual machine.
    rdpThumbPrint String
    The Remote desktop certificate thumbprint.
    statuses List<Property Map>
    The resource status information.
    vmAgent Property Map
    The VM Agent running on the virtual machine.

    VirtualMachineIpTag, VirtualMachineIpTagArgs

    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType string
    IP tag type. Example: FirstPartyUsage.
    tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ip_tag_type str
    IP tag type. Example: FirstPartyUsage.
    tag str
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.

    VirtualMachineIpTagResponse, VirtualMachineIpTagResponseArgs

    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType string
    IP tag type. Example: FirstPartyUsage.
    tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ip_tag_type str
    IP tag type. Example: FirstPartyUsage.
    tag str
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.

    VirtualMachineNetworkInterfaceConfiguration, VirtualMachineNetworkInterfaceConfigurationArgs

    IpConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceIPConfiguration>
    Specifies the IP configurations of the network interface.
    Name string
    The network interface configuration name.
    DeleteOption string | Pulumi.AzureNative.Compute.DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceDnsSettingsConfiguration
    The dns settings to be applied on the network interfaces.
    DscpConfiguration Pulumi.AzureNative.Compute.Inputs.SubResource
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    IpConfigurations []VirtualMachineNetworkInterfaceIPConfiguration
    Specifies the IP configurations of the network interface.
    Name string
    The network interface configuration name.
    DeleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfiguration
    The dns settings to be applied on the network interfaces.
    DscpConfiguration SubResource
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup SubResource
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<VirtualMachineNetworkInterfaceIPConfiguration>
    Specifies the IP configurations of the network interface.
    name String
    The network interface configuration name.
    deleteOption String | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfiguration
    The dns settings to be applied on the network interfaces.
    dscpConfiguration SubResource
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResource
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations VirtualMachineNetworkInterfaceIPConfiguration[]
    Specifies the IP configurations of the network interface.
    name string
    The network interface configuration name.
    deleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfiguration
    The dns settings to be applied on the network interfaces.
    dscpConfiguration SubResource
    enableAcceleratedNetworking boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResource
    The network security group.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ip_configurations Sequence[VirtualMachineNetworkInterfaceIPConfiguration]
    Specifies the IP configurations of the network interface.
    name str
    The network interface configuration name.
    delete_option str | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disable_tcp_state_tracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    dns_settings VirtualMachineNetworkInterfaceDnsSettingsConfiguration
    The dns settings to be applied on the network interfaces.
    dscp_configuration SubResource
    enable_accelerated_networking bool
    Specifies whether the network interface is accelerated networking-enabled.
    enable_fpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    enable_ip_forwarding bool
    Whether IP forwarding enabled on this NIC.
    network_security_group SubResource
    The network security group.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<Property Map>
    Specifies the IP configurations of the network interface.
    name String
    The network interface configuration name.
    deleteOption String | "Delete" | "Detach"
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings Property Map
    The dns settings to be applied on the network interfaces.
    dscpConfiguration Property Map
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup Property Map
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    VirtualMachineNetworkInterfaceConfigurationResponse, VirtualMachineNetworkInterfaceConfigurationResponseArgs

    IpConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceIPConfigurationResponse>
    Specifies the IP configurations of the network interface.
    Name string
    The network interface configuration name.
    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse
    The dns settings to be applied on the network interfaces.
    DscpConfiguration Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    IpConfigurations []VirtualMachineNetworkInterfaceIPConfigurationResponse
    Specifies the IP configurations of the network interface.
    Name string
    The network interface configuration name.
    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse
    The dns settings to be applied on the network interfaces.
    DscpConfiguration SubResourceResponse
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup SubResourceResponse
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<VirtualMachineNetworkInterfaceIPConfigurationResponse>
    Specifies the IP configurations of the network interface.
    name String
    The network interface configuration name.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse
    The dns settings to be applied on the network interfaces.
    dscpConfiguration SubResourceResponse
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResourceResponse
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations VirtualMachineNetworkInterfaceIPConfigurationResponse[]
    Specifies the IP configurations of the network interface.
    name string
    The network interface configuration name.
    deleteOption string
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse
    The dns settings to be applied on the network interfaces.
    dscpConfiguration SubResourceResponse
    enableAcceleratedNetworking boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResourceResponse
    The network security group.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ip_configurations Sequence[VirtualMachineNetworkInterfaceIPConfigurationResponse]
    Specifies the IP configurations of the network interface.
    name str
    The network interface configuration name.
    delete_option str
    Specify what happens to the network interface when the VM is deleted
    disable_tcp_state_tracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    dns_settings VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse
    The dns settings to be applied on the network interfaces.
    dscp_configuration SubResourceResponse
    enable_accelerated_networking bool
    Specifies whether the network interface is accelerated networking-enabled.
    enable_fpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    enable_ip_forwarding bool
    Whether IP forwarding enabled on this NIC.
    network_security_group SubResourceResponse
    The network security group.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<Property Map>
    Specifies the IP configurations of the network interface.
    name String
    The network interface configuration name.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings Property Map
    The dns settings to be applied on the network interfaces.
    dscpConfiguration Property Map
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup Property Map
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    VirtualMachineNetworkInterfaceDnsSettingsConfiguration, VirtualMachineNetworkInterfaceDnsSettingsConfigurationArgs

    DnsServers List<string>
    List of DNS servers IP addresses
    DnsServers []string
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses
    dnsServers string[]
    List of DNS servers IP addresses
    dns_servers Sequence[str]
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses

    VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse, VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponseArgs

    DnsServers List<string>
    List of DNS servers IP addresses
    DnsServers []string
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses
    dnsServers string[]
    List of DNS servers IP addresses
    dns_servers Sequence[str]
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses

    VirtualMachineNetworkInterfaceIPConfiguration, VirtualMachineNetworkInterfaceIPConfigurationArgs

    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    ApplicationSecurityGroups List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string | Pulumi.AzureNative.Compute.IPVersions
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration Pulumi.AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    Subnet Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies the identifier of the subnet.
    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools []SubResource
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    ApplicationSecurityGroups []SubResource
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools []SubResource
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string | IPVersions
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration VirtualMachinePublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    Subnet SubResource
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<SubResource>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups List<SubResource>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<SubResource>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String | IPVersions
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachinePublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet SubResource
    Specifies the identifier of the subnet.
    name string
    The IP configuration name.
    applicationGatewayBackendAddressPools SubResource[]
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups SubResource[]
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools SubResource[]
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion string | IPVersions
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachinePublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet SubResource
    Specifies the identifier of the subnet.
    name str
    The IP configuration name.
    application_gateway_backend_address_pools Sequence[SubResource]
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    application_security_groups Sequence[SubResource]
    Specifies an array of references to application security group.
    load_balancer_backend_address_pools Sequence[SubResource]
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    private_ip_address_version str | IPVersions
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_address_configuration VirtualMachinePublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet SubResource
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups List<Property Map>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String | "IPv4" | "IPv6"
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration Property Map
    The publicIPAddressConfiguration.
    subnet Property Map
    Specifies the identifier of the subnet.

    VirtualMachineNetworkInterfaceIPConfigurationResponse, VirtualMachineNetworkInterfaceIPConfigurationResponseArgs

    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    ApplicationSecurityGroups List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration Pulumi.AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    Subnet Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    Specifies the identifier of the subnet.
    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools []SubResourceResponse
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    ApplicationSecurityGroups []SubResourceResponse
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools []SubResourceResponse
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration VirtualMachinePublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    Subnet SubResourceResponse
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<SubResourceResponse>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups List<SubResourceResponse>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<SubResourceResponse>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachinePublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet SubResourceResponse
    Specifies the identifier of the subnet.
    name string
    The IP configuration name.
    applicationGatewayBackendAddressPools SubResourceResponse[]
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups SubResourceResponse[]
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools SubResourceResponse[]
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachinePublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet SubResourceResponse
    Specifies the identifier of the subnet.
    name str
    The IP configuration name.
    application_gateway_backend_address_pools Sequence[SubResourceResponse]
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    application_security_groups Sequence[SubResourceResponse]
    Specifies an array of references to application security group.
    load_balancer_backend_address_pools Sequence[SubResourceResponse]
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    private_ip_address_version str
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_address_configuration VirtualMachinePublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet SubResourceResponse
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway.
    applicationSecurityGroups List<Property Map>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer].
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration Property Map
    The publicIPAddressConfiguration.
    subnet Property Map
    Specifies the identifier of the subnet.

    VirtualMachinePatchStatusResponse, VirtualMachinePatchStatusResponseArgs

    ConfigurationStatuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The enablement status of the specified patchMode
    AvailablePatchSummary Pulumi.AzureNative.Compute.Inputs.AvailablePatchSummaryResponse
    The available patch summary of the latest assessment operation for the virtual machine.
    LastPatchInstallationSummary Pulumi.AzureNative.Compute.Inputs.LastPatchInstallationSummaryResponse
    The installation summary of the latest installation operation for the virtual machine.
    ConfigurationStatuses []InstanceViewStatusResponse
    The enablement status of the specified patchMode
    AvailablePatchSummary AvailablePatchSummaryResponse
    The available patch summary of the latest assessment operation for the virtual machine.
    LastPatchInstallationSummary LastPatchInstallationSummaryResponse
    The installation summary of the latest installation operation for the virtual machine.
    configurationStatuses List<InstanceViewStatusResponse>
    The enablement status of the specified patchMode
    availablePatchSummary AvailablePatchSummaryResponse
    The available patch summary of the latest assessment operation for the virtual machine.
    lastPatchInstallationSummary LastPatchInstallationSummaryResponse
    The installation summary of the latest installation operation for the virtual machine.
    configurationStatuses InstanceViewStatusResponse[]
    The enablement status of the specified patchMode
    availablePatchSummary AvailablePatchSummaryResponse
    The available patch summary of the latest assessment operation for the virtual machine.
    lastPatchInstallationSummary LastPatchInstallationSummaryResponse
    The installation summary of the latest installation operation for the virtual machine.
    configuration_statuses Sequence[InstanceViewStatusResponse]
    The enablement status of the specified patchMode
    available_patch_summary AvailablePatchSummaryResponse
    The available patch summary of the latest assessment operation for the virtual machine.
    last_patch_installation_summary LastPatchInstallationSummaryResponse
    The installation summary of the latest installation operation for the virtual machine.
    configurationStatuses List<Property Map>
    The enablement status of the specified patchMode
    availablePatchSummary Property Map
    The available patch summary of the latest assessment operation for the virtual machine.
    lastPatchInstallationSummary Property Map
    The installation summary of the latest installation operation for the virtual machine.

    VirtualMachinePriorityTypes, VirtualMachinePriorityTypesArgs

    Regular
    Regular
    Low
    Low
    Spot
    Spot
    VirtualMachinePriorityTypesRegular
    Regular
    VirtualMachinePriorityTypesLow
    Low
    VirtualMachinePriorityTypesSpot
    Spot
    Regular
    Regular
    Low
    Low
    Spot
    Spot
    Regular
    Regular
    Low
    Low
    Spot
    Spot
    REGULAR
    Regular
    LOW
    Low
    SPOT
    Spot
    "Regular"
    Regular
    "Low"
    Low
    "Spot"
    Spot

    VirtualMachinePublicIPAddressConfiguration, VirtualMachinePublicIPAddressConfigurationArgs

    Name string
    The publicIP address configuration name.
    DeleteOption string | Pulumi.AzureNative.Compute.DeleteOptions
    Specify what happens to the public IP address when the VM is deleted
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressDnsSettingsConfiguration
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineIpTag>
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string | Pulumi.AzureNative.Compute.IPVersions
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAllocationMethod string | Pulumi.AzureNative.Compute.PublicIPAllocationMethod
    Specify the public IP allocation type
    PublicIPPrefix Pulumi.AzureNative.Compute.Inputs.SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku Pulumi.AzureNative.Compute.Inputs.PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    Name string
    The publicIP address configuration name.
    DeleteOption string | DeleteOptions
    Specify what happens to the public IP address when the VM is deleted
    DnsSettings VirtualMachinePublicIPAddressDnsSettingsConfiguration
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags []VirtualMachineIpTag
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string | IPVersions
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAllocationMethod string | PublicIPAllocationMethod
    Specify the public IP allocation type
    PublicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String | DeleteOptions
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings VirtualMachinePublicIPAddressDnsSettingsConfiguration
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Integer
    The idle timeout of the public IP address.
    ipTags List<VirtualMachineIpTag>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String | IPVersions
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod String | PublicIPAllocationMethod
    Specify the public IP allocation type
    publicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name string
    The publicIP address configuration name.
    deleteOption string | DeleteOptions
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings VirtualMachinePublicIPAddressDnsSettingsConfiguration
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes number
    The idle timeout of the public IP address.
    ipTags VirtualMachineIpTag[]
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion string | IPVersions
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod string | PublicIPAllocationMethod
    Specify the public IP allocation type
    publicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name str
    The publicIP address configuration name.
    delete_option str | DeleteOptions
    Specify what happens to the public IP address when the VM is deleted
    dns_settings VirtualMachinePublicIPAddressDnsSettingsConfiguration
    The dns settings to be applied on the publicIP addresses .
    idle_timeout_in_minutes int
    The idle timeout of the public IP address.
    ip_tags Sequence[VirtualMachineIpTag]
    The list of IP tags associated with the public IP address.
    public_ip_address_version str | IPVersions
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_allocation_method str | PublicIPAllocationMethod
    Specify the public IP allocation type
    public_ip_prefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String | "Delete" | "Detach"
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings Property Map
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Number
    The idle timeout of the public IP address.
    ipTags List<Property Map>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String | "IPv4" | "IPv6"
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod String | "Dynamic" | "Static"
    Specify the public IP allocation type
    publicIPPrefix Property Map
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku Property Map
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.

    VirtualMachinePublicIPAddressConfigurationResponse, VirtualMachinePublicIPAddressConfigurationResponseArgs

    Name string
    The publicIP address configuration name.
    DeleteOption string
    Specify what happens to the public IP address when the VM is deleted
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineIpTagResponse>
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAllocationMethod string
    Specify the public IP allocation type
    PublicIPPrefix Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku Pulumi.AzureNative.Compute.Inputs.PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    Name string
    The publicIP address configuration name.
    DeleteOption string
    Specify what happens to the public IP address when the VM is deleted
    DnsSettings VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags []VirtualMachineIpTagResponse
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAllocationMethod string
    Specify the public IP allocation type
    PublicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Integer
    The idle timeout of the public IP address.
    ipTags List<VirtualMachineIpTagResponse>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod String
    Specify the public IP allocation type
    publicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name string
    The publicIP address configuration name.
    deleteOption string
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes number
    The idle timeout of the public IP address.
    ipTags VirtualMachineIpTagResponse[]
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod string
    Specify the public IP allocation type
    publicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name str
    The publicIP address configuration name.
    delete_option str
    Specify what happens to the public IP address when the VM is deleted
    dns_settings VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse
    The dns settings to be applied on the publicIP addresses .
    idle_timeout_in_minutes int
    The idle timeout of the public IP address.
    ip_tags Sequence[VirtualMachineIpTagResponse]
    The list of IP tags associated with the public IP address.
    public_ip_address_version str
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_allocation_method str
    Specify the public IP allocation type
    public_ip_prefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String
    Specify what happens to the public IP address when the VM is deleted
    dnsSettings Property Map
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Number
    The idle timeout of the public IP address.
    ipTags List<Property Map>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAllocationMethod String
    Specify the public IP allocation type
    publicIPPrefix Property Map
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku Property Map
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.

    VirtualMachinePublicIPAddressDnsSettingsConfiguration, VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs

    DomainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    DomainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel String
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domain_name_label str
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel String
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.

    VirtualMachinePublicIPAddressDnsSettingsConfigurationResponse, VirtualMachinePublicIPAddressDnsSettingsConfigurationResponseArgs

    DomainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    DomainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel String
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel string
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domain_name_label str
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.
    domainNameLabel String
    The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID.

    VirtualMachineSizeTypes, VirtualMachineSizeTypesArgs

    Basic_A0
    Basic_A0
    Basic_A1
    Basic_A1
    Basic_A2
    Basic_A2
    Basic_A3
    Basic_A3
    Basic_A4
    Basic_A4
    Standard_A0
    Standard_A0
    Standard_A1
    Standard_A1
    Standard_A2
    Standard_A2
    Standard_A3
    Standard_A3
    Standard_A4
    Standard_A4
    Standard_A5
    Standard_A5
    Standard_A6
    Standard_A6
    Standard_A7
    Standard_A7
    Standard_A8
    Standard_A8
    Standard_A9
    Standard_A9
    Standard_A10
    Standard_A10
    Standard_A11
    Standard_A11
    Standard_A1_v2
    Standard_A1_v2
    Standard_A2_v2
    Standard_A2_v2
    Standard_A4_v2
    Standard_A4_v2
    Standard_A8_v2
    Standard_A8_v2
    Standard_A2m_v2
    Standard_A2m_v2
    Standard_A4m_v2
    Standard_A4m_v2
    Standard_A8m_v2
    Standard_A8m_v2
    Standard_B1s
    Standard_B1s
    Standard_B1ms
    Standard_B1ms
    Standard_B2s
    Standard_B2s
    Standard_B2ms
    Standard_B2ms
    Standard_B4ms
    Standard_B4ms
    Standard_B8ms
    Standard_B8ms
    Standard_D1
    Standard_D1
    Standard_D2
    Standard_D2
    Standard_D3
    Standard_D3
    Standard_D4
    Standard_D4
    Standard_D11
    Standard_D11
    Standard_D12
    Standard_D12
    Standard_D13
    Standard_D13
    Standard_D14
    Standard_D14
    Standard_D1_v2
    Standard_D1_v2
    Standard_D2_v2
    Standard_D2_v2
    Standard_D3_v2
    Standard_D3_v2
    Standard_D4_v2
    Standard_D4_v2
    Standard_D5_v2
    Standard_D5_v2
    Standard_D2_v3
    Standard_D2_v3
    Standard_D4_v3
    Standard_D4_v3
    Standard_D8_v3
    Standard_D8_v3
    Standard_D16_v3
    Standard_D16_v3
    Standard_D32_v3
    Standard_D32_v3
    Standard_D64_v3
    Standard_D64_v3
    Standard_D2s_v3
    Standard_D2s_v3
    Standard_D4s_v3
    Standard_D4s_v3
    Standard_D8s_v3
    Standard_D8s_v3
    Standard_D16s_v3
    Standard_D16s_v3
    Standard_D32s_v3
    Standard_D32s_v3
    Standard_D64s_v3
    Standard_D64s_v3
    Standard_D11_v2
    Standard_D11_v2
    Standard_D12_v2
    Standard_D12_v2
    Standard_D13_v2
    Standard_D13_v2
    Standard_D14_v2
    Standard_D14_v2
    Standard_D15_v2
    Standard_D15_v2
    Standard_DS1
    Standard_DS1
    Standard_DS2
    Standard_DS2
    Standard_DS3
    Standard_DS3
    Standard_DS4
    Standard_DS4
    Standard_DS11
    Standard_DS11
    Standard_DS12
    Standard_DS12
    Standard_DS13
    Standard_DS13
    Standard_DS14
    Standard_DS14
    Standard_DS1_v2
    Standard_DS1_v2
    Standard_DS2_v2
    Standard_DS2_v2
    Standard_DS3_v2
    Standard_DS3_v2
    Standard_DS4_v2
    Standard_DS4_v2
    Standard_DS5_v2
    Standard_DS5_v2
    Standard_DS11_v2
    Standard_DS11_v2
    Standard_DS12_v2
    Standard_DS12_v2
    Standard_DS13_v2
    Standard_DS13_v2
    Standard_DS14_v2
    Standard_DS14_v2
    Standard_DS15_v2
    Standard_DS15_v2
    Standard_DS13_4_v2
    Standard_DS13-4_v2
    Standard_DS13_2_v2
    Standard_DS13-2_v2
    Standard_DS14_8_v2
    Standard_DS14-8_v2
    Standard_DS14_4_v2
    Standard_DS14-4_v2
    Standard_E2_v3
    Standard_E2_v3
    Standard_E4_v3
    Standard_E4_v3
    Standard_E8_v3
    Standard_E8_v3
    Standard_E16_v3
    Standard_E16_v3
    Standard_E32_v3
    Standard_E32_v3
    Standard_E64_v3
    Standard_E64_v3
    Standard_E2s_v3
    Standard_E2s_v3
    Standard_E4s_v3
    Standard_E4s_v3
    Standard_E8s_v3
    Standard_E8s_v3
    Standard_E16s_v3
    Standard_E16s_v3
    Standard_E32s_v3
    Standard_E32s_v3
    Standard_E64s_v3
    Standard_E64s_v3
    Standard_E32_16_v3
    Standard_E32-16_v3
    Standard_E32_8s_v3
    Standard_E32-8s_v3
    Standard_E64_32s_v3
    Standard_E64-32s_v3
    Standard_E64_16s_v3
    Standard_E64-16s_v3
    Standard_F1
    Standard_F1
    Standard_F2
    Standard_F2
    Standard_F4
    Standard_F4
    Standard_F8
    Standard_F8
    Standard_F16
    Standard_F16
    Standard_F1s
    Standard_F1s
    Standard_F2s
    Standard_F2s
    Standard_F4s
    Standard_F4s
    Standard_F8s
    Standard_F8s
    Standard_F16s
    Standard_F16s
    Standard_F2s_v2
    Standard_F2s_v2
    Standard_F4s_v2
    Standard_F4s_v2
    Standard_F8s_v2
    Standard_F8s_v2
    Standard_F16s_v2
    Standard_F16s_v2
    Standard_F32s_v2
    Standard_F32s_v2
    Standard_F64s_v2
    Standard_F64s_v2
    Standard_F72s_v2
    Standard_F72s_v2
    Standard_G1
    Standard_G1
    Standard_G2
    Standard_G2
    Standard_G3
    Standard_G3
    Standard_G4
    Standard_G4
    Standard_G5
    Standard_G5
    Standard_GS1
    Standard_GS1
    Standard_GS2
    Standard_GS2
    Standard_GS3
    Standard_GS3
    Standard_GS4
    Standard_GS4
    Standard_GS5
    Standard_GS5
    Standard_GS4_8
    Standard_GS4-8
    Standard_GS4_4
    Standard_GS4-4
    Standard_GS5_16
    Standard_GS5-16
    Standard_GS5_8
    Standard_GS5-8
    Standard_H8
    Standard_H8
    Standard_H16
    Standard_H16
    Standard_H8m
    Standard_H8m
    Standard_H16m
    Standard_H16m
    Standard_H16r
    Standard_H16r
    Standard_H16mr
    Standard_H16mr
    Standard_L4s
    Standard_L4s
    Standard_L8s
    Standard_L8s
    Standard_L16s
    Standard_L16s
    Standard_L32s
    Standard_L32s
    Standard_M64s
    Standard_M64s
    Standard_M64ms
    Standard_M64ms
    Standard_M128s
    Standard_M128s
    Standard_M128ms
    Standard_M128ms
    Standard_M64_32ms
    Standard_M64-32ms
    Standard_M64_16ms
    Standard_M64-16ms
    Standard_M128_64ms
    Standard_M128-64ms
    Standard_M128_32ms
    Standard_M128-32ms
    Standard_NC6
    Standard_NC6
    Standard_NC12
    Standard_NC12
    Standard_NC24
    Standard_NC24
    Standard_NC24r
    Standard_NC24r
    Standard_NC6s_v2
    Standard_NC6s_v2
    Standard_NC12s_v2
    Standard_NC12s_v2
    Standard_NC24s_v2
    Standard_NC24s_v2
    Standard_NC24rs_v2
    Standard_NC24rs_v2
    Standard_NC6s_v3
    Standard_NC6s_v3
    Standard_NC12s_v3
    Standard_NC12s_v3
    Standard_NC24s_v3
    Standard_NC24s_v3
    Standard_NC24rs_v3
    Standard_NC24rs_v3
    Standard_ND6s
    Standard_ND6s
    Standard_ND12s
    Standard_ND12s
    Standard_ND24s
    Standard_ND24s
    Standard_ND24rs
    Standard_ND24rs
    Standard_NV6
    Standard_NV6
    Standard_NV12
    Standard_NV12
    Standard_NV24
    Standard_NV24
    VirtualMachineSizeTypes_Basic_A0
    Basic_A0
    VirtualMachineSizeTypes_Basic_A1
    Basic_A1
    VirtualMachineSizeTypes_Basic_A2
    Basic_A2
    VirtualMachineSizeTypes_Basic_A3
    Basic_A3
    VirtualMachineSizeTypes_Basic_A4
    Basic_A4
    VirtualMachineSizeTypes_Standard_A0
    Standard_A0
    VirtualMachineSizeTypes_Standard_A1
    Standard_A1
    VirtualMachineSizeTypes_Standard_A2
    Standard_A2
    VirtualMachineSizeTypes_Standard_A3
    Standard_A3
    VirtualMachineSizeTypes_Standard_A4
    Standard_A4
    VirtualMachineSizeTypes_Standard_A5
    Standard_A5
    VirtualMachineSizeTypes_Standard_A6
    Standard_A6
    VirtualMachineSizeTypes_Standard_A7
    Standard_A7
    VirtualMachineSizeTypes_Standard_A8
    Standard_A8
    VirtualMachineSizeTypes_Standard_A9
    Standard_A9
    VirtualMachineSizeTypes_Standard_A10
    Standard_A10
    VirtualMachineSizeTypes_Standard_A11
    Standard_A11
    VirtualMachineSizeTypes_Standard_A1_v2
    Standard_A1_v2
    VirtualMachineSizeTypes_Standard_A2_v2
    Standard_A2_v2
    VirtualMachineSizeTypes_Standard_A4_v2
    Standard_A4_v2
    VirtualMachineSizeTypes_Standard_A8_v2
    Standard_A8_v2
    VirtualMachineSizeTypes_Standard_A2m_v2
    Standard_A2m_v2
    VirtualMachineSizeTypes_Standard_A4m_v2
    Standard_A4m_v2
    VirtualMachineSizeTypes_Standard_A8m_v2
    Standard_A8m_v2
    VirtualMachineSizeTypes_Standard_B1s
    Standard_B1s
    VirtualMachineSizeTypes_Standard_B1ms
    Standard_B1ms
    VirtualMachineSizeTypes_Standard_B2s
    Standard_B2s
    VirtualMachineSizeTypes_Standard_B2ms
    Standard_B2ms
    VirtualMachineSizeTypes_Standard_B4ms
    Standard_B4ms
    VirtualMachineSizeTypes_Standard_B8ms
    Standard_B8ms
    VirtualMachineSizeTypes_Standard_D1
    Standard_D1
    VirtualMachineSizeTypes_Standard_D2
    Standard_D2
    VirtualMachineSizeTypes_Standard_D3
    Standard_D3
    VirtualMachineSizeTypes_Standard_D4
    Standard_D4
    VirtualMachineSizeTypes_Standard_D11
    Standard_D11
    VirtualMachineSizeTypes_Standard_D12
    Standard_D12
    VirtualMachineSizeTypes_Standard_D13
    Standard_D13
    VirtualMachineSizeTypes_Standard_D14
    Standard_D14
    VirtualMachineSizeTypes_Standard_D1_v2
    Standard_D1_v2
    VirtualMachineSizeTypes_Standard_D2_v2
    Standard_D2_v2
    VirtualMachineSizeTypes_Standard_D3_v2
    Standard_D3_v2
    VirtualMachineSizeTypes_Standard_D4_v2
    Standard_D4_v2
    VirtualMachineSizeTypes_Standard_D5_v2
    Standard_D5_v2
    VirtualMachineSizeTypes_Standard_D2_v3
    Standard_D2_v3
    VirtualMachineSizeTypes_Standard_D4_v3
    Standard_D4_v3
    VirtualMachineSizeTypes_Standard_D8_v3
    Standard_D8_v3
    VirtualMachineSizeTypes_Standard_D16_v3
    Standard_D16_v3
    VirtualMachineSizeTypes_Standard_D32_v3
    Standard_D32_v3
    VirtualMachineSizeTypes_Standard_D64_v3
    Standard_D64_v3
    VirtualMachineSizeTypes_Standard_D2s_v3
    Standard_D2s_v3
    VirtualMachineSizeTypes_Standard_D4s_v3
    Standard_D4s_v3
    VirtualMachineSizeTypes_Standard_D8s_v3
    Standard_D8s_v3
    VirtualMachineSizeTypes_Standard_D16s_v3
    Standard_D16s_v3
    VirtualMachineSizeTypes_Standard_D32s_v3
    Standard_D32s_v3
    VirtualMachineSizeTypes_Standard_D64s_v3
    Standard_D64s_v3
    VirtualMachineSizeTypes_Standard_D11_v2
    Standard_D11_v2
    VirtualMachineSizeTypes_Standard_D12_v2
    Standard_D12_v2
    VirtualMachineSizeTypes_Standard_D13_v2
    Standard_D13_v2
    VirtualMachineSizeTypes_Standard_D14_v2
    Standard_D14_v2
    VirtualMachineSizeTypes_Standard_D15_v2
    Standard_D15_v2
    VirtualMachineSizeTypes_Standard_DS1
    Standard_DS1
    VirtualMachineSizeTypes_Standard_DS2
    Standard_DS2
    VirtualMachineSizeTypes_Standard_DS3
    Standard_DS3
    VirtualMachineSizeTypes_Standard_DS4
    Standard_DS4
    VirtualMachineSizeTypes_Standard_DS11
    Standard_DS11
    VirtualMachineSizeTypes_Standard_DS12
    Standard_DS12
    VirtualMachineSizeTypes_Standard_DS13
    Standard_DS13
    VirtualMachineSizeTypes_Standard_DS14
    Standard_DS14
    VirtualMachineSizeTypes_Standard_DS1_v2
    Standard_DS1_v2
    VirtualMachineSizeTypes_Standard_DS2_v2
    Standard_DS2_v2
    VirtualMachineSizeTypes_Standard_DS3_v2
    Standard_DS3_v2
    VirtualMachineSizeTypes_Standard_DS4_v2
    Standard_DS4_v2
    VirtualMachineSizeTypes_Standard_DS5_v2
    Standard_DS5_v2
    VirtualMachineSizeTypes_Standard_DS11_v2
    Standard_DS11_v2
    VirtualMachineSizeTypes_Standard_DS12_v2
    Standard_DS12_v2
    VirtualMachineSizeTypes_Standard_DS13_v2
    Standard_DS13_v2
    VirtualMachineSizeTypes_Standard_DS14_v2
    Standard_DS14_v2
    VirtualMachineSizeTypes_Standard_DS15_v2
    Standard_DS15_v2
    VirtualMachineSizeTypes_Standard_DS13_4_v2
    Standard_DS13-4_v2
    VirtualMachineSizeTypes_Standard_DS13_2_v2
    Standard_DS13-2_v2
    VirtualMachineSizeTypes_Standard_DS14_8_v2
    Standard_DS14-8_v2
    VirtualMachineSizeTypes_Standard_DS14_4_v2
    Standard_DS14-4_v2
    VirtualMachineSizeTypes_Standard_E2_v3
    Standard_E2_v3
    VirtualMachineSizeTypes_Standard_E4_v3
    Standard_E4_v3
    VirtualMachineSizeTypes_Standard_E8_v3
    Standard_E8_v3
    VirtualMachineSizeTypes_Standard_E16_v3
    Standard_E16_v3
    VirtualMachineSizeTypes_Standard_E32_v3
    Standard_E32_v3
    VirtualMachineSizeTypes_Standard_E64_v3
    Standard_E64_v3
    VirtualMachineSizeTypes_Standard_E2s_v3
    Standard_E2s_v3
    VirtualMachineSizeTypes_Standard_E4s_v3
    Standard_E4s_v3
    VirtualMachineSizeTypes_Standard_E8s_v3
    Standard_E8s_v3
    VirtualMachineSizeTypes_Standard_E16s_v3
    Standard_E16s_v3
    VirtualMachineSizeTypes_Standard_E32s_v3
    Standard_E32s_v3
    VirtualMachineSizeTypes_Standard_E64s_v3
    Standard_E64s_v3
    VirtualMachineSizeTypes_Standard_E32_16_v3
    Standard_E32-16_v3
    VirtualMachineSizeTypes_Standard_E32_8s_v3
    Standard_E32-8s_v3
    VirtualMachineSizeTypes_Standard_E64_32s_v3
    Standard_E64-32s_v3
    VirtualMachineSizeTypes_Standard_E64_16s_v3
    Standard_E64-16s_v3
    VirtualMachineSizeTypes_Standard_F1
    Standard_F1
    VirtualMachineSizeTypes_Standard_F2
    Standard_F2
    VirtualMachineSizeTypes_Standard_F4
    Standard_F4
    VirtualMachineSizeTypes_Standard_F8
    Standard_F8
    VirtualMachineSizeTypes_Standard_F16
    Standard_F16
    VirtualMachineSizeTypes_Standard_F1s
    Standard_F1s
    VirtualMachineSizeTypes_Standard_F2s
    Standard_F2s
    VirtualMachineSizeTypes_Standard_F4s
    Standard_F4s
    VirtualMachineSizeTypes_Standard_F8s
    Standard_F8s
    VirtualMachineSizeTypes_Standard_F16s
    Standard_F16s
    VirtualMachineSizeTypes_Standard_F2s_v2
    Standard_F2s_v2
    VirtualMachineSizeTypes_Standard_F4s_v2
    Standard_F4s_v2
    VirtualMachineSizeTypes_Standard_F8s_v2
    Standard_F8s_v2
    VirtualMachineSizeTypes_Standard_F16s_v2
    Standard_F16s_v2
    VirtualMachineSizeTypes_Standard_F32s_v2
    Standard_F32s_v2
    VirtualMachineSizeTypes_Standard_F64s_v2
    Standard_F64s_v2
    VirtualMachineSizeTypes_Standard_F72s_v2
    Standard_F72s_v2
    VirtualMachineSizeTypes_Standard_G1
    Standard_G1
    VirtualMachineSizeTypes_Standard_G2
    Standard_G2
    VirtualMachineSizeTypes_Standard_G3
    Standard_G3
    VirtualMachineSizeTypes_Standard_G4
    Standard_G4
    VirtualMachineSizeTypes_Standard_G5
    Standard_G5
    VirtualMachineSizeTypes_Standard_GS1
    Standard_GS1
    VirtualMachineSizeTypes_Standard_GS2
    Standard_GS2
    VirtualMachineSizeTypes_Standard_GS3
    Standard_GS3
    VirtualMachineSizeTypes_Standard_GS4
    Standard_GS4
    VirtualMachineSizeTypes_Standard_GS5
    Standard_GS5
    VirtualMachineSizeTypes_Standard_GS4_8
    Standard_GS4-8
    VirtualMachineSizeTypes_Standard_GS4_4
    Standard_GS4-4
    VirtualMachineSizeTypes_Standard_GS5_16
    Standard_GS5-16
    VirtualMachineSizeTypes_Standard_GS5_8
    Standard_GS5-8
    VirtualMachineSizeTypes_Standard_H8
    Standard_H8
    VirtualMachineSizeTypes_Standard_H16
    Standard_H16
    VirtualMachineSizeTypes_Standard_H8m
    Standard_H8m
    VirtualMachineSizeTypes_Standard_H16m
    Standard_H16m
    VirtualMachineSizeTypes_Standard_H16r
    Standard_H16r
    VirtualMachineSizeTypes_Standard_H16mr
    Standard_H16mr
    VirtualMachineSizeTypes_Standard_L4s
    Standard_L4s
    VirtualMachineSizeTypes_Standard_L8s
    Standard_L8s
    VirtualMachineSizeTypes_Standard_L16s
    Standard_L16s
    VirtualMachineSizeTypes_Standard_L32s
    Standard_L32s
    VirtualMachineSizeTypes_Standard_M64s
    Standard_M64s
    VirtualMachineSizeTypes_Standard_M64ms
    Standard_M64ms
    VirtualMachineSizeTypes_Standard_M128s
    Standard_M128s
    VirtualMachineSizeTypes_Standard_M128ms
    Standard_M128ms
    VirtualMachineSizeTypes_Standard_M64_32ms
    Standard_M64-32ms
    VirtualMachineSizeTypes_Standard_M64_16ms
    Standard_M64-16ms
    VirtualMachineSizeTypes_Standard_M128_64ms
    Standard_M128-64ms
    VirtualMachineSizeTypes_Standard_M128_32ms
    Standard_M128-32ms
    VirtualMachineSizeTypes_Standard_NC6
    Standard_NC6
    VirtualMachineSizeTypes_Standard_NC12
    Standard_NC12
    VirtualMachineSizeTypes_Standard_NC24
    Standard_NC24
    VirtualMachineSizeTypes_Standard_NC24r
    Standard_NC24r
    VirtualMachineSizeTypes_Standard_NC6s_v2
    Standard_NC6s_v2
    VirtualMachineSizeTypes_Standard_NC12s_v2
    Standard_NC12s_v2
    VirtualMachineSizeTypes_Standard_NC24s_v2
    Standard_NC24s_v2
    VirtualMachineSizeTypes_Standard_NC24rs_v2
    Standard_NC24rs_v2
    VirtualMachineSizeTypes_Standard_NC6s_v3
    Standard_NC6s_v3
    VirtualMachineSizeTypes_Standard_NC12s_v3
    Standard_NC12s_v3
    VirtualMachineSizeTypes_Standard_NC24s_v3
    Standard_NC24s_v3
    VirtualMachineSizeTypes_Standard_NC24rs_v3
    Standard_NC24rs_v3
    VirtualMachineSizeTypes_Standard_ND6s
    Standard_ND6s
    VirtualMachineSizeTypes_Standard_ND12s
    Standard_ND12s
    VirtualMachineSizeTypes_Standard_ND24s
    Standard_ND24s
    VirtualMachineSizeTypes_Standard_ND24rs
    Standard_ND24rs
    VirtualMachineSizeTypes_Standard_NV6
    Standard_NV6
    VirtualMachineSizeTypes_Standard_NV12
    Standard_NV12
    VirtualMachineSizeTypes_Standard_NV24
    Standard_NV24
    Basic_A0
    Basic_A0
    Basic_A1
    Basic_A1
    Basic_A2
    Basic_A2
    Basic_A3
    Basic_A3
    Basic_A4
    Basic_A4
    Standard_A0
    Standard_A0
    Standard_A1
    Standard_A1
    Standard_A2
    Standard_A2
    Standard_A3
    Standard_A3
    Standard_A4
    Standard_A4
    Standard_A5
    Standard_A5
    Standard_A6
    Standard_A6
    Standard_A7
    Standard_A7
    Standard_A8
    Standard_A8
    Standard_A9
    Standard_A9
    Standard_A10
    Standard_A10
    Standard_A11
    Standard_A11
    Standard_A1_v2
    Standard_A1_v2
    Standard_A2_v2
    Standard_A2_v2
    Standard_A4_v2
    Standard_A4_v2
    Standard_A8_v2
    Standard_A8_v2
    Standard_A2m_v2
    Standard_A2m_v2
    Standard_A4m_v2
    Standard_A4m_v2
    Standard_A8m_v2
    Standard_A8m_v2
    Standard_B1s
    Standard_B1s
    Standard_B1ms
    Standard_B1ms
    Standard_B2s
    Standard_B2s
    Standard_B2ms
    Standard_B2ms
    Standard_B4ms
    Standard_B4ms
    Standard_B8ms
    Standard_B8ms
    Standard_D1
    Standard_D1
    Standard_D2
    Standard_D2
    Standard_D3
    Standard_D3
    Standard_D4
    Standard_D4
    Standard_D11
    Standard_D11
    Standard_D12
    Standard_D12
    Standard_D13
    Standard_D13
    Standard_D14
    Standard_D14
    Standard_D1_v2
    Standard_D1_v2
    Standard_D2_v2
    Standard_D2_v2
    Standard_D3_v2
    Standard_D3_v2
    Standard_D4_v2
    Standard_D4_v2
    Standard_D5_v2
    Standard_D5_v2
    Standard_D2_v3
    Standard_D2_v3
    Standard_D4_v3
    Standard_D4_v3
    Standard_D8_v3
    Standard_D8_v3
    Standard_D16_v3
    Standard_D16_v3
    Standard_D32_v3
    Standard_D32_v3
    Standard_D64_v3
    Standard_D64_v3
    Standard_D2s_v3
    Standard_D2s_v3
    Standard_D4s_v3
    Standard_D4s_v3
    Standard_D8s_v3
    Standard_D8s_v3
    Standard_D16s_v3
    Standard_D16s_v3
    Standard_D32s_v3
    Standard_D32s_v3
    Standard_D64s_v3
    Standard_D64s_v3
    Standard_D11_v2
    Standard_D11_v2
    Standard_D12_v2
    Standard_D12_v2
    Standard_D13_v2
    Standard_D13_v2
    Standard_D14_v2
    Standard_D14_v2
    Standard_D15_v2
    Standard_D15_v2
    Standard_DS1
    Standard_DS1
    Standard_DS2
    Standard_DS2
    Standard_DS3
    Standard_DS3
    Standard_DS4
    Standard_DS4
    Standard_DS11
    Standard_DS11
    Standard_DS12
    Standard_DS12
    Standard_DS13
    Standard_DS13
    Standard_DS14
    Standard_DS14
    Standard_DS1_v2
    Standard_DS1_v2
    Standard_DS2_v2
    Standard_DS2_v2
    Standard_DS3_v2
    Standard_DS3_v2
    Standard_DS4_v2
    Standard_DS4_v2
    Standard_DS5_v2
    Standard_DS5_v2
    Standard_DS11_v2
    Standard_DS11_v2
    Standard_DS12_v2
    Standard_DS12_v2
    Standard_DS13_v2
    Standard_DS13_v2
    Standard_DS14_v2
    Standard_DS14_v2
    Standard_DS15_v2
    Standard_DS15_v2
    Standard_DS134_v2
    Standard_DS13-4_v2
    Standard_DS132_v2
    Standard_DS13-2_v2
    Standard_DS148_v2
    Standard_DS14-8_v2
    Standard_DS144_v2
    Standard_DS14-4_v2
    Standard_E2_v3
    Standard_E2_v3
    Standard_E4_v3
    Standard_E4_v3
    Standard_E8_v3
    Standard_E8_v3
    Standard_E16_v3
    Standard_E16_v3
    Standard_E32_v3
    Standard_E32_v3
    Standard_E64_v3
    Standard_E64_v3
    Standard_E2s_v3
    Standard_E2s_v3
    Standard_E4s_v3
    Standard_E4s_v3
    Standard_E8s_v3
    Standard_E8s_v3
    Standard_E16s_v3
    Standard_E16s_v3
    Standard_E32s_v3
    Standard_E32s_v3
    Standard_E64s_v3
    Standard_E64s_v3
    Standard_E3216_v3
    Standard_E32-16_v3
    Standard_E328s_v3
    Standard_E32-8s_v3
    Standard_E6432s_v3
    Standard_E64-32s_v3
    Standard_E6416s_v3
    Standard_E64-16s_v3
    Standard_F1
    Standard_F1
    Standard_F2
    Standard_F2
    Standard_F4
    Standard_F4
    Standard_F8
    Standard_F8
    Standard_F16
    Standard_F16
    Standard_F1s
    Standard_F1s
    Standard_F2s
    Standard_F2s
    Standard_F4s
    Standard_F4s
    Standard_F8s
    Standard_F8s
    Standard_F16s
    Standard_F16s
    Standard_F2s_v2
    Standard_F2s_v2
    Standard_F4s_v2
    Standard_F4s_v2
    Standard_F8s_v2
    Standard_F8s_v2
    Standard_F16s_v2
    Standard_F16s_v2
    Standard_F32s_v2
    Standard_F32s_v2
    Standard_F64s_v2
    Standard_F64s_v2
    Standard_F72s_v2
    Standard_F72s_v2
    Standard_G1
    Standard_G1
    Standard_G2
    Standard_G2
    Standard_G3
    Standard_G3
    Standard_G4
    Standard_G4
    Standard_G5
    Standard_G5
    Standard_GS1
    Standard_GS1
    Standard_GS2
    Standard_GS2
    Standard_GS3
    Standard_GS3
    Standard_GS4
    Standard_GS4
    Standard_GS5
    Standard_GS5
    Standard_GS48
    Standard_GS4-8
    Standard_GS44
    Standard_GS4-4
    Standard_GS516
    Standard_GS5-16
    Standard_GS58
    Standard_GS5-8
    Standard_H8
    Standard_H8
    Standard_H16
    Standard_H16
    Standard_H8m
    Standard_H8m
    Standard_H16m
    Standard_H16m
    Standard_H16r
    Standard_H16r
    Standard_H16mr
    Standard_H16mr
    Standard_L4s
    Standard_L4s
    Standard_L8s
    Standard_L8s
    Standard_L16s
    Standard_L16s
    Standard_L32s
    Standard_L32s
    Standard_M64s
    Standard_M64s
    Standard_M64ms
    Standard_M64ms
    Standard_M128s
    Standard_M128s
    Standard_M128ms
    Standard_M128ms
    Standard_M6432ms
    Standard_M64-32ms
    Standard_M6416ms
    Standard_M64-16ms
    Standard_M12864ms
    Standard_M128-64ms
    Standard_M12832ms
    Standard_M128-32ms
    Standard_NC6
    Standard_NC6
    Standard_NC12
    Standard_NC12
    Standard_NC24
    Standard_NC24
    Standard_NC24r
    Standard_NC24r
    Standard_NC6s_v2
    Standard_NC6s_v2
    Standard_NC12s_v2
    Standard_NC12s_v2
    Standard_NC24s_v2
    Standard_NC24s_v2
    Standard_NC24rs_v2
    Standard_NC24rs_v2
    Standard_NC6s_v3
    Standard_NC6s_v3
    Standard_NC12s_v3
    Standard_NC12s_v3
    Standard_NC24s_v3
    Standard_NC24s_v3
    Standard_NC24rs_v3
    Standard_NC24rs_v3
    Standard_ND6s
    Standard_ND6s
    Standard_ND12s
    Standard_ND12s
    Standard_ND24s
    Standard_ND24s
    Standard_ND24rs
    Standard_ND24rs
    Standard_NV6
    Standard_NV6
    Standard_NV12
    Standard_NV12
    Standard_NV24
    Standard_NV24
    Basic_A0
    Basic_A0
    Basic_A1
    Basic_A1
    Basic_A2
    Basic_A2
    Basic_A3
    Basic_A3
    Basic_A4
    Basic_A4
    Standard_A0
    Standard_A0
    Standard_A1
    Standard_A1
    Standard_A2
    Standard_A2
    Standard_A3
    Standard_A3
    Standard_A4
    Standard_A4
    Standard_A5
    Standard_A5
    Standard_A6
    Standard_A6
    Standard_A7
    Standard_A7
    Standard_A8
    Standard_A8
    Standard_A9
    Standard_A9
    Standard_A10
    Standard_A10
    Standard_A11
    Standard_A11
    Standard_A1_v2
    Standard_A1_v2
    Standard_A2_v2
    Standard_A2_v2
    Standard_A4_v2
    Standard_A4_v2
    Standard_A8_v2
    Standard_A8_v2
    Standard_A2m_v2
    Standard_A2m_v2
    Standard_A4m_v2
    Standard_A4m_v2
    Standard_A8m_v2
    Standard_A8m_v2
    Standard_B1s
    Standard_B1s
    Standard_B1ms
    Standard_B1ms
    Standard_B2s
    Standard_B2s
    Standard_B2ms
    Standard_B2ms
    Standard_B4ms
    Standard_B4ms
    Standard_B8ms
    Standard_B8ms
    Standard_D1
    Standard_D1
    Standard_D2
    Standard_D2
    Standard_D3
    Standard_D3
    Standard_D4
    Standard_D4
    Standard_D11
    Standard_D11
    Standard_D12
    Standard_D12
    Standard_D13
    Standard_D13
    Standard_D14
    Standard_D14
    Standard_D1_v2
    Standard_D1_v2
    Standard_D2_v2
    Standard_D2_v2
    Standard_D3_v2
    Standard_D3_v2
    Standard_D4_v2
    Standard_D4_v2
    Standard_D5_v2
    Standard_D5_v2
    Standard_D2_v3
    Standard_D2_v3
    Standard_D4_v3
    Standard_D4_v3
    Standard_D8_v3
    Standard_D8_v3
    Standard_D16_v3
    Standard_D16_v3
    Standard_D32_v3
    Standard_D32_v3
    Standard_D64_v3
    Standard_D64_v3
    Standard_D2s_v3
    Standard_D2s_v3
    Standard_D4s_v3
    Standard_D4s_v3
    Standard_D8s_v3
    Standard_D8s_v3
    Standard_D16s_v3
    Standard_D16s_v3
    Standard_D32s_v3
    Standard_D32s_v3
    Standard_D64s_v3
    Standard_D64s_v3
    Standard_D11_v2
    Standard_D11_v2
    Standard_D12_v2
    Standard_D12_v2
    Standard_D13_v2
    Standard_D13_v2
    Standard_D14_v2
    Standard_D14_v2
    Standard_D15_v2
    Standard_D15_v2
    Standard_DS1
    Standard_DS1
    Standard_DS2
    Standard_DS2
    Standard_DS3
    Standard_DS3
    Standard_DS4
    Standard_DS4
    Standard_DS11
    Standard_DS11
    Standard_DS12
    Standard_DS12
    Standard_DS13
    Standard_DS13
    Standard_DS14
    Standard_DS14
    Standard_DS1_v2
    Standard_DS1_v2
    Standard_DS2_v2
    Standard_DS2_v2
    Standard_DS3_v2
    Standard_DS3_v2
    Standard_DS4_v2
    Standard_DS4_v2
    Standard_DS5_v2
    Standard_DS5_v2
    Standard_DS11_v2
    Standard_DS11_v2
    Standard_DS12_v2
    Standard_DS12_v2
    Standard_DS13_v2
    Standard_DS13_v2
    Standard_DS14_v2
    Standard_DS14_v2
    Standard_DS15_v2
    Standard_DS15_v2
    Standard_DS13_4_v2
    Standard_DS13-4_v2
    Standard_DS13_2_v2
    Standard_DS13-2_v2
    Standard_DS14_8_v2
    Standard_DS14-8_v2
    Standard_DS14_4_v2
    Standard_DS14-4_v2
    Standard_E2_v3
    Standard_E2_v3
    Standard_E4_v3
    Standard_E4_v3
    Standard_E8_v3
    Standard_E8_v3
    Standard_E16_v3
    Standard_E16_v3
    Standard_E32_v3
    Standard_E32_v3
    Standard_E64_v3
    Standard_E64_v3
    Standard_E2s_v3
    Standard_E2s_v3
    Standard_E4s_v3
    Standard_E4s_v3
    Standard_E8s_v3
    Standard_E8s_v3
    Standard_E16s_v3
    Standard_E16s_v3
    Standard_E32s_v3
    Standard_E32s_v3
    Standard_E64s_v3
    Standard_E64s_v3
    Standard_E32_16_v3
    Standard_E32-16_v3
    Standard_E32_8s_v3
    Standard_E32-8s_v3
    Standard_E64_32s_v3
    Standard_E64-32s_v3
    Standard_E64_16s_v3
    Standard_E64-16s_v3
    Standard_F1
    Standard_F1
    Standard_F2
    Standard_F2
    Standard_F4
    Standard_F4
    Standard_F8
    Standard_F8
    Standard_F16
    Standard_F16
    Standard_F1s
    Standard_F1s
    Standard_F2s
    Standard_F2s
    Standard_F4s
    Standard_F4s
    Standard_F8s
    Standard_F8s
    Standard_F16s
    Standard_F16s
    Standard_F2s_v2
    Standard_F2s_v2
    Standard_F4s_v2
    Standard_F4s_v2
    Standard_F8s_v2
    Standard_F8s_v2
    Standard_F16s_v2
    Standard_F16s_v2
    Standard_F32s_v2
    Standard_F32s_v2
    Standard_F64s_v2
    Standard_F64s_v2
    Standard_F72s_v2
    Standard_F72s_v2
    Standard_G1
    Standard_G1
    Standard_G2
    Standard_G2
    Standard_G3
    Standard_G3
    Standard_G4
    Standard_G4
    Standard_G5
    Standard_G5
    Standard_GS1
    Standard_GS1
    Standard_GS2
    Standard_GS2
    Standard_GS3
    Standard_GS3
    Standard_GS4
    Standard_GS4
    Standard_GS5
    Standard_GS5
    Standard_GS4_8
    Standard_GS4-8
    Standard_GS4_4
    Standard_GS4-4
    Standard_GS5_16
    Standard_GS5-16
    Standard_GS5_8
    Standard_GS5-8
    Standard_H8
    Standard_H8
    Standard_H16
    Standard_H16
    Standard_H8m
    Standard_H8m
    Standard_H16m
    Standard_H16m
    Standard_H16r
    Standard_H16r
    Standard_H16mr
    Standard_H16mr
    Standard_L4s
    Standard_L4s
    Standard_L8s
    Standard_L8s
    Standard_L16s
    Standard_L16s
    Standard_L32s
    Standard_L32s
    Standard_M64s
    Standard_M64s
    Standard_M64ms
    Standard_M64ms
    Standard_M128s
    Standard_M128s
    Standard_M128ms
    Standard_M128ms
    Standard_M64_32ms
    Standard_M64-32ms
    Standard_M64_16ms
    Standard_M64-16ms
    Standard_M128_64ms
    Standard_M128-64ms
    Standard_M128_32ms
    Standard_M128-32ms
    Standard_NC6
    Standard_NC6
    Standard_NC12
    Standard_NC12
    Standard_NC24
    Standard_NC24
    Standard_NC24r
    Standard_NC24r
    Standard_NC6s_v2
    Standard_NC6s_v2
    Standard_NC12s_v2
    Standard_NC12s_v2
    Standard_NC24s_v2
    Standard_NC24s_v2
    Standard_NC24rs_v2
    Standard_NC24rs_v2
    Standard_NC6s_v3
    Standard_NC6s_v3
    Standard_NC12s_v3
    Standard_NC12s_v3
    Standard_NC24s_v3
    Standard_NC24s_v3
    Standard_NC24rs_v3
    Standard_NC24rs_v3
    Standard_ND6s
    Standard_ND6s
    Standard_ND12s
    Standard_ND12s
    Standard_ND24s
    Standard_ND24s
    Standard_ND24rs
    Standard_ND24rs
    Standard_NV6
    Standard_NV6
    Standard_NV12
    Standard_NV12
    Standard_NV24
    Standard_NV24
    BASIC_A0
    Basic_A0
    BASIC_A1
    Basic_A1
    BASIC_A2
    Basic_A2
    BASIC_A3
    Basic_A3
    BASIC_A4
    Basic_A4
    STANDARD_A0
    Standard_A0
    STANDARD_A1
    Standard_A1
    STANDARD_A2
    Standard_A2
    STANDARD_A3
    Standard_A3
    STANDARD_A4
    Standard_A4
    STANDARD_A5
    Standard_A5
    STANDARD_A6
    Standard_A6
    STANDARD_A7
    Standard_A7
    STANDARD_A8
    Standard_A8
    STANDARD_A9
    Standard_A9
    STANDARD_A10
    Standard_A10
    STANDARD_A11
    Standard_A11
    STANDARD_A1_V2
    Standard_A1_v2
    STANDARD_A2_V2
    Standard_A2_v2
    STANDARD_A4_V2
    Standard_A4_v2
    STANDARD_A8_V2
    Standard_A8_v2
    STANDARD_A2M_V2
    Standard_A2m_v2
    STANDARD_A4M_V2
    Standard_A4m_v2
    STANDARD_A8M_V2
    Standard_A8m_v2
    STANDARD_B1S
    Standard_B1s
    STANDARD_B1MS
    Standard_B1ms
    STANDARD_B2S
    Standard_B2s
    STANDARD_B2MS
    Standard_B2ms
    STANDARD_B4MS
    Standard_B4ms
    STANDARD_B8MS
    Standard_B8ms
    STANDARD_D1
    Standard_D1
    STANDARD_D2
    Standard_D2
    STANDARD_D3
    Standard_D3
    STANDARD_D4
    Standard_D4
    STANDARD_D11
    Standard_D11
    STANDARD_D12
    Standard_D12
    STANDARD_D13
    Standard_D13
    STANDARD_D14
    Standard_D14
    STANDARD_D1_V2
    Standard_D1_v2
    STANDARD_D2_V2
    Standard_D2_v2
    STANDARD_D3_V2
    Standard_D3_v2
    STANDARD_D4_V2
    Standard_D4_v2
    STANDARD_D5_V2
    Standard_D5_v2
    STANDARD_D2_V3
    Standard_D2_v3
    STANDARD_D4_V3
    Standard_D4_v3
    STANDARD_D8_V3
    Standard_D8_v3
    STANDARD_D16_V3
    Standard_D16_v3
    STANDARD_D32_V3
    Standard_D32_v3
    STANDARD_D64_V3
    Standard_D64_v3
    STANDARD_D2S_V3
    Standard_D2s_v3
    STANDARD_D4S_V3
    Standard_D4s_v3
    STANDARD_D8S_V3
    Standard_D8s_v3
    STANDARD_D16S_V3
    Standard_D16s_v3
    STANDARD_D32S_V3
    Standard_D32s_v3
    STANDARD_D64S_V3
    Standard_D64s_v3
    STANDARD_D11_V2
    Standard_D11_v2
    STANDARD_D12_V2
    Standard_D12_v2
    STANDARD_D13_V2
    Standard_D13_v2
    STANDARD_D14_V2
    Standard_D14_v2
    STANDARD_D15_V2
    Standard_D15_v2
    STANDARD_DS1
    Standard_DS1
    STANDARD_DS2
    Standard_DS2
    STANDARD_DS3
    Standard_DS3
    STANDARD_DS4
    Standard_DS4
    STANDARD_DS11
    Standard_DS11
    STANDARD_DS12
    Standard_DS12
    STANDARD_DS13
    Standard_DS13
    STANDARD_DS14
    Standard_DS14
    STANDARD_DS1_V2
    Standard_DS1_v2
    STANDARD_DS2_V2
    Standard_DS2_v2
    STANDARD_DS3_V2
    Standard_DS3_v2
    STANDARD_DS4_V2
    Standard_DS4_v2
    STANDARD_DS5_V2
    Standard_DS5_v2
    STANDARD_DS11_V2
    Standard_DS11_v2
    STANDARD_DS12_V2
    Standard_DS12_v2
    STANDARD_DS13_V2
    Standard_DS13_v2
    STANDARD_DS14_V2
    Standard_DS14_v2
    STANDARD_DS15_V2
    Standard_DS15_v2
    STANDARD_DS13_4_V2
    Standard_DS13-4_v2
    STANDARD_DS13_2_V2
    Standard_DS13-2_v2
    STANDARD_DS14_8_V2
    Standard_DS14-8_v2
    STANDARD_DS14_4_V2
    Standard_DS14-4_v2
    STANDARD_E2_V3
    Standard_E2_v3
    STANDARD_E4_V3
    Standard_E4_v3
    STANDARD_E8_V3
    Standard_E8_v3
    STANDARD_E16_V3
    Standard_E16_v3
    STANDARD_E32_V3
    Standard_E32_v3
    STANDARD_E64_V3
    Standard_E64_v3
    STANDARD_E2S_V3
    Standard_E2s_v3
    STANDARD_E4S_V3
    Standard_E4s_v3
    STANDARD_E8S_V3
    Standard_E8s_v3
    STANDARD_E16S_V3
    Standard_E16s_v3
    STANDARD_E32S_V3
    Standard_E32s_v3
    STANDARD_E64S_V3
    Standard_E64s_v3
    STANDARD_E32_16_V3
    Standard_E32-16_v3
    STANDARD_E32_8S_V3
    Standard_E32-8s_v3
    STANDARD_E64_32S_V3
    Standard_E64-32s_v3
    STANDARD_E64_16S_V3
    Standard_E64-16s_v3
    STANDARD_F1
    Standard_F1
    STANDARD_F2
    Standard_F2
    STANDARD_F4
    Standard_F4
    STANDARD_F8
    Standard_F8
    STANDARD_F16
    Standard_F16
    STANDARD_F1S
    Standard_F1s
    STANDARD_F2S
    Standard_F2s
    STANDARD_F4S
    Standard_F4s
    STANDARD_F8S
    Standard_F8s
    STANDARD_F16S
    Standard_F16s
    STANDARD_F2S_V2
    Standard_F2s_v2
    STANDARD_F4S_V2
    Standard_F4s_v2
    STANDARD_F8S_V2
    Standard_F8s_v2
    STANDARD_F16S_V2
    Standard_F16s_v2
    STANDARD_F32S_V2
    Standard_F32s_v2
    STANDARD_F64S_V2
    Standard_F64s_v2
    STANDARD_F72S_V2
    Standard_F72s_v2
    STANDARD_G1
    Standard_G1
    STANDARD_G2
    Standard_G2
    STANDARD_G3
    Standard_G3
    STANDARD_G4
    Standard_G4
    STANDARD_G5
    Standard_G5
    STANDARD_GS1
    Standard_GS1
    STANDARD_GS2
    Standard_GS2
    STANDARD_GS3
    Standard_GS3
    STANDARD_GS4
    Standard_GS4
    STANDARD_GS5
    Standard_GS5
    STANDARD_GS4_8
    Standard_GS4-8
    STANDARD_GS4_4
    Standard_GS4-4
    STANDARD_GS5_16
    Standard_GS5-16
    STANDARD_GS5_8
    Standard_GS5-8
    STANDARD_H8
    Standard_H8
    STANDARD_H16
    Standard_H16
    STANDARD_H8M
    Standard_H8m
    STANDARD_H16M
    Standard_H16m
    STANDARD_H16R
    Standard_H16r
    STANDARD_H16MR
    Standard_H16mr
    STANDARD_L4S
    Standard_L4s
    STANDARD_L8S
    Standard_L8s
    STANDARD_L16S
    Standard_L16s
    STANDARD_L32S
    Standard_L32s
    STANDARD_M64S
    Standard_M64s
    STANDARD_M64MS
    Standard_M64ms
    STANDARD_M128S
    Standard_M128s
    STANDARD_M128MS
    Standard_M128ms
    STANDARD_M64_32MS
    Standard_M64-32ms
    STANDARD_M64_16MS
    Standard_M64-16ms
    STANDARD_M128_64MS
    Standard_M128-64ms
    STANDARD_M128_32MS
    Standard_M128-32ms
    STANDARD_NC6
    Standard_NC6
    STANDARD_NC12
    Standard_NC12
    STANDARD_NC24
    Standard_NC24
    STANDARD_NC24R
    Standard_NC24r
    STANDARD_NC6S_V2
    Standard_NC6s_v2
    STANDARD_NC12S_V2
    Standard_NC12s_v2
    STANDARD_NC24S_V2
    Standard_NC24s_v2
    STANDARD_NC24RS_V2
    Standard_NC24rs_v2
    STANDARD_NC6S_V3
    Standard_NC6s_v3
    STANDARD_NC12S_V3
    Standard_NC12s_v3
    STANDARD_NC24S_V3
    Standard_NC24s_v3
    STANDARD_NC24RS_V3
    Standard_NC24rs_v3
    STANDARD_ND6S
    Standard_ND6s
    STANDARD_ND12S
    Standard_ND12s
    STANDARD_ND24S
    Standard_ND24s
    STANDARD_ND24RS
    Standard_ND24rs
    STANDARD_NV6
    Standard_NV6
    STANDARD_NV12
    Standard_NV12
    STANDARD_NV24
    Standard_NV24
    "Basic_A0"
    Basic_A0
    "Basic_A1"
    Basic_A1
    "Basic_A2"
    Basic_A2
    "Basic_A3"
    Basic_A3
    "Basic_A4"
    Basic_A4
    "Standard_A0"
    Standard_A0
    "Standard_A1"
    Standard_A1
    "Standard_A2"
    Standard_A2
    "Standard_A3"
    Standard_A3
    "Standard_A4"
    Standard_A4
    "Standard_A5"
    Standard_A5
    "Standard_A6"
    Standard_A6
    "Standard_A7"
    Standard_A7
    "Standard_A8"
    Standard_A8
    "Standard_A9"
    Standard_A9
    "Standard_A10"
    Standard_A10
    "Standard_A11"
    Standard_A11
    "Standard_A1_v2"
    Standard_A1_v2
    "Standard_A2_v2"
    Standard_A2_v2
    "Standard_A4_v2"
    Standard_A4_v2
    "Standard_A8_v2"
    Standard_A8_v2
    "Standard_A2m_v2"
    Standard_A2m_v2
    "Standard_A4m_v2"
    Standard_A4m_v2
    "Standard_A8m_v2"
    Standard_A8m_v2
    "Standard_B1s"
    Standard_B1s
    "Standard_B1ms"
    Standard_B1ms
    "Standard_B2s"
    Standard_B2s
    "Standard_B2ms"
    Standard_B2ms
    "Standard_B4ms"
    Standard_B4ms
    "Standard_B8ms"
    Standard_B8ms
    "Standard_D1"
    Standard_D1
    "Standard_D2"
    Standard_D2
    "Standard_D3"
    Standard_D3
    "Standard_D4"
    Standard_D4
    "Standard_D11"
    Standard_D11
    "Standard_D12"
    Standard_D12
    "Standard_D13"
    Standard_D13
    "Standard_D14"
    Standard_D14
    "Standard_D1_v2"
    Standard_D1_v2
    "Standard_D2_v2"
    Standard_D2_v2
    "Standard_D3_v2"
    Standard_D3_v2
    "Standard_D4_v2"
    Standard_D4_v2
    "Standard_D5_v2"
    Standard_D5_v2
    "Standard_D2_v3"
    Standard_D2_v3
    "Standard_D4_v3"
    Standard_D4_v3
    "Standard_D8_v3"
    Standard_D8_v3
    "Standard_D16_v3"
    Standard_D16_v3
    "Standard_D32_v3"
    Standard_D32_v3
    "Standard_D64_v3"
    Standard_D64_v3
    "Standard_D2s_v3"
    Standard_D2s_v3
    "Standard_D4s_v3"
    Standard_D4s_v3
    "Standard_D8s_v3"
    Standard_D8s_v3
    "Standard_D16s_v3"
    Standard_D16s_v3
    "Standard_D32s_v3"
    Standard_D32s_v3
    "Standard_D64s_v3"
    Standard_D64s_v3
    "Standard_D11_v2"
    Standard_D11_v2
    "Standard_D12_v2"
    Standard_D12_v2
    "Standard_D13_v2"
    Standard_D13_v2
    "Standard_D14_v2"
    Standard_D14_v2
    "Standard_D15_v2"
    Standard_D15_v2
    "Standard_DS1"
    Standard_DS1
    "Standard_DS2"
    Standard_DS2
    "Standard_DS3"
    Standard_DS3
    "Standard_DS4"
    Standard_DS4
    "Standard_DS11"
    Standard_DS11
    "Standard_DS12"
    Standard_DS12
    "Standard_DS13"
    Standard_DS13
    "Standard_DS14"
    Standard_DS14
    "Standard_DS1_v2"
    Standard_DS1_v2
    "Standard_DS2_v2"
    Standard_DS2_v2
    "Standard_DS3_v2"
    Standard_DS3_v2
    "Standard_DS4_v2"
    Standard_DS4_v2
    "Standard_DS5_v2"
    Standard_DS5_v2
    "Standard_DS11_v2"
    Standard_DS11_v2
    "Standard_DS12_v2"
    Standard_DS12_v2
    "Standard_DS13_v2"
    Standard_DS13_v2
    "Standard_DS14_v2"
    Standard_DS14_v2
    "Standard_DS15_v2"
    Standard_DS15_v2
    "Standard_DS13-4_v2"
    Standard_DS13-4_v2
    "Standard_DS13-2_v2"
    Standard_DS13-2_v2
    "Standard_DS14-8_v2"
    Standard_DS14-8_v2
    "Standard_DS14-4_v2"
    Standard_DS14-4_v2
    "Standard_E2_v3"
    Standard_E2_v3
    "Standard_E4_v3"
    Standard_E4_v3
    "Standard_E8_v3"
    Standard_E8_v3
    "Standard_E16_v3"
    Standard_E16_v3
    "Standard_E32_v3"
    Standard_E32_v3
    "Standard_E64_v3"
    Standard_E64_v3
    "Standard_E2s_v3"
    Standard_E2s_v3
    "Standard_E4s_v3"
    Standard_E4s_v3
    "Standard_E8s_v3"
    Standard_E8s_v3
    "Standard_E16s_v3"
    Standard_E16s_v3
    "Standard_E32s_v3"
    Standard_E32s_v3
    "Standard_E64s_v3"
    Standard_E64s_v3
    "Standard_E32-16_v3"
    Standard_E32-16_v3
    "Standard_E32-8s_v3"
    Standard_E32-8s_v3
    "Standard_E64-32s_v3"
    Standard_E64-32s_v3
    "Standard_E64-16s_v3"
    Standard_E64-16s_v3
    "Standard_F1"
    Standard_F1
    "Standard_F2"
    Standard_F2
    "Standard_F4"
    Standard_F4
    "Standard_F8"
    Standard_F8
    "Standard_F16"
    Standard_F16
    "Standard_F1s"
    Standard_F1s
    "Standard_F2s"
    Standard_F2s
    "Standard_F4s"
    Standard_F4s
    "Standard_F8s"
    Standard_F8s
    "Standard_F16s"
    Standard_F16s
    "Standard_F2s_v2"
    Standard_F2s_v2
    "Standard_F4s_v2"
    Standard_F4s_v2
    "Standard_F8s_v2"
    Standard_F8s_v2
    "Standard_F16s_v2"
    Standard_F16s_v2
    "Standard_F32s_v2"
    Standard_F32s_v2
    "Standard_F64s_v2"
    Standard_F64s_v2
    "Standard_F72s_v2"
    Standard_F72s_v2
    "Standard_G1"
    Standard_G1
    "Standard_G2"
    Standard_G2
    "Standard_G3"
    Standard_G3
    "Standard_G4"
    Standard_G4
    "Standard_G5"
    Standard_G5
    "Standard_GS1"
    Standard_GS1
    "Standard_GS2"
    Standard_GS2
    "Standard_GS3"
    Standard_GS3
    "Standard_GS4"
    Standard_GS4
    "Standard_GS5"
    Standard_GS5
    "Standard_GS4-8"
    Standard_GS4-8
    "Standard_GS4-4"
    Standard_GS4-4
    "Standard_GS5-16"
    Standard_GS5-16
    "Standard_GS5-8"
    Standard_GS5-8
    "Standard_H8"
    Standard_H8
    "Standard_H16"
    Standard_H16
    "Standard_H8m"
    Standard_H8m
    "Standard_H16m"
    Standard_H16m
    "Standard_H16r"
    Standard_H16r
    "Standard_H16mr"
    Standard_H16mr
    "Standard_L4s"
    Standard_L4s
    "Standard_L8s"
    Standard_L8s
    "Standard_L16s"
    Standard_L16s
    "Standard_L32s"
    Standard_L32s
    "Standard_M64s"
    Standard_M64s
    "Standard_M64ms"
    Standard_M64ms
    "Standard_M128s"
    Standard_M128s
    "Standard_M128ms"
    Standard_M128ms
    "Standard_M64-32ms"
    Standard_M64-32ms
    "Standard_M64-16ms"
    Standard_M64-16ms
    "Standard_M128-64ms"
    Standard_M128-64ms
    "Standard_M128-32ms"
    Standard_M128-32ms
    "Standard_NC6"
    Standard_NC6
    "Standard_NC12"
    Standard_NC12
    "Standard_NC24"
    Standard_NC24
    "Standard_NC24r"
    Standard_NC24r
    "Standard_NC6s_v2"
    Standard_NC6s_v2
    "Standard_NC12s_v2"
    Standard_NC12s_v2
    "Standard_NC24s_v2"
    Standard_NC24s_v2
    "Standard_NC24rs_v2"
    Standard_NC24rs_v2
    "Standard_NC6s_v3"
    Standard_NC6s_v3
    "Standard_NC12s_v3"
    Standard_NC12s_v3
    "Standard_NC24s_v3"
    Standard_NC24s_v3
    "Standard_NC24rs_v3"
    Standard_NC24rs_v3
    "Standard_ND6s"
    Standard_ND6s
    "Standard_ND12s"
    Standard_ND12s
    "Standard_ND24s"
    Standard_ND24s
    "Standard_ND24rs"
    Standard_ND24rs
    "Standard_NV6"
    Standard_NV6
    "Standard_NV12"
    Standard_NV12
    "Standard_NV24"
    Standard_NV24

    WinRMConfiguration, WinRMConfigurationArgs

    Listeners List<Pulumi.AzureNative.Compute.Inputs.WinRMListener>
    The list of Windows Remote Management listeners
    Listeners []WinRMListener
    The list of Windows Remote Management listeners
    listeners List<WinRMListener>
    The list of Windows Remote Management listeners
    listeners WinRMListener[]
    The list of Windows Remote Management listeners
    listeners Sequence[WinRMListener]
    The list of Windows Remote Management listeners
    listeners List<Property Map>
    The list of Windows Remote Management listeners

    WinRMConfigurationResponse, WinRMConfigurationResponseArgs

    Listeners List<Pulumi.AzureNative.Compute.Inputs.WinRMListenerResponse>
    The list of Windows Remote Management listeners
    Listeners []WinRMListenerResponse
    The list of Windows Remote Management listeners
    listeners List<WinRMListenerResponse>
    The list of Windows Remote Management listeners
    listeners WinRMListenerResponse[]
    The list of Windows Remote Management listeners
    listeners Sequence[WinRMListenerResponse]
    The list of Windows Remote Management listeners
    listeners List<Property Map>
    The list of Windows Remote Management listeners

    WinRMListener, WinRMListenerArgs

    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol Pulumi.AzureNative.Compute.ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol "Http" | "Https"
    Specifies the protocol of WinRM listener. Possible values are: http, https.

    WinRMListenerResponse, WinRMListenerResponseArgs

    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol String
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol str
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol String
    Specifies the protocol of WinRM listener. Possible values are: http, https.

    WindowsConfiguration, WindowsConfigurationArgs

    AdditionalUnattendContent List<Pulumi.AzureNative.Compute.Inputs.AdditionalUnattendContent>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM Pulumi.AzureNative.Compute.Inputs.WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    AdditionalUnattendContent []AdditionalUnattendContent
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<AdditionalUnattendContent>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent AdditionalUnattendContent[]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additional_unattend_content Sequence[AdditionalUnattendContent]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enable_automatic_updates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patch_settings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    time_zone str
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    win_rm WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<Property Map>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM Property Map
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.

    WindowsConfigurationResponse, WindowsConfigurationResponseArgs

    AdditionalUnattendContent List<Pulumi.AzureNative.Compute.Inputs.AdditionalUnattendContentResponse>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM Pulumi.AzureNative.Compute.Inputs.WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    AdditionalUnattendContent []AdditionalUnattendContentResponse
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<AdditionalUnattendContentResponse>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent AdditionalUnattendContentResponse[]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additional_unattend_content Sequence[AdditionalUnattendContentResponse]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enable_automatic_updates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patch_settings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    time_zone str
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    win_rm WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<Property Map>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM Property Map
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.

    WindowsPatchAssessmentMode, WindowsPatchAssessmentModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    WindowsPatchAssessmentModeImageDefault
    ImageDefault
    WindowsPatchAssessmentModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    WindowsVMGuestPatchAutomaticByPlatformRebootSetting, WindowsVMGuestPatchAutomaticByPlatformRebootSettingArgs

    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingUnknown
    Unknown
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingIfRequired
    IfRequired
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingNever
    Never
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingAlways
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    UNKNOWN
    Unknown
    IF_REQUIRED
    IfRequired
    NEVER
    Never
    ALWAYS
    Always
    "Unknown"
    Unknown
    "IfRequired"
    IfRequired
    "Never"
    Never
    "Always"
    Always

    WindowsVMGuestPatchAutomaticByPlatformSettings, WindowsVMGuestPatchAutomaticByPlatformSettingsArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | Pulumi.AzureNative.Compute.WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | "Unknown" | "IfRequired" | "Never" | "Always"
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    WindowsVMGuestPatchAutomaticByPlatformSettingsResponse, WindowsVMGuestPatchAutomaticByPlatformSettingsResponseArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    WindowsVMGuestPatchMode, WindowsVMGuestPatchModeArgs

    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    WindowsVMGuestPatchModeManual
    Manual
    WindowsVMGuestPatchModeAutomaticByOS
    AutomaticByOS
    WindowsVMGuestPatchModeAutomaticByPlatform
    AutomaticByPlatform
    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    MANUAL
    Manual
    AUTOMATIC_BY_OS
    AutomaticByOS
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "Manual"
    Manual
    "AutomaticByOS"
    AutomaticByOS
    "AutomaticByPlatform"
    AutomaticByPlatform

    Import

    An existing resource can be imported using its type token, name, and identifier, e.g.

    $ pulumi import azure-native:compute:VirtualMachine myVM /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName} 
    

    Package Details

    Repository
    Azure Native pulumi/pulumi-azure-native
    License
    Apache-2.0
    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.34.0 published on Thursday, Mar 28, 2024 by Pulumi