1. Packages
  2. Azure Classic
  3. API Docs
  4. compute
  5. VirtualMachine

We recommend using Azure Native.

Azure Classic v6.2.0 published on Friday, Sep 27, 2024 by Pulumi

azure.compute.VirtualMachine

Explore with Pulumi AI

azure logo

We recommend using Azure Native.

Azure Classic v6.2.0 published on Friday, Sep 27, 2024 by Pulumi

    Manages a Virtual Machine.

    Disclaimers

    Note: The azure.compute.VirtualMachine resource has been superseded by the azure.compute.LinuxVirtualMachine and azure.compute.WindowsVirtualMachine resources. The existing azure.compute.VirtualMachine resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the azure.compute.LinuxVirtualMachine and azure.compute.WindowsVirtualMachine resources.

    Note: Data Disks can be attached either directly on the azure.compute.VirtualMachine resource, or using the azure.compute.DataDiskAttachment resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.

    Example Usage

    From An Azure Platform Image)

    This example provisions a Virtual Machine with Managed Disks.

    import * as pulumi from "@pulumi/pulumi";
    import * as azure from "@pulumi/azure";
    
    const config = new pulumi.Config();
    const prefix = config.get("prefix") || "tfvmex";
    const example = new azure.core.ResourceGroup("example", {
        name: `${prefix}-resources`,
        location: "West Europe",
    });
    const main = new azure.network.VirtualNetwork("main", {
        name: `${prefix}-network`,
        addressSpaces: ["10.0.0.0/16"],
        location: example.location,
        resourceGroupName: example.name,
    });
    const internal = new azure.network.Subnet("internal", {
        name: "internal",
        resourceGroupName: example.name,
        virtualNetworkName: main.name,
        addressPrefixes: ["10.0.2.0/24"],
    });
    const mainNetworkInterface = new azure.network.NetworkInterface("main", {
        name: `${prefix}-nic`,
        location: example.location,
        resourceGroupName: example.name,
        ipConfigurations: [{
            name: "testconfiguration1",
            subnetId: internal.id,
            privateIpAddressAllocation: "Dynamic",
        }],
    });
    const mainVirtualMachine = new azure.compute.VirtualMachine("main", {
        name: `${prefix}-vm`,
        location: example.location,
        resourceGroupName: example.name,
        networkInterfaceIds: [mainNetworkInterface.id],
        vmSize: "Standard_DS1_v2",
        storageImageReference: {
            publisher: "Canonical",
            offer: "0001-com-ubuntu-server-jammy",
            sku: "22_04-lts",
            version: "latest",
        },
        storageOsDisk: {
            name: "myosdisk1",
            caching: "ReadWrite",
            createOption: "FromImage",
            managedDiskType: "Standard_LRS",
        },
        osProfile: {
            computerName: "hostname",
            adminUsername: "testadmin",
            adminPassword: "Password1234!",
        },
        osProfileLinuxConfig: {
            disablePasswordAuthentication: false,
        },
        tags: {
            environment: "staging",
        },
    });
    
    import pulumi
    import pulumi_azure as azure
    
    config = pulumi.Config()
    prefix = config.get("prefix")
    if prefix is None:
        prefix = "tfvmex"
    example = azure.core.ResourceGroup("example",
        name=f"{prefix}-resources",
        location="West Europe")
    main = azure.network.VirtualNetwork("main",
        name=f"{prefix}-network",
        address_spaces=["10.0.0.0/16"],
        location=example.location,
        resource_group_name=example.name)
    internal = azure.network.Subnet("internal",
        name="internal",
        resource_group_name=example.name,
        virtual_network_name=main.name,
        address_prefixes=["10.0.2.0/24"])
    main_network_interface = azure.network.NetworkInterface("main",
        name=f"{prefix}-nic",
        location=example.location,
        resource_group_name=example.name,
        ip_configurations=[{
            "name": "testconfiguration1",
            "subnet_id": internal.id,
            "private_ip_address_allocation": "Dynamic",
        }])
    main_virtual_machine = azure.compute.VirtualMachine("main",
        name=f"{prefix}-vm",
        location=example.location,
        resource_group_name=example.name,
        network_interface_ids=[main_network_interface.id],
        vm_size="Standard_DS1_v2",
        storage_image_reference={
            "publisher": "Canonical",
            "offer": "0001-com-ubuntu-server-jammy",
            "sku": "22_04-lts",
            "version": "latest",
        },
        storage_os_disk={
            "name": "myosdisk1",
            "caching": "ReadWrite",
            "create_option": "FromImage",
            "managed_disk_type": "Standard_LRS",
        },
        os_profile={
            "computer_name": "hostname",
            "admin_username": "testadmin",
            "admin_password": "Password1234!",
        },
        os_profile_linux_config={
            "disable_password_authentication": False,
        },
        tags={
            "environment": "staging",
        })
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
    	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		prefix := "tfvmex"
    		if param := cfg.Get("prefix"); param != "" {
    			prefix = param
    		}
    		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
    			Name:     pulumi.Sprintf("%v-resources", prefix),
    			Location: pulumi.String("West Europe"),
    		})
    		if err != nil {
    			return err
    		}
    		main, err := network.NewVirtualNetwork(ctx, "main", &network.VirtualNetworkArgs{
    			Name: pulumi.Sprintf("%v-network", prefix),
    			AddressSpaces: pulumi.StringArray{
    				pulumi.String("10.0.0.0/16"),
    			},
    			Location:          example.Location,
    			ResourceGroupName: example.Name,
    		})
    		if err != nil {
    			return err
    		}
    		internal, err := network.NewSubnet(ctx, "internal", &network.SubnetArgs{
    			Name:               pulumi.String("internal"),
    			ResourceGroupName:  example.Name,
    			VirtualNetworkName: main.Name,
    			AddressPrefixes: pulumi.StringArray{
    				pulumi.String("10.0.2.0/24"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		mainNetworkInterface, err := network.NewNetworkInterface(ctx, "main", &network.NetworkInterfaceArgs{
    			Name:              pulumi.Sprintf("%v-nic", prefix),
    			Location:          example.Location,
    			ResourceGroupName: example.Name,
    			IpConfigurations: network.NetworkInterfaceIpConfigurationArray{
    				&network.NetworkInterfaceIpConfigurationArgs{
    					Name:                       pulumi.String("testconfiguration1"),
    					SubnetId:                   internal.ID(),
    					PrivateIpAddressAllocation: pulumi.String("Dynamic"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewVirtualMachine(ctx, "main", &compute.VirtualMachineArgs{
    			Name:              pulumi.Sprintf("%v-vm", prefix),
    			Location:          example.Location,
    			ResourceGroupName: example.Name,
    			NetworkInterfaceIds: pulumi.StringArray{
    				mainNetworkInterface.ID(),
    			},
    			VmSize: pulumi.String("Standard_DS1_v2"),
    			StorageImageReference: &compute.VirtualMachineStorageImageReferenceArgs{
    				Publisher: pulumi.String("Canonical"),
    				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
    				Sku:       pulumi.String("22_04-lts"),
    				Version:   pulumi.String("latest"),
    			},
    			StorageOsDisk: &compute.VirtualMachineStorageOsDiskArgs{
    				Name:            pulumi.String("myosdisk1"),
    				Caching:         pulumi.String("ReadWrite"),
    				CreateOption:    pulumi.String("FromImage"),
    				ManagedDiskType: pulumi.String("Standard_LRS"),
    			},
    			OsProfile: &compute.VirtualMachineOsProfileArgs{
    				ComputerName:  pulumi.String("hostname"),
    				AdminUsername: pulumi.String("testadmin"),
    				AdminPassword: pulumi.String("Password1234!"),
    			},
    			OsProfileLinuxConfig: &compute.VirtualMachineOsProfileLinuxConfigArgs{
    				DisablePasswordAuthentication: pulumi.Bool(false),
    			},
    			Tags: pulumi.StringMap{
    				"environment": pulumi.String("staging"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Azure = Pulumi.Azure;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var prefix = config.Get("prefix") ?? "tfvmex";
        var example = new Azure.Core.ResourceGroup("example", new()
        {
            Name = $"{prefix}-resources",
            Location = "West Europe",
        });
    
        var main = new Azure.Network.VirtualNetwork("main", new()
        {
            Name = $"{prefix}-network",
            AddressSpaces = new[]
            {
                "10.0.0.0/16",
            },
            Location = example.Location,
            ResourceGroupName = example.Name,
        });
    
        var @internal = new Azure.Network.Subnet("internal", new()
        {
            Name = "internal",
            ResourceGroupName = example.Name,
            VirtualNetworkName = main.Name,
            AddressPrefixes = new[]
            {
                "10.0.2.0/24",
            },
        });
    
        var mainNetworkInterface = new Azure.Network.NetworkInterface("main", new()
        {
            Name = $"{prefix}-nic",
            Location = example.Location,
            ResourceGroupName = example.Name,
            IpConfigurations = new[]
            {
                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs
                {
                    Name = "testconfiguration1",
                    SubnetId = @internal.Id,
                    PrivateIpAddressAllocation = "Dynamic",
                },
            },
        });
    
        var mainVirtualMachine = new Azure.Compute.VirtualMachine("main", new()
        {
            Name = $"{prefix}-vm",
            Location = example.Location,
            ResourceGroupName = example.Name,
            NetworkInterfaceIds = new[]
            {
                mainNetworkInterface.Id,
            },
            VmSize = "Standard_DS1_v2",
            StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs
            {
                Publisher = "Canonical",
                Offer = "0001-com-ubuntu-server-jammy",
                Sku = "22_04-lts",
                Version = "latest",
            },
            StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs
            {
                Name = "myosdisk1",
                Caching = "ReadWrite",
                CreateOption = "FromImage",
                ManagedDiskType = "Standard_LRS",
            },
            OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs
            {
                ComputerName = "hostname",
                AdminUsername = "testadmin",
                AdminPassword = "Password1234!",
            },
            OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs
            {
                DisablePasswordAuthentication = false,
            },
            Tags = 
            {
                { "environment", "staging" },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azure.core.ResourceGroup;
    import com.pulumi.azure.core.ResourceGroupArgs;
    import com.pulumi.azure.network.VirtualNetwork;
    import com.pulumi.azure.network.VirtualNetworkArgs;
    import com.pulumi.azure.network.Subnet;
    import com.pulumi.azure.network.SubnetArgs;
    import com.pulumi.azure.network.NetworkInterface;
    import com.pulumi.azure.network.NetworkInterfaceArgs;
    import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
    import com.pulumi.azure.compute.VirtualMachine;
    import com.pulumi.azure.compute.VirtualMachineArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineStorageImageReferenceArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineStorageOsDiskArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineOsProfileArgs;
    import com.pulumi.azure.compute.inputs.VirtualMachineOsProfileLinuxConfigArgs;
    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) {
            final var config = ctx.config();
            final var prefix = config.get("prefix").orElse("tfvmex");
            var example = new ResourceGroup("example", ResourceGroupArgs.builder()
                .name(String.format("%s-resources", prefix))
                .location("West Europe")
                .build());
    
            var main = new VirtualNetwork("main", VirtualNetworkArgs.builder()
                .name(String.format("%s-network", prefix))
                .addressSpaces("10.0.0.0/16")
                .location(example.location())
                .resourceGroupName(example.name())
                .build());
    
            var internal = new Subnet("internal", SubnetArgs.builder()
                .name("internal")
                .resourceGroupName(example.name())
                .virtualNetworkName(main.name())
                .addressPrefixes("10.0.2.0/24")
                .build());
    
            var mainNetworkInterface = new NetworkInterface("mainNetworkInterface", NetworkInterfaceArgs.builder()
                .name(String.format("%s-nic", prefix))
                .location(example.location())
                .resourceGroupName(example.name())
                .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
                    .name("testconfiguration1")
                    .subnetId(internal.id())
                    .privateIpAddressAllocation("Dynamic")
                    .build())
                .build());
    
            var mainVirtualMachine = new VirtualMachine("mainVirtualMachine", VirtualMachineArgs.builder()
                .name(String.format("%s-vm", prefix))
                .location(example.location())
                .resourceGroupName(example.name())
                .networkInterfaceIds(mainNetworkInterface.id())
                .vmSize("Standard_DS1_v2")
                .storageImageReference(VirtualMachineStorageImageReferenceArgs.builder()
                    .publisher("Canonical")
                    .offer("0001-com-ubuntu-server-jammy")
                    .sku("22_04-lts")
                    .version("latest")
                    .build())
                .storageOsDisk(VirtualMachineStorageOsDiskArgs.builder()
                    .name("myosdisk1")
                    .caching("ReadWrite")
                    .createOption("FromImage")
                    .managedDiskType("Standard_LRS")
                    .build())
                .osProfile(VirtualMachineOsProfileArgs.builder()
                    .computerName("hostname")
                    .adminUsername("testadmin")
                    .adminPassword("Password1234!")
                    .build())
                .osProfileLinuxConfig(VirtualMachineOsProfileLinuxConfigArgs.builder()
                    .disablePasswordAuthentication(false)
                    .build())
                .tags(Map.of("environment", "staging"))
                .build());
    
        }
    }
    
    configuration:
      prefix:
        type: string
        default: tfvmex
    resources:
      example:
        type: azure:core:ResourceGroup
        properties:
          name: ${prefix}-resources
          location: West Europe
      main:
        type: azure:network:VirtualNetwork
        properties:
          name: ${prefix}-network
          addressSpaces:
            - 10.0.0.0/16
          location: ${example.location}
          resourceGroupName: ${example.name}
      internal:
        type: azure:network:Subnet
        properties:
          name: internal
          resourceGroupName: ${example.name}
          virtualNetworkName: ${main.name}
          addressPrefixes:
            - 10.0.2.0/24
      mainNetworkInterface:
        type: azure:network:NetworkInterface
        name: main
        properties:
          name: ${prefix}-nic
          location: ${example.location}
          resourceGroupName: ${example.name}
          ipConfigurations:
            - name: testconfiguration1
              subnetId: ${internal.id}
              privateIpAddressAllocation: Dynamic
      mainVirtualMachine:
        type: azure:compute:VirtualMachine
        name: main
        properties:
          name: ${prefix}-vm
          location: ${example.location}
          resourceGroupName: ${example.name}
          networkInterfaceIds:
            - ${mainNetworkInterface.id}
          vmSize: Standard_DS1_v2
          storageImageReference:
            publisher: Canonical
            offer: 0001-com-ubuntu-server-jammy
            sku: 22_04-lts
            version: latest
          storageOsDisk:
            name: myosdisk1
            caching: ReadWrite
            createOption: FromImage
            managedDiskType: Standard_LRS
          osProfile:
            computerName: hostname
            adminUsername: testadmin
            adminPassword: Password1234!
          osProfileLinuxConfig:
            disablePasswordAuthentication: false
          tags:
            environment: staging
    

    Create VirtualMachine Resource

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

    Constructor syntax

    new VirtualMachine(name: string, args: VirtualMachineArgs, opts?: CustomResourceOptions);
    @overload
    def VirtualMachine(resource_name: str,
                       args: VirtualMachineArgs,
                       opts: Optional[ResourceOptions] = None)
    
    @overload
    def VirtualMachine(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       network_interface_ids: Optional[Sequence[str]] = None,
                       vm_size: Optional[str] = None,
                       storage_os_disk: Optional[VirtualMachineStorageOsDiskArgs] = None,
                       resource_group_name: Optional[str] = None,
                       os_profile_secrets: Optional[Sequence[VirtualMachineOsProfileSecretArgs]] = None,
                       os_profile_windows_config: Optional[VirtualMachineOsProfileWindowsConfigArgs] = None,
                       license_type: Optional[str] = None,
                       location: Optional[str] = None,
                       name: Optional[str] = None,
                       delete_os_disk_on_termination: Optional[bool] = None,
                       os_profile: Optional[VirtualMachineOsProfileArgs] = None,
                       os_profile_linux_config: Optional[VirtualMachineOsProfileLinuxConfigArgs] = None,
                       additional_capabilities: Optional[VirtualMachineAdditionalCapabilitiesArgs] = None,
                       identity: Optional[VirtualMachineIdentityArgs] = None,
                       plan: Optional[VirtualMachinePlanArgs] = None,
                       primary_network_interface_id: Optional[str] = None,
                       proximity_placement_group_id: Optional[str] = None,
                       delete_data_disks_on_termination: Optional[bool] = None,
                       storage_data_disks: Optional[Sequence[VirtualMachineStorageDataDiskArgs]] = None,
                       storage_image_reference: Optional[VirtualMachineStorageImageReferenceArgs] = None,
                       boot_diagnostics: Optional[VirtualMachineBootDiagnosticsArgs] = None,
                       tags: Optional[Mapping[str, str]] = None,
                       availability_set_id: Optional[str] = None,
                       zones: Optional[str] = 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:compute:VirtualMachine
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args 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.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var virtualMachineResource = new Azure.Compute.VirtualMachine("virtualMachineResource", new()
    {
        NetworkInterfaceIds = new[]
        {
            "string",
        },
        VmSize = "string",
        StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs
        {
            CreateOption = "string",
            Name = "string",
            Caching = "string",
            DiskSizeGb = 0,
            ImageUri = "string",
            ManagedDiskId = "string",
            ManagedDiskType = "string",
            OsType = "string",
            VhdUri = "string",
            WriteAcceleratorEnabled = false,
        },
        ResourceGroupName = "string",
        OsProfileSecrets = new[]
        {
            new Azure.Compute.Inputs.VirtualMachineOsProfileSecretArgs
            {
                SourceVaultId = "string",
                VaultCertificates = new[]
                {
                    new Azure.Compute.Inputs.VirtualMachineOsProfileSecretVaultCertificateArgs
                    {
                        CertificateUrl = "string",
                        CertificateStore = "string",
                    },
                },
            },
        },
        OsProfileWindowsConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileWindowsConfigArgs
        {
            AdditionalUnattendConfigs = new[]
            {
                new Azure.Compute.Inputs.VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArgs
                {
                    Component = "string",
                    Content = "string",
                    Pass = "string",
                    SettingName = "string",
                },
            },
            EnableAutomaticUpgrades = false,
            ProvisionVmAgent = false,
            Timezone = "string",
            Winrms = new[]
            {
                new Azure.Compute.Inputs.VirtualMachineOsProfileWindowsConfigWinrmArgs
                {
                    Protocol = "string",
                    CertificateUrl = "string",
                },
            },
        },
        LicenseType = "string",
        Location = "string",
        Name = "string",
        DeleteOsDiskOnTermination = false,
        OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs
        {
            AdminUsername = "string",
            ComputerName = "string",
            AdminPassword = "string",
            CustomData = "string",
        },
        OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs
        {
            DisablePasswordAuthentication = false,
            SshKeys = new[]
            {
                new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigSshKeyArgs
                {
                    KeyData = "string",
                    Path = "string",
                },
            },
        },
        AdditionalCapabilities = new Azure.Compute.Inputs.VirtualMachineAdditionalCapabilitiesArgs
        {
            UltraSsdEnabled = false,
        },
        Identity = new Azure.Compute.Inputs.VirtualMachineIdentityArgs
        {
            Type = "string",
            IdentityIds = new[]
            {
                "string",
            },
            PrincipalId = "string",
            TenantId = "string",
        },
        Plan = new Azure.Compute.Inputs.VirtualMachinePlanArgs
        {
            Name = "string",
            Product = "string",
            Publisher = "string",
        },
        PrimaryNetworkInterfaceId = "string",
        ProximityPlacementGroupId = "string",
        DeleteDataDisksOnTermination = false,
        StorageDataDisks = new[]
        {
            new Azure.Compute.Inputs.VirtualMachineStorageDataDiskArgs
            {
                CreateOption = "string",
                Lun = 0,
                Name = "string",
                Caching = "string",
                DiskSizeGb = 0,
                ManagedDiskId = "string",
                ManagedDiskType = "string",
                VhdUri = "string",
                WriteAcceleratorEnabled = false,
            },
        },
        StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs
        {
            Id = "string",
            Offer = "string",
            Publisher = "string",
            Sku = "string",
            Version = "string",
        },
        BootDiagnostics = new Azure.Compute.Inputs.VirtualMachineBootDiagnosticsArgs
        {
            Enabled = false,
            StorageUri = "string",
        },
        Tags = 
        {
            { "string", "string" },
        },
        AvailabilitySetId = "string",
        Zones = "string",
    });
    
    example, err := compute.NewVirtualMachine(ctx, "virtualMachineResource", &compute.VirtualMachineArgs{
    	NetworkInterfaceIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	VmSize: pulumi.String("string"),
    	StorageOsDisk: &compute.VirtualMachineStorageOsDiskArgs{
    		CreateOption:            pulumi.String("string"),
    		Name:                    pulumi.String("string"),
    		Caching:                 pulumi.String("string"),
    		DiskSizeGb:              pulumi.Int(0),
    		ImageUri:                pulumi.String("string"),
    		ManagedDiskId:           pulumi.String("string"),
    		ManagedDiskType:         pulumi.String("string"),
    		OsType:                  pulumi.String("string"),
    		VhdUri:                  pulumi.String("string"),
    		WriteAcceleratorEnabled: pulumi.Bool(false),
    	},
    	ResourceGroupName: pulumi.String("string"),
    	OsProfileSecrets: compute.VirtualMachineOsProfileSecretArray{
    		&compute.VirtualMachineOsProfileSecretArgs{
    			SourceVaultId: pulumi.String("string"),
    			VaultCertificates: compute.VirtualMachineOsProfileSecretVaultCertificateArray{
    				&compute.VirtualMachineOsProfileSecretVaultCertificateArgs{
    					CertificateUrl:   pulumi.String("string"),
    					CertificateStore: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	OsProfileWindowsConfig: &compute.VirtualMachineOsProfileWindowsConfigArgs{
    		AdditionalUnattendConfigs: compute.VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArray{
    			&compute.VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArgs{
    				Component:   pulumi.String("string"),
    				Content:     pulumi.String("string"),
    				Pass:        pulumi.String("string"),
    				SettingName: pulumi.String("string"),
    			},
    		},
    		EnableAutomaticUpgrades: pulumi.Bool(false),
    		ProvisionVmAgent:        pulumi.Bool(false),
    		Timezone:                pulumi.String("string"),
    		Winrms: compute.VirtualMachineOsProfileWindowsConfigWinrmArray{
    			&compute.VirtualMachineOsProfileWindowsConfigWinrmArgs{
    				Protocol:       pulumi.String("string"),
    				CertificateUrl: pulumi.String("string"),
    			},
    		},
    	},
    	LicenseType:               pulumi.String("string"),
    	Location:                  pulumi.String("string"),
    	Name:                      pulumi.String("string"),
    	DeleteOsDiskOnTermination: pulumi.Bool(false),
    	OsProfile: &compute.VirtualMachineOsProfileArgs{
    		AdminUsername: pulumi.String("string"),
    		ComputerName:  pulumi.String("string"),
    		AdminPassword: pulumi.String("string"),
    		CustomData:    pulumi.String("string"),
    	},
    	OsProfileLinuxConfig: &compute.VirtualMachineOsProfileLinuxConfigArgs{
    		DisablePasswordAuthentication: pulumi.Bool(false),
    		SshKeys: compute.VirtualMachineOsProfileLinuxConfigSshKeyArray{
    			&compute.VirtualMachineOsProfileLinuxConfigSshKeyArgs{
    				KeyData: pulumi.String("string"),
    				Path:    pulumi.String("string"),
    			},
    		},
    	},
    	AdditionalCapabilities: &compute.VirtualMachineAdditionalCapabilitiesArgs{
    		UltraSsdEnabled: pulumi.Bool(false),
    	},
    	Identity: &compute.VirtualMachineIdentityArgs{
    		Type: pulumi.String("string"),
    		IdentityIds: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		PrincipalId: pulumi.String("string"),
    		TenantId:    pulumi.String("string"),
    	},
    	Plan: &compute.VirtualMachinePlanArgs{
    		Name:      pulumi.String("string"),
    		Product:   pulumi.String("string"),
    		Publisher: pulumi.String("string"),
    	},
    	PrimaryNetworkInterfaceId:    pulumi.String("string"),
    	ProximityPlacementGroupId:    pulumi.String("string"),
    	DeleteDataDisksOnTermination: pulumi.Bool(false),
    	StorageDataDisks: compute.VirtualMachineStorageDataDiskArray{
    		&compute.VirtualMachineStorageDataDiskArgs{
    			CreateOption:            pulumi.String("string"),
    			Lun:                     pulumi.Int(0),
    			Name:                    pulumi.String("string"),
    			Caching:                 pulumi.String("string"),
    			DiskSizeGb:              pulumi.Int(0),
    			ManagedDiskId:           pulumi.String("string"),
    			ManagedDiskType:         pulumi.String("string"),
    			VhdUri:                  pulumi.String("string"),
    			WriteAcceleratorEnabled: pulumi.Bool(false),
    		},
    	},
    	StorageImageReference: &compute.VirtualMachineStorageImageReferenceArgs{
    		Id:        pulumi.String("string"),
    		Offer:     pulumi.String("string"),
    		Publisher: pulumi.String("string"),
    		Sku:       pulumi.String("string"),
    		Version:   pulumi.String("string"),
    	},
    	BootDiagnostics: &compute.VirtualMachineBootDiagnosticsArgs{
    		Enabled:    pulumi.Bool(false),
    		StorageUri: pulumi.String("string"),
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	AvailabilitySetId: pulumi.String("string"),
    	Zones:             pulumi.String("string"),
    })
    
    var virtualMachineResource = new VirtualMachine("virtualMachineResource", VirtualMachineArgs.builder()
        .networkInterfaceIds("string")
        .vmSize("string")
        .storageOsDisk(VirtualMachineStorageOsDiskArgs.builder()
            .createOption("string")
            .name("string")
            .caching("string")
            .diskSizeGb(0)
            .imageUri("string")
            .managedDiskId("string")
            .managedDiskType("string")
            .osType("string")
            .vhdUri("string")
            .writeAcceleratorEnabled(false)
            .build())
        .resourceGroupName("string")
        .osProfileSecrets(VirtualMachineOsProfileSecretArgs.builder()
            .sourceVaultId("string")
            .vaultCertificates(VirtualMachineOsProfileSecretVaultCertificateArgs.builder()
                .certificateUrl("string")
                .certificateStore("string")
                .build())
            .build())
        .osProfileWindowsConfig(VirtualMachineOsProfileWindowsConfigArgs.builder()
            .additionalUnattendConfigs(VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArgs.builder()
                .component("string")
                .content("string")
                .pass("string")
                .settingName("string")
                .build())
            .enableAutomaticUpgrades(false)
            .provisionVmAgent(false)
            .timezone("string")
            .winrms(VirtualMachineOsProfileWindowsConfigWinrmArgs.builder()
                .protocol("string")
                .certificateUrl("string")
                .build())
            .build())
        .licenseType("string")
        .location("string")
        .name("string")
        .deleteOsDiskOnTermination(false)
        .osProfile(VirtualMachineOsProfileArgs.builder()
            .adminUsername("string")
            .computerName("string")
            .adminPassword("string")
            .customData("string")
            .build())
        .osProfileLinuxConfig(VirtualMachineOsProfileLinuxConfigArgs.builder()
            .disablePasswordAuthentication(false)
            .sshKeys(VirtualMachineOsProfileLinuxConfigSshKeyArgs.builder()
                .keyData("string")
                .path("string")
                .build())
            .build())
        .additionalCapabilities(VirtualMachineAdditionalCapabilitiesArgs.builder()
            .ultraSsdEnabled(false)
            .build())
        .identity(VirtualMachineIdentityArgs.builder()
            .type("string")
            .identityIds("string")
            .principalId("string")
            .tenantId("string")
            .build())
        .plan(VirtualMachinePlanArgs.builder()
            .name("string")
            .product("string")
            .publisher("string")
            .build())
        .primaryNetworkInterfaceId("string")
        .proximityPlacementGroupId("string")
        .deleteDataDisksOnTermination(false)
        .storageDataDisks(VirtualMachineStorageDataDiskArgs.builder()
            .createOption("string")
            .lun(0)
            .name("string")
            .caching("string")
            .diskSizeGb(0)
            .managedDiskId("string")
            .managedDiskType("string")
            .vhdUri("string")
            .writeAcceleratorEnabled(false)
            .build())
        .storageImageReference(VirtualMachineStorageImageReferenceArgs.builder()
            .id("string")
            .offer("string")
            .publisher("string")
            .sku("string")
            .version("string")
            .build())
        .bootDiagnostics(VirtualMachineBootDiagnosticsArgs.builder()
            .enabled(false)
            .storageUri("string")
            .build())
        .tags(Map.of("string", "string"))
        .availabilitySetId("string")
        .zones("string")
        .build());
    
    virtual_machine_resource = azure.compute.VirtualMachine("virtualMachineResource",
        network_interface_ids=["string"],
        vm_size="string",
        storage_os_disk={
            "createOption": "string",
            "name": "string",
            "caching": "string",
            "diskSizeGb": 0,
            "imageUri": "string",
            "managedDiskId": "string",
            "managedDiskType": "string",
            "osType": "string",
            "vhdUri": "string",
            "writeAcceleratorEnabled": False,
        },
        resource_group_name="string",
        os_profile_secrets=[{
            "sourceVaultId": "string",
            "vaultCertificates": [{
                "certificateUrl": "string",
                "certificateStore": "string",
            }],
        }],
        os_profile_windows_config={
            "additionalUnattendConfigs": [{
                "component": "string",
                "content": "string",
                "pass": "string",
                "settingName": "string",
            }],
            "enableAutomaticUpgrades": False,
            "provisionVmAgent": False,
            "timezone": "string",
            "winrms": [{
                "protocol": "string",
                "certificateUrl": "string",
            }],
        },
        license_type="string",
        location="string",
        name="string",
        delete_os_disk_on_termination=False,
        os_profile={
            "adminUsername": "string",
            "computerName": "string",
            "adminPassword": "string",
            "customData": "string",
        },
        os_profile_linux_config={
            "disablePasswordAuthentication": False,
            "sshKeys": [{
                "keyData": "string",
                "path": "string",
            }],
        },
        additional_capabilities={
            "ultraSsdEnabled": False,
        },
        identity={
            "type": "string",
            "identityIds": ["string"],
            "principalId": "string",
            "tenantId": "string",
        },
        plan={
            "name": "string",
            "product": "string",
            "publisher": "string",
        },
        primary_network_interface_id="string",
        proximity_placement_group_id="string",
        delete_data_disks_on_termination=False,
        storage_data_disks=[{
            "createOption": "string",
            "lun": 0,
            "name": "string",
            "caching": "string",
            "diskSizeGb": 0,
            "managedDiskId": "string",
            "managedDiskType": "string",
            "vhdUri": "string",
            "writeAcceleratorEnabled": False,
        }],
        storage_image_reference={
            "id": "string",
            "offer": "string",
            "publisher": "string",
            "sku": "string",
            "version": "string",
        },
        boot_diagnostics={
            "enabled": False,
            "storageUri": "string",
        },
        tags={
            "string": "string",
        },
        availability_set_id="string",
        zones="string")
    
    const virtualMachineResource = new azure.compute.VirtualMachine("virtualMachineResource", {
        networkInterfaceIds: ["string"],
        vmSize: "string",
        storageOsDisk: {
            createOption: "string",
            name: "string",
            caching: "string",
            diskSizeGb: 0,
            imageUri: "string",
            managedDiskId: "string",
            managedDiskType: "string",
            osType: "string",
            vhdUri: "string",
            writeAcceleratorEnabled: false,
        },
        resourceGroupName: "string",
        osProfileSecrets: [{
            sourceVaultId: "string",
            vaultCertificates: [{
                certificateUrl: "string",
                certificateStore: "string",
            }],
        }],
        osProfileWindowsConfig: {
            additionalUnattendConfigs: [{
                component: "string",
                content: "string",
                pass: "string",
                settingName: "string",
            }],
            enableAutomaticUpgrades: false,
            provisionVmAgent: false,
            timezone: "string",
            winrms: [{
                protocol: "string",
                certificateUrl: "string",
            }],
        },
        licenseType: "string",
        location: "string",
        name: "string",
        deleteOsDiskOnTermination: false,
        osProfile: {
            adminUsername: "string",
            computerName: "string",
            adminPassword: "string",
            customData: "string",
        },
        osProfileLinuxConfig: {
            disablePasswordAuthentication: false,
            sshKeys: [{
                keyData: "string",
                path: "string",
            }],
        },
        additionalCapabilities: {
            ultraSsdEnabled: false,
        },
        identity: {
            type: "string",
            identityIds: ["string"],
            principalId: "string",
            tenantId: "string",
        },
        plan: {
            name: "string",
            product: "string",
            publisher: "string",
        },
        primaryNetworkInterfaceId: "string",
        proximityPlacementGroupId: "string",
        deleteDataDisksOnTermination: false,
        storageDataDisks: [{
            createOption: "string",
            lun: 0,
            name: "string",
            caching: "string",
            diskSizeGb: 0,
            managedDiskId: "string",
            managedDiskType: "string",
            vhdUri: "string",
            writeAcceleratorEnabled: false,
        }],
        storageImageReference: {
            id: "string",
            offer: "string",
            publisher: "string",
            sku: "string",
            version: "string",
        },
        bootDiagnostics: {
            enabled: false,
            storageUri: "string",
        },
        tags: {
            string: "string",
        },
        availabilitySetId: "string",
        zones: "string",
    });
    
    type: azure:compute:VirtualMachine
    properties:
        additionalCapabilities:
            ultraSsdEnabled: false
        availabilitySetId: string
        bootDiagnostics:
            enabled: false
            storageUri: string
        deleteDataDisksOnTermination: false
        deleteOsDiskOnTermination: false
        identity:
            identityIds:
                - string
            principalId: string
            tenantId: string
            type: string
        licenseType: string
        location: string
        name: string
        networkInterfaceIds:
            - string
        osProfile:
            adminPassword: string
            adminUsername: string
            computerName: string
            customData: string
        osProfileLinuxConfig:
            disablePasswordAuthentication: false
            sshKeys:
                - keyData: string
                  path: string
        osProfileSecrets:
            - sourceVaultId: string
              vaultCertificates:
                - certificateStore: string
                  certificateUrl: string
        osProfileWindowsConfig:
            additionalUnattendConfigs:
                - component: string
                  content: string
                  pass: string
                  settingName: string
            enableAutomaticUpgrades: false
            provisionVmAgent: false
            timezone: string
            winrms:
                - certificateUrl: string
                  protocol: string
        plan:
            name: string
            product: string
            publisher: string
        primaryNetworkInterfaceId: string
        proximityPlacementGroupId: string
        resourceGroupName: string
        storageDataDisks:
            - caching: string
              createOption: string
              diskSizeGb: 0
              lun: 0
              managedDiskId: string
              managedDiskType: string
              name: string
              vhdUri: string
              writeAcceleratorEnabled: false
        storageImageReference:
            id: string
            offer: string
            publisher: string
            sku: string
            version: string
        storageOsDisk:
            caching: string
            createOption: string
            diskSizeGb: 0
            imageUri: string
            managedDiskId: string
            managedDiskType: string
            name: string
            osType: string
            vhdUri: string
            writeAcceleratorEnabled: false
        tags:
            string: string
        vmSize: string
        zones: string
    

    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:

    NetworkInterfaceIds List<string>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    ResourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    StorageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    VmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    AdditionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    AvailabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    BootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    DeleteDataDisksOnTermination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    DeleteOsDiskOnTermination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    Identity VirtualMachineIdentity
    An identity block as defined below.
    LicenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    Location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    Name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    OsProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    OsProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    OsProfileSecrets List<VirtualMachineOsProfileSecret>
    One or more os_profile_secrets blocks as defined below.
    OsProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    Plan VirtualMachinePlan
    A plan block as defined below.
    PrimaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    StorageDataDisks List<VirtualMachineStorageDataDisk>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    StorageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    Tags Dictionary<string, string>
    A mapping of tags to assign to the Virtual Machine.
    Zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    NetworkInterfaceIds []string
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    ResourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    StorageOsDisk VirtualMachineStorageOsDiskArgs
    A storage_os_disk block as defined below.
    VmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    AdditionalCapabilities VirtualMachineAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    AvailabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    BootDiagnostics VirtualMachineBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    DeleteDataDisksOnTermination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    DeleteOsDiskOnTermination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    Identity VirtualMachineIdentityArgs
    An identity block as defined below.
    LicenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    Location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    Name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    OsProfile VirtualMachineOsProfileArgs
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    OsProfileLinuxConfig VirtualMachineOsProfileLinuxConfigArgs
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    OsProfileSecrets []VirtualMachineOsProfileSecretArgs
    One or more os_profile_secrets blocks as defined below.
    OsProfileWindowsConfig VirtualMachineOsProfileWindowsConfigArgs
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    Plan VirtualMachinePlanArgs
    A plan block as defined below.
    PrimaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    StorageDataDisks []VirtualMachineStorageDataDiskArgs

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    StorageImageReference VirtualMachineStorageImageReferenceArgs
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    Tags map[string]string
    A mapping of tags to assign to the Virtual Machine.
    Zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    networkInterfaceIds List<String>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    resourceGroupName String
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    vmSize String
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    additionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    availabilitySetId String
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination Boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination Boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentity
    An identity block as defined below.
    licenseType String
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location String
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    osProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets List<VirtualMachineOsProfileSecret>
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlan
    A plan block as defined below.
    primaryNetworkInterfaceId String
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    storageDataDisks List<VirtualMachineStorageDataDisk>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    tags Map<String,String>
    A mapping of tags to assign to the Virtual Machine.
    zones String

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    networkInterfaceIds string[]
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    resourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    vmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    additionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    availabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentity
    An identity block as defined below.
    licenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    osProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets VirtualMachineOsProfileSecret[]
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlan
    A plan block as defined below.
    primaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    storageDataDisks VirtualMachineStorageDataDisk[]

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    tags {[key: string]: string}
    A mapping of tags to assign to the Virtual Machine.
    zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    network_interface_ids Sequence[str]
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    resource_group_name str
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storage_os_disk VirtualMachineStorageOsDiskArgs
    A storage_os_disk block as defined below.
    vm_size str
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    additional_capabilities VirtualMachineAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    availability_set_id str
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    boot_diagnostics VirtualMachineBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    delete_data_disks_on_termination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    delete_os_disk_on_termination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentityArgs
    An identity block as defined below.
    license_type str
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location str
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name str
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    os_profile VirtualMachineOsProfileArgs
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    os_profile_linux_config VirtualMachineOsProfileLinuxConfigArgs
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    os_profile_secrets Sequence[VirtualMachineOsProfileSecretArgs]
    One or more os_profile_secrets blocks as defined below.
    os_profile_windows_config VirtualMachineOsProfileWindowsConfigArgs
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlanArgs
    A plan block as defined below.
    primary_network_interface_id str
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximity_placement_group_id str
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    storage_data_disks Sequence[VirtualMachineStorageDataDiskArgs]

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storage_image_reference VirtualMachineStorageImageReferenceArgs
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    tags Mapping[str, str]
    A mapping of tags to assign to the Virtual Machine.
    zones str

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    networkInterfaceIds List<String>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    resourceGroupName String
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageOsDisk Property Map
    A storage_os_disk block as defined below.
    vmSize String
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    additionalCapabilities Property Map
    An additional_capabilities block as defined below.
    availabilitySetId String
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics Property Map
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination Boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination Boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity Property Map
    An identity block as defined below.
    licenseType String
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location String
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    osProfile Property Map
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig Property Map
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets List<Property Map>
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig Property Map
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan Property Map
    A plan block as defined below.
    primaryNetworkInterfaceId String
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    storageDataDisks List<Property Map>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference Property Map
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    tags Map<String>
    A mapping of tags to assign to the Virtual Machine.
    zones String

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    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.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing VirtualMachine Resource

    Get an existing VirtualMachine resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: VirtualMachineState, opts?: CustomResourceOptions): VirtualMachine
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            additional_capabilities: Optional[VirtualMachineAdditionalCapabilitiesArgs] = None,
            availability_set_id: Optional[str] = None,
            boot_diagnostics: Optional[VirtualMachineBootDiagnosticsArgs] = None,
            delete_data_disks_on_termination: Optional[bool] = None,
            delete_os_disk_on_termination: Optional[bool] = None,
            identity: Optional[VirtualMachineIdentityArgs] = None,
            license_type: Optional[str] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            network_interface_ids: Optional[Sequence[str]] = None,
            os_profile: Optional[VirtualMachineOsProfileArgs] = None,
            os_profile_linux_config: Optional[VirtualMachineOsProfileLinuxConfigArgs] = None,
            os_profile_secrets: Optional[Sequence[VirtualMachineOsProfileSecretArgs]] = None,
            os_profile_windows_config: Optional[VirtualMachineOsProfileWindowsConfigArgs] = None,
            plan: Optional[VirtualMachinePlanArgs] = None,
            primary_network_interface_id: Optional[str] = None,
            proximity_placement_group_id: Optional[str] = None,
            resource_group_name: Optional[str] = None,
            storage_data_disks: Optional[Sequence[VirtualMachineStorageDataDiskArgs]] = None,
            storage_image_reference: Optional[VirtualMachineStorageImageReferenceArgs] = None,
            storage_os_disk: Optional[VirtualMachineStorageOsDiskArgs] = None,
            tags: Optional[Mapping[str, str]] = None,
            vm_size: Optional[str] = None,
            zones: Optional[str] = None) -> VirtualMachine
    func GetVirtualMachine(ctx *Context, name string, id IDInput, state *VirtualMachineState, opts ...ResourceOption) (*VirtualMachine, error)
    public static VirtualMachine Get(string name, Input<string> id, VirtualMachineState? state, CustomResourceOptions? opts = null)
    public static VirtualMachine get(String name, Output<String> id, VirtualMachineState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AdditionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    AvailabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    BootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    DeleteDataDisksOnTermination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    DeleteOsDiskOnTermination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    Identity VirtualMachineIdentity
    An identity block as defined below.
    LicenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    Location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    Name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    NetworkInterfaceIds List<string>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    OsProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    OsProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    OsProfileSecrets List<VirtualMachineOsProfileSecret>
    One or more os_profile_secrets blocks as defined below.
    OsProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    Plan VirtualMachinePlan
    A plan block as defined below.
    PrimaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    ResourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    StorageDataDisks List<VirtualMachineStorageDataDisk>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    StorageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    StorageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    Tags Dictionary<string, string>
    A mapping of tags to assign to the Virtual Machine.
    VmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    Zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    AdditionalCapabilities VirtualMachineAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    AvailabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    BootDiagnostics VirtualMachineBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    DeleteDataDisksOnTermination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    DeleteOsDiskOnTermination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    Identity VirtualMachineIdentityArgs
    An identity block as defined below.
    LicenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    Location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    Name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    NetworkInterfaceIds []string
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    OsProfile VirtualMachineOsProfileArgs
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    OsProfileLinuxConfig VirtualMachineOsProfileLinuxConfigArgs
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    OsProfileSecrets []VirtualMachineOsProfileSecretArgs
    One or more os_profile_secrets blocks as defined below.
    OsProfileWindowsConfig VirtualMachineOsProfileWindowsConfigArgs
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    Plan VirtualMachinePlanArgs
    A plan block as defined below.
    PrimaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    ResourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    StorageDataDisks []VirtualMachineStorageDataDiskArgs

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    StorageImageReference VirtualMachineStorageImageReferenceArgs
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    StorageOsDisk VirtualMachineStorageOsDiskArgs
    A storage_os_disk block as defined below.
    Tags map[string]string
    A mapping of tags to assign to the Virtual Machine.
    VmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    Zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    additionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    availabilitySetId String
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination Boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination Boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentity
    An identity block as defined below.
    licenseType String
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location String
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    networkInterfaceIds List<String>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    osProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets List<VirtualMachineOsProfileSecret>
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlan
    A plan block as defined below.
    primaryNetworkInterfaceId String
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    resourceGroupName String
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageDataDisks List<VirtualMachineStorageDataDisk>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    storageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    tags Map<String,String>
    A mapping of tags to assign to the Virtual Machine.
    vmSize String
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    zones String

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    additionalCapabilities VirtualMachineAdditionalCapabilities
    An additional_capabilities block as defined below.
    availabilitySetId string
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics VirtualMachineBootDiagnostics
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentity
    An identity block as defined below.
    licenseType string
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location string
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    networkInterfaceIds string[]
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    osProfile VirtualMachineOsProfile
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig VirtualMachineOsProfileLinuxConfig
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets VirtualMachineOsProfileSecret[]
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig VirtualMachineOsProfileWindowsConfig
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlan
    A plan block as defined below.
    primaryNetworkInterfaceId string
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId string
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    resourceGroupName string
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageDataDisks VirtualMachineStorageDataDisk[]

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference VirtualMachineStorageImageReference
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    storageOsDisk VirtualMachineStorageOsDisk
    A storage_os_disk block as defined below.
    tags {[key: string]: string}
    A mapping of tags to assign to the Virtual Machine.
    vmSize string
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    zones string

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    additional_capabilities VirtualMachineAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    availability_set_id str
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    boot_diagnostics VirtualMachineBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    delete_data_disks_on_termination bool

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    delete_os_disk_on_termination bool

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity VirtualMachineIdentityArgs
    An identity block as defined below.
    license_type str
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location str
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name str
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    network_interface_ids Sequence[str]
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    os_profile VirtualMachineOsProfileArgs
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    os_profile_linux_config VirtualMachineOsProfileLinuxConfigArgs
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    os_profile_secrets Sequence[VirtualMachineOsProfileSecretArgs]
    One or more os_profile_secrets blocks as defined below.
    os_profile_windows_config VirtualMachineOsProfileWindowsConfigArgs
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan VirtualMachinePlanArgs
    A plan block as defined below.
    primary_network_interface_id str
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximity_placement_group_id str
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    resource_group_name str
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storage_data_disks Sequence[VirtualMachineStorageDataDiskArgs]

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storage_image_reference VirtualMachineStorageImageReferenceArgs
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    storage_os_disk VirtualMachineStorageOsDiskArgs
    A storage_os_disk block as defined below.
    tags Mapping[str, str]
    A mapping of tags to assign to the Virtual Machine.
    vm_size str
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    zones str

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    additionalCapabilities Property Map
    An additional_capabilities block as defined below.
    availabilitySetId String
    The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    bootDiagnostics Property Map
    A boot_diagnostics block as defined below.
    deleteDataDisksOnTermination Boolean

    Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    deleteOsDiskOnTermination Boolean

    Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to false.

    Note: This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.

    identity Property Map
    An identity block as defined below.
    licenseType String
    Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are Windows_Client and Windows_Server.
    location String
    Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.
    name String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    networkInterfaceIds List<String>
    A list of Network Interface IDs which should be associated with the Virtual Machine.
    osProfile Property Map
    An os_profile block as defined below. Required when create_option in the storage_os_disk block is set to FromImage.
    osProfileLinuxConfig Property Map
    (Required, when a Linux machine) An os_profile_linux_config block as defined below.
    osProfileSecrets List<Property Map>
    One or more os_profile_secrets blocks as defined below.
    osProfileWindowsConfig Property Map
    (Required, when a Windows machine) An os_profile_windows_config block as defined below.
    plan Property Map
    A plan block as defined below.
    primaryNetworkInterfaceId String
    The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
    resourceGroupName String
    Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
    storageDataDisks List<Property Map>

    One or more storage_data_disk blocks as defined below.

    Please Note: Data Disks can also be attached either using this block or the azure.compute.DataDiskAttachment resource - but not both.

    storageImageReference Property Map
    A storage_image_reference block as defined below. Changing this forces a new resource to be created.
    storageOsDisk Property Map
    A storage_os_disk block as defined below.
    tags Map<String>
    A mapping of tags to assign to the Virtual Machine.
    vmSize String
    Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
    zones String

    A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.

    Please Note: Availability Zones are only supported in several regions at this time.

    For more information on the different example configurations, please check out the Azure documentation

    Supporting Types

    VirtualMachineAdditionalCapabilities, VirtualMachineAdditionalCapabilitiesArgs

    UltraSsdEnabled bool

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    UltraSsdEnabled bool

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    ultraSsdEnabled Boolean

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    ultraSsdEnabled boolean

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    ultra_ssd_enabled bool

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    ultraSsdEnabled Boolean

    Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.

    Note: Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: ESv3, DSv3, FSv3, LSv2, M and Mv2. For more information see the Azure Ultra Disk Storage product documentation.

    VirtualMachineBootDiagnostics, VirtualMachineBootDiagnosticsArgs

    Enabled bool
    Should Boot Diagnostics be enabled for this Virtual Machine?
    StorageUri string

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    Enabled bool
    Should Boot Diagnostics be enabled for this Virtual Machine?
    StorageUri string

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    enabled Boolean
    Should Boot Diagnostics be enabled for this Virtual Machine?
    storageUri String

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    enabled boolean
    Should Boot Diagnostics be enabled for this Virtual Machine?
    storageUri string

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    enabled bool
    Should Boot Diagnostics be enabled for this Virtual Machine?
    storage_uri str

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    enabled Boolean
    Should Boot Diagnostics be enabled for this Virtual Machine?
    storageUri String

    The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.

    NOTE: This needs to be the root of a Storage Account and not a Storage Container.

    VirtualMachineIdentity, VirtualMachineIdentityArgs

    Type string

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    IdentityIds List<string>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    PrincipalId string
    The Principal ID associated with this Managed Service Identity.
    TenantId string
    Type string

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    IdentityIds []string

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    PrincipalId string
    The Principal ID associated with this Managed Service Identity.
    TenantId string
    type String

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    identityIds List<String>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId String
    The Principal ID associated with this Managed Service Identity.
    tenantId String
    type string

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    identityIds string[]

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId string
    The Principal ID associated with this Managed Service Identity.
    tenantId string
    type str

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    identity_ids Sequence[str]

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principal_id str
    The Principal ID associated with this Managed Service Identity.
    tenant_id str
    type String

    Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).

    NOTE: Managed Service Identity previously required the installation of a VM Extension, but this information is now available via the Azure Instance Metadata Service.

    NOTE: When type is set to SystemAssigned, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See documentation for additional information.

    identityIds List<String>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId String
    The Principal ID associated with this Managed Service Identity.
    tenantId String

    VirtualMachineOsProfile, VirtualMachineOsProfileArgs

    AdminUsername string
    Specifies the name of the local administrator account.
    ComputerName string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    AdminPassword string

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    CustomData string
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.
    AdminUsername string
    Specifies the name of the local administrator account.
    ComputerName string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    AdminPassword string

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    CustomData string
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.
    adminUsername String
    Specifies the name of the local administrator account.
    computerName String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    adminPassword String

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    customData String
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.
    adminUsername string
    Specifies the name of the local administrator account.
    computerName string
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    adminPassword string

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    customData string
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.
    admin_username str
    Specifies the name of the local administrator account.
    computer_name str
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    admin_password str

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    custom_data str
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.
    adminUsername String
    Specifies the name of the local administrator account.
    computerName String
    Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
    adminPassword String

    (Optional for Windows, Optional for Linux) The password associated with the local administrator account.

    NOTE: If using Linux, it may be preferable to use SSH Key authentication (available in the os_profile_linux_config block) instead of password authentication.

    customData String
    Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.

    VirtualMachineOsProfileLinuxConfig, VirtualMachineOsProfileLinuxConfigArgs

    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    SshKeys List<VirtualMachineOsProfileLinuxConfigSshKey>
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.
    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    SshKeys []VirtualMachineOsProfileLinuxConfigSshKey
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    sshKeys List<VirtualMachineOsProfileLinuxConfigSshKey>
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.
    disablePasswordAuthentication boolean
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    sshKeys VirtualMachineOsProfileLinuxConfigSshKey[]
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.
    disable_password_authentication bool
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    ssh_keys Sequence[VirtualMachineOsProfileLinuxConfigSshKey]
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled. If set to false, an admin_password must be specified.
    sshKeys List<Property Map>
    One or more ssh_keys blocks as defined below. This field is required if disable_password_authentication is set to true.

    VirtualMachineOsProfileLinuxConfigSshKey, VirtualMachineOsProfileLinuxConfigSshKeyArgs

    KeyData string

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    Path string

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    KeyData string

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    Path string

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    keyData String

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    path String

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    keyData string

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    path string

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    key_data str

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    path str

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    keyData String

    The Public SSH Key which should be written to the path defined above.

    Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length

    path String

    The path of the destination file on the virtual machine

    NOTE: Due to a limitation in the Azure VM Agent the only allowed path is /home/{username}/.ssh/authorized_keys.

    VirtualMachineOsProfileSecret, VirtualMachineOsProfileSecretArgs

    SourceVaultId string
    Specifies the ID of the Key Vault to use.
    VaultCertificates List<VirtualMachineOsProfileSecretVaultCertificate>
    One or more vault_certificates blocks as defined below.
    SourceVaultId string
    Specifies the ID of the Key Vault to use.
    VaultCertificates []VirtualMachineOsProfileSecretVaultCertificate
    One or more vault_certificates blocks as defined below.
    sourceVaultId String
    Specifies the ID of the Key Vault to use.
    vaultCertificates List<VirtualMachineOsProfileSecretVaultCertificate>
    One or more vault_certificates blocks as defined below.
    sourceVaultId string
    Specifies the ID of the Key Vault to use.
    vaultCertificates VirtualMachineOsProfileSecretVaultCertificate[]
    One or more vault_certificates blocks as defined below.
    source_vault_id str
    Specifies the ID of the Key Vault to use.
    vault_certificates Sequence[VirtualMachineOsProfileSecretVaultCertificate]
    One or more vault_certificates blocks as defined below.
    sourceVaultId String
    Specifies the ID of the Key Vault to use.
    vaultCertificates List<Property Map>
    One or more vault_certificates blocks as defined below.

    VirtualMachineOsProfileSecretVaultCertificate, VirtualMachineOsProfileSecretVaultCertificateArgs

    CertificateUrl string

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    CertificateStore string
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.
    CertificateUrl string

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    CertificateStore string
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.
    certificateUrl String

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    certificateStore String
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.
    certificateUrl string

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    certificateStore string
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.
    certificate_url str

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    certificate_store str
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.
    certificateUrl String

    The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:

    {
    "data":"<Base64-encoded-certificate>",
    "dataType":"pfx",
    "password":"<pfx-file-password>"
    }
    

    NOTE: If your certificate is stored in Azure Key Vault - this can be sourced from the secret_id property on the azure.keyvault.Certificate resource.

    certificateStore String
    (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as My.

    VirtualMachineOsProfileWindowsConfig, VirtualMachineOsProfileWindowsConfigArgs

    AdditionalUnattendConfigs List<VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig>
    An additional_unattend_config block as defined below.
    EnableAutomaticUpgrades bool
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    ProvisionVmAgent bool

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    Timezone string
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    Winrms List<VirtualMachineOsProfileWindowsConfigWinrm>
    One or more winrm blocks as defined below.
    AdditionalUnattendConfigs []VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig
    An additional_unattend_config block as defined below.
    EnableAutomaticUpgrades bool
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    ProvisionVmAgent bool

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    Timezone string
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    Winrms []VirtualMachineOsProfileWindowsConfigWinrm
    One or more winrm blocks as defined below.
    additionalUnattendConfigs List<VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig>
    An additional_unattend_config block as defined below.
    enableAutomaticUpgrades Boolean
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    provisionVmAgent Boolean

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    timezone String
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    winrms List<VirtualMachineOsProfileWindowsConfigWinrm>
    One or more winrm blocks as defined below.
    additionalUnattendConfigs VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig[]
    An additional_unattend_config block as defined below.
    enableAutomaticUpgrades boolean
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    provisionVmAgent boolean

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    timezone string
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    winrms VirtualMachineOsProfileWindowsConfigWinrm[]
    One or more winrm blocks as defined below.
    additional_unattend_configs Sequence[VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig]
    An additional_unattend_config block as defined below.
    enable_automatic_upgrades bool
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    provision_vm_agent bool

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    timezone str
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    winrms Sequence[VirtualMachineOsProfileWindowsConfigWinrm]
    One or more winrm blocks as defined below.
    additionalUnattendConfigs List<Property Map>
    An additional_unattend_config block as defined below.
    enableAutomaticUpgrades Boolean
    Are automatic updates enabled on this Virtual Machine? Defaults to false.
    provisionVmAgent Boolean

    Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to false.

    NOTE: This is different from the Default value used for this field within Azure.

    timezone String
    Specifies the time zone of the virtual machine, the possible values are defined here. Changing this forces a new resource to be created.
    winrms List<Property Map>
    One or more winrm blocks as defined below.

    VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig, VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArgs

    Component string
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    Pass string
    Specifies the name of the pass that the content applies to. 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 string
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    Pass string
    Specifies the name of the pass that the content applies to. 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 String
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    pass String
    Specifies the name of the pass that the content applies to. 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 string
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    content string
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    pass string
    Specifies the name of the pass that the content applies to. 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 str
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    content str
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    pass_ str
    Specifies the name of the pass that the content applies to. 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.
    component String
    Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
    pass String
    Specifies the name of the pass that the content applies to. 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.

    VirtualMachineOsProfileWindowsConfigWinrm, VirtualMachineOsProfileWindowsConfigWinrmArgs

    Protocol string
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    CertificateUrl string

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    Protocol string
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    CertificateUrl string

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    protocol String
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    certificateUrl String

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    protocol string
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    certificateUrl string

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    protocol str
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    certificate_url str

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    protocol String
    Specifies the protocol of listener. Possible values are HTTP or HTTPS.
    certificateUrl String

    The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the vault_certificates block within the os_profile_secrets block.

    NOTE: This can be sourced from the secret_id field on the azure.keyvault.Certificate resource.

    VirtualMachinePlan, VirtualMachinePlanArgs

    Name string
    Specifies the name of the image from the marketplace.
    Product string
    Specifies the product of the image from the marketplace.
    Publisher string
    Specifies the publisher of the image.
    Name string
    Specifies the name of the image from the marketplace.
    Product string
    Specifies the product of the image from the marketplace.
    Publisher string
    Specifies the publisher of the image.
    name String
    Specifies the name of the image from the marketplace.
    product String
    Specifies the product of the image from the marketplace.
    publisher String
    Specifies the publisher of the image.
    name string
    Specifies the name of the image from the marketplace.
    product string
    Specifies the product of the image from the marketplace.
    publisher string
    Specifies the publisher of the image.
    name str
    Specifies the name of the image from the marketplace.
    product str
    Specifies the product of the image from the marketplace.
    publisher str
    Specifies the publisher of the image.
    name String
    Specifies the name of the image from the marketplace.
    product String
    Specifies the product of the image from the marketplace.
    publisher String
    Specifies the publisher of the image.

    VirtualMachineStorageDataDisk, VirtualMachineStorageDataDiskArgs

    CreateOption string

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    Lun int
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    Name string
    The name of the Data Disk.
    Caching string
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    DiskSizeGb int
    Specifies the size of the data disk in gigabytes.
    ManagedDiskId string

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    ManagedDiskType string

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    VhdUri string
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    WriteAcceleratorEnabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    CreateOption string

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    Lun int
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    Name string
    The name of the Data Disk.
    Caching string
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    DiskSizeGb int
    Specifies the size of the data disk in gigabytes.
    ManagedDiskId string

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    ManagedDiskType string

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    VhdUri string
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    WriteAcceleratorEnabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption String

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    lun Integer
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    name String
    The name of the Data Disk.
    caching String
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb Integer
    Specifies the size of the data disk in gigabytes.
    managedDiskId String

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    managedDiskType String

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    vhdUri String
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    writeAcceleratorEnabled Boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption string

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    lun number
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    name string
    The name of the Data Disk.
    caching string
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb number
    Specifies the size of the data disk in gigabytes.
    managedDiskId string

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    managedDiskType string

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    vhdUri string
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    writeAcceleratorEnabled boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    create_option str

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    lun int
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    name str
    The name of the Data Disk.
    caching str
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    disk_size_gb int
    Specifies the size of the data disk in gigabytes.
    managed_disk_id str

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    managed_disk_type str

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    vhd_uri str
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    write_accelerator_enabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption String

    Specifies how the data disk should be created. Possible values are Attach, FromImage and Empty.

    NOTE: If using an image that does not have data to be written to the Data Disk, use Empty as the create option in order to create the desired disk without any data.

    lun Number
    Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.
    name String
    The name of the Data Disk.
    caching String
    Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb Number
    Specifies the size of the data disk in gigabytes.
    managedDiskId String

    Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set create_option must be set to Attach.

    The following properties apply when using Unmanaged Disks:

    managedDiskType String

    Specifies the type of managed disk to create. Possible values are either Standard_LRS, StandardSSD_LRS, Premium_LRS or UltraSSD_LRS.

    Note: managed_disk_type of type UltraSSD_LRS is currently in preview and are not available to subscriptions that have not requested onboarding to Azure Ultra Disk Storage preview. Azure Ultra Disk Storage is only available in East US 2, North Europe, and Southeast Asia regions. For more information see the Azure Ultra Disk Storage product documentation, product blog and FAQ. You must also set additional_capabilities.ultra_ssd_enabled to true.

    vhdUri String
    Specifies the URI of the VHD file backing this Unmanaged Data Disk.
    writeAcceleratorEnabled Boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    VirtualMachineStorageImageReference, VirtualMachineStorageImageReferenceArgs

    Id string
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    Offer string
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Sku string
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Version string

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    Id string
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    Offer string
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Sku string
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    Version string

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    id String
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    offer String
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    sku String
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    version String

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    id string
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    offer string
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    publisher string
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    sku string
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    version string

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    id str
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    offer str
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    publisher str
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    sku str
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    version str

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    id String
    Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.
    offer String
    Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
    sku String
    Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
    version String

    Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.

    To provision a Custom Image, the following fields are applicable:

    VirtualMachineStorageOsDisk, VirtualMachineStorageOsDiskArgs

    CreateOption string
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    Name string
    Specifies the name of the OS Disk.
    Caching string
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    DiskSizeGb int
    Specifies the size of the OS Disk in gigabytes.
    ImageUri string
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    ManagedDiskId string
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    ManagedDiskType string

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    OsType string
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    VhdUri string
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    WriteAcceleratorEnabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    CreateOption string
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    Name string
    Specifies the name of the OS Disk.
    Caching string
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    DiskSizeGb int
    Specifies the size of the OS Disk in gigabytes.
    ImageUri string
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    ManagedDiskId string
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    ManagedDiskType string

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    OsType string
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    VhdUri string
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    WriteAcceleratorEnabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption String
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    name String
    Specifies the name of the OS Disk.
    caching String
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb Integer
    Specifies the size of the OS Disk in gigabytes.
    imageUri String
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    managedDiskId String
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    managedDiskType String

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    osType String
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    vhdUri String
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    writeAcceleratorEnabled Boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption string
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    name string
    Specifies the name of the OS Disk.
    caching string
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb number
    Specifies the size of the OS Disk in gigabytes.
    imageUri string
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    managedDiskId string
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    managedDiskType string

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    osType string
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    vhdUri string
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    writeAcceleratorEnabled boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    create_option str
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    name str
    Specifies the name of the OS Disk.
    caching str
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    disk_size_gb int
    Specifies the size of the OS Disk in gigabytes.
    image_uri str
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    managed_disk_id str
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    managed_disk_type str

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    os_type str
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    vhd_uri str
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    write_accelerator_enabled bool

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    createOption String
    Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
    name String
    Specifies the name of the OS Disk.
    caching String
    Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
    diskSizeGb Number
    Specifies the size of the OS Disk in gigabytes.
    imageUri String
    Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
    managedDiskId String
    Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
    managedDiskType String

    Specifies the type of Managed Disk which should be created. Possible values are Standard_LRS, StandardSSD_LRS or Premium_LRS.

    The following properties apply when using Unmanaged Disks:

    osType String
    Specifies the Operating System on the OS Disk. Possible values are Linux and Windows.
    vhdUri String
    Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
    writeAcceleratorEnabled Boolean

    Specifies if Write Accelerator is enabled on the disk. This can only be enabled on Premium_LRS managed disks with no caching and M-Series VMs. Defaults to false.

    The following properties apply when using Managed Disks:

    Import

    Virtual Machines can be imported using the resource id, e.g.

    $ pulumi import azure:compute/virtualMachine:VirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/machine1
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Azure Classic pulumi/pulumi-azure
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the azurerm Terraform Provider.
    azure logo

    We recommend using Azure Native.

    Azure Classic v6.2.0 published on Friday, Sep 27, 2024 by Pulumi