We recommend using Azure Native.
azure.compute.VirtualMachine
Explore with Pulumi AI
Manages a Virtual Machine.
Disclaimers
Note: The
azure.compute.VirtualMachineresource has been superseded by theazure.compute.LinuxVirtualMachineandazure.compute.WindowsVirtualMachineresources. The existingazure.compute.VirtualMachineresource 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 theazure.compute.LinuxVirtualMachineandazure.compute.WindowsVirtualMachineresources.
Note: Data Disks can be attached either directly on the
azure.compute.VirtualMachineresource, or using theazure.compute.DataDiskAttachmentresource - 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={
        "create_option": "string",
        "name": "string",
        "caching": "string",
        "disk_size_gb": 0,
        "image_uri": "string",
        "managed_disk_id": "string",
        "managed_disk_type": "string",
        "os_type": "string",
        "vhd_uri": "string",
        "write_accelerator_enabled": False,
    },
    resource_group_name="string",
    os_profile_secrets=[{
        "source_vault_id": "string",
        "vault_certificates": [{
            "certificate_url": "string",
            "certificate_store": "string",
        }],
    }],
    os_profile_windows_config={
        "additional_unattend_configs": [{
            "component": "string",
            "content": "string",
            "pass_": "string",
            "setting_name": "string",
        }],
        "enable_automatic_upgrades": False,
        "provision_vm_agent": False,
        "timezone": "string",
        "winrms": [{
            "protocol": "string",
            "certificate_url": "string",
        }],
    },
    license_type="string",
    location="string",
    name="string",
    delete_os_disk_on_termination=False,
    os_profile={
        "admin_username": "string",
        "computer_name": "string",
        "admin_password": "string",
        "custom_data": "string",
    },
    os_profile_linux_config={
        "disable_password_authentication": False,
        "ssh_keys": [{
            "key_data": "string",
            "path": "string",
        }],
    },
    additional_capabilities={
        "ultra_ssd_enabled": False,
    },
    identity={
        "type": "string",
        "identity_ids": ["string"],
        "principal_id": "string",
        "tenant_id": "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=[{
        "create_option": "string",
        "lun": 0,
        "name": "string",
        "caching": "string",
        "disk_size_gb": 0,
        "managed_disk_id": "string",
        "managed_disk_type": "string",
        "vhd_uri": "string",
        "write_accelerator_enabled": False,
    }],
    storage_image_reference={
        "id": "string",
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string",
    },
    boot_diagnostics={
        "enabled": False,
        "storage_uri": "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
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The VirtualMachine resource accepts the following input properties:
- NetworkInterface List<string>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- ResourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- StorageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- VmSize string
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- AdditionalCapabilities VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- AvailabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- BootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- DeleteData boolDisks On Termination 
- 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. 
- DeleteOs boolDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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 VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- OsProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- OsProfile List<VirtualSecrets Machine Os Profile Secret> 
- One or more os_profile_secretsblocks as defined below.
- OsProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- Plan
VirtualMachine Plan 
- A planblock as defined below.
- PrimaryNetwork stringInterface Id 
- 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.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- StorageData List<VirtualDisks Machine Storage Data Disk> 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- StorageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- 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 
- NetworkInterface []stringIds 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- ResourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- StorageOs VirtualDisk Machine Storage Os Disk Args 
- A storage_os_diskblock as defined below.
- VmSize string
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- AdditionalCapabilities VirtualMachine Additional Capabilities Args 
- An additional_capabilitiesblock as defined below.
- AvailabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- BootDiagnostics VirtualMachine Boot Diagnostics Args 
- A boot_diagnosticsblock as defined below.
- DeleteData boolDisks On Termination 
- 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. 
- DeleteOs boolDisk On Termination 
- 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
VirtualMachine Identity Args 
- An identityblock 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_ClientandWindows_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 VirtualMachine Os Profile Args 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- OsProfile VirtualLinux Config Machine Os Profile Linux Config Args 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- OsProfile []VirtualSecrets Machine Os Profile Secret Args 
- One or more os_profile_secretsblocks as defined below.
- OsProfile VirtualWindows Config Machine Os Profile Windows Config Args 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- Plan
VirtualMachine Plan Args 
- A planblock as defined below.
- PrimaryNetwork stringInterface Id 
- 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.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- StorageData []VirtualDisks Machine Storage Data Disk Args 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- StorageImage VirtualReference Machine Storage Image Reference Args 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- 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 
- networkInterface List<String>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- resourceGroup StringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- vmSize String
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- additionalCapabilities VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- availabilitySet StringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- bootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- deleteData BooleanDisks On Termination 
- 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. 
- deleteOs BooleanDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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 VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile List<VirtualSecrets Machine Os Profile Secret> 
- One or more os_profile_secretsblocks as defined below.
- osProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan 
- A planblock as defined below.
- primaryNetwork StringInterface Id 
- 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.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- storageData List<VirtualDisks Machine Storage Data Disk> 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- 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 
- networkInterface string[]Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- resourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- vmSize string
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- additionalCapabilities VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- availabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- bootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- deleteData booleanDisks On Termination 
- 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. 
- deleteOs booleanDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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 VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile VirtualSecrets Machine Os Profile Secret[] 
- One or more os_profile_secretsblocks as defined below.
- osProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan 
- A planblock as defined below.
- primaryNetwork stringInterface Id 
- 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.
- proximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- storageData VirtualDisks Machine Storage Data Disk[] 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- {[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_ Sequence[str]ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- resource_group_ strname 
- 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_ Virtualdisk Machine Storage Os Disk Args 
- A storage_os_diskblock as defined below.
- vm_size str
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- additional_capabilities VirtualMachine Additional Capabilities Args 
- An additional_capabilitiesblock as defined below.
- availability_set_ strid 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- boot_diagnostics VirtualMachine Boot Diagnostics Args 
- A boot_diagnosticsblock as defined below.
- delete_data_ booldisks_ on_ termination 
- 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_ booldisk_ on_ termination 
- 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
VirtualMachine Identity Args 
- An identityblock 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_ClientandWindows_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 VirtualMachine Os Profile Args 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- os_profile_ Virtuallinux_ config Machine Os Profile Linux Config Args 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- os_profile_ Sequence[Virtualsecrets Machine Os Profile Secret Args] 
- One or more os_profile_secretsblocks as defined below.
- os_profile_ Virtualwindows_ config Machine Os Profile Windows Config Args 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan Args 
- A planblock as defined below.
- primary_network_ strinterface_ id 
- 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_ strgroup_ id 
- 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_ Sequence[Virtualdisks Machine Storage Data Disk Args] 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storage_image_ Virtualreference Machine Storage Image Reference Args 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- 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 
- networkInterface List<String>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- resourceGroup StringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageOs Property MapDisk 
- A storage_os_diskblock as defined below.
- vmSize String
- Specifies the size of the Virtual Machine. See also Azure VM Naming Conventions.
- additionalCapabilities Property Map
- An additional_capabilitiesblock as defined below.
- availabilitySet StringId 
- 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_diagnosticsblock as defined below.
- deleteData BooleanDisks On Termination 
- 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. 
- deleteOs BooleanDisk On Termination 
- 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 identityblock 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_ClientandWindows_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_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile Property MapLinux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile List<Property Map>Secrets 
- One or more os_profile_secretsblocks as defined below.
- osProfile Property MapWindows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan Property Map
- A planblock as defined below.
- primaryNetwork StringInterface Id 
- 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.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- storageData List<Property Map>Disks 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage Property MapReference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- 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) -> VirtualMachinefunc 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)resources:  _:    type: azure:compute:VirtualMachine    get:      id: ${id}- 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.
- AdditionalCapabilities VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- AvailabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- BootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- DeleteData boolDisks On Termination 
- 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. 
- DeleteOs boolDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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.
- NetworkInterface List<string>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- OsProfile VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- OsProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- OsProfile List<VirtualSecrets Machine Os Profile Secret> 
- One or more os_profile_secretsblocks as defined below.
- OsProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- Plan
VirtualMachine Plan 
- A planblock as defined below.
- PrimaryNetwork stringInterface Id 
- 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.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- ResourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- StorageData List<VirtualDisks Machine Storage Data Disk> 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- StorageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- StorageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- 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 VirtualMachine Additional Capabilities Args 
- An additional_capabilitiesblock as defined below.
- AvailabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- BootDiagnostics VirtualMachine Boot Diagnostics Args 
- A boot_diagnosticsblock as defined below.
- DeleteData boolDisks On Termination 
- 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. 
- DeleteOs boolDisk On Termination 
- 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
VirtualMachine Identity Args 
- An identityblock 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_ClientandWindows_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.
- NetworkInterface []stringIds 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- OsProfile VirtualMachine Os Profile Args 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- OsProfile VirtualLinux Config Machine Os Profile Linux Config Args 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- OsProfile []VirtualSecrets Machine Os Profile Secret Args 
- One or more os_profile_secretsblocks as defined below.
- OsProfile VirtualWindows Config Machine Os Profile Windows Config Args 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- Plan
VirtualMachine Plan Args 
- A planblock as defined below.
- PrimaryNetwork stringInterface Id 
- 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.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- ResourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- StorageData []VirtualDisks Machine Storage Data Disk Args 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- StorageImage VirtualReference Machine Storage Image Reference Args 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- StorageOs VirtualDisk Machine Storage Os Disk Args 
- A storage_os_diskblock as defined below.
- 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 VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- availabilitySet StringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- bootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- deleteData BooleanDisks On Termination 
- 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. 
- deleteOs BooleanDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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.
- networkInterface List<String>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- osProfile VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile List<VirtualSecrets Machine Os Profile Secret> 
- One or more os_profile_secretsblocks as defined below.
- osProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan 
- A planblock as defined below.
- primaryNetwork StringInterface Id 
- 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.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup StringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageData List<VirtualDisks Machine Storage Data Disk> 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- storageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- 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 VirtualMachine Additional Capabilities 
- An additional_capabilitiesblock as defined below.
- availabilitySet stringId 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- bootDiagnostics VirtualMachine Boot Diagnostics 
- A boot_diagnosticsblock as defined below.
- deleteData booleanDisks On Termination 
- 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. 
- deleteOs booleanDisk On Termination 
- 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
VirtualMachine Identity 
- An identityblock 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_ClientandWindows_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.
- networkInterface string[]Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- osProfile VirtualMachine Os Profile 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile VirtualLinux Config Machine Os Profile Linux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile VirtualSecrets Machine Os Profile Secret[] 
- One or more os_profile_secretsblocks as defined below.
- osProfile VirtualWindows Config Machine Os Profile Windows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan 
- A planblock as defined below.
- primaryNetwork stringInterface Id 
- 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.
- proximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup stringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageData VirtualDisks Machine Storage Data Disk[] 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage VirtualReference Machine Storage Image Reference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- storageOs VirtualDisk Machine Storage Os Disk 
- A storage_os_diskblock as defined below.
- {[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 VirtualMachine Additional Capabilities Args 
- An additional_capabilitiesblock as defined below.
- availability_set_ strid 
- The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- boot_diagnostics VirtualMachine Boot Diagnostics Args 
- A boot_diagnosticsblock as defined below.
- delete_data_ booldisks_ on_ termination 
- 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_ booldisk_ on_ termination 
- 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
VirtualMachine Identity Args 
- An identityblock 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_ClientandWindows_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_ Sequence[str]ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- os_profile VirtualMachine Os Profile Args 
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- os_profile_ Virtuallinux_ config Machine Os Profile Linux Config Args 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- os_profile_ Sequence[Virtualsecrets Machine Os Profile Secret Args] 
- One or more os_profile_secretsblocks as defined below.
- os_profile_ Virtualwindows_ config Machine Os Profile Windows Config Args 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan
VirtualMachine Plan Args 
- A planblock as defined below.
- primary_network_ strinterface_ id 
- 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_ strgroup_ id 
- 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_ strname 
- 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_ Sequence[Virtualdisks Machine Storage Data Disk Args] 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storage_image_ Virtualreference Machine Storage Image Reference Args 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- storage_os_ Virtualdisk Machine Storage Os Disk Args 
- A storage_os_diskblock as defined below.
- 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_capabilitiesblock as defined below.
- availabilitySet StringId 
- 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_diagnosticsblock as defined below.
- deleteData BooleanDisks On Termination 
- 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. 
- deleteOs BooleanDisk On Termination 
- 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 identityblock 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_ClientandWindows_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.
- networkInterface List<String>Ids 
- A list of Network Interface IDs which should be associated with the Virtual Machine.
- osProfile Property Map
- An os_profileblock as defined below. Required whencreate_optionin thestorage_os_diskblock is set toFromImage.
- osProfile Property MapLinux Config 
- (Required, when a Linux machine) An os_profile_linux_configblock as defined below.
- osProfile List<Property Map>Secrets 
- One or more os_profile_secretsblocks as defined below.
- osProfile Property MapWindows Config 
- (Required, when a Windows machine) An os_profile_windows_configblock as defined below.
- plan Property Map
- A planblock as defined below.
- primaryNetwork StringInterface Id 
- 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.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup StringName 
- Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.
- storageData List<Property Map>Disks 
- One or more - storage_data_diskblocks as defined below.- Please Note: Data Disks can also be attached either using this block or the - azure.compute.DataDiskAttachmentresource - but not both.
- storageImage Property MapReference 
- A storage_image_referenceblock as defined below. Changing this forces a new resource to be created.
- storageOs Property MapDisk 
- A storage_os_diskblock as defined below.
- 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        
- UltraSsd boolEnabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct documentation.
- UltraSsd boolEnabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct documentation.
- ultraSsd BooleanEnabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct documentation.
- ultraSsd booleanEnabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct documentation.
- ultra_ssd_ boolenabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct documentation.
- ultraSsd BooleanEnabled 
- 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,- Mand- Mv2. For more information see the- Azure Ultra Disk Storageproduct 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 - typeis 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 - typeis set to- UserAssignedor- 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 - typeis 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 - typeis set to- UserAssignedor- 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 - typeis 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 - typeis set to- UserAssignedor- 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 - typeis 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 - typeis set to- UserAssignedor- 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 - typeis 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 - typeis set to- UserAssignedor- 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 - typeis 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 - typeis set to- UserAssignedor- 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_configblock) 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_configblock) 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_configblock) 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_configblock) 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_configblock) 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_configblock) 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            
- DisablePassword boolAuthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- SshKeys List<VirtualMachine Os Profile Linux Config Ssh Key> 
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
- DisablePassword boolAuthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- SshKeys []VirtualMachine Os Profile Linux Config Ssh Key 
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
- disablePassword BooleanAuthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- sshKeys List<VirtualMachine Os Profile Linux Config Ssh Key> 
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
- disablePassword booleanAuthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- sshKeys VirtualMachine Os Profile Linux Config Ssh Key[] 
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
- disable_password_ boolauthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- ssh_keys Sequence[VirtualMachine Os Profile Linux Config Ssh Key] 
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
- disablePassword BooleanAuthentication 
- Specifies whether password authentication should be disabled. If set to false, anadmin_passwordmust be specified.
- sshKeys List<Property Map>
- One or more ssh_keysblocks as defined below. This field is required ifdisable_password_authenticationis set totrue.
VirtualMachineOsProfileLinuxConfigSshKey, VirtualMachineOsProfileLinuxConfigSshKeyArgs                
- KeyData string
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
- KeyData string
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
- keyData String
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
- keyData string
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
- key_data str
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
- keyData String
- The Public SSH Key which should be written to the - pathdefined 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 - pathis- /home/{username}/.ssh/authorized_keys.
VirtualMachineOsProfileSecret, VirtualMachineOsProfileSecretArgs          
- SourceVault stringId 
- Specifies the ID of the Key Vault to use.
- VaultCertificates List<VirtualMachine Os Profile Secret Vault Certificate> 
- One or more vault_certificatesblocks as defined below.
- SourceVault stringId 
- Specifies the ID of the Key Vault to use.
- VaultCertificates []VirtualMachine Os Profile Secret Vault Certificate 
- One or more vault_certificatesblocks as defined below.
- sourceVault StringId 
- Specifies the ID of the Key Vault to use.
- vaultCertificates List<VirtualMachine Os Profile Secret Vault Certificate> 
- One or more vault_certificatesblocks as defined below.
- sourceVault stringId 
- Specifies the ID of the Key Vault to use.
- vaultCertificates VirtualMachine Os Profile Secret Vault Certificate[] 
- One or more vault_certificatesblocks as defined below.
- source_vault_ strid 
- Specifies the ID of the Key Vault to use.
- vault_certificates Sequence[VirtualMachine Os Profile Secret Vault Certificate] 
- One or more vault_certificatesblocks as defined below.
- sourceVault StringId 
- Specifies the ID of the Key Vault to use.
- vaultCertificates List<Property Map>
- One or more vault_certificatesblocks 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_idproperty on the- azure.keyvault.Certificateresource.
- 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_idproperty on the- azure.keyvault.Certificateresource.
- 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_idproperty on the- azure.keyvault.Certificateresource.
- 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_idproperty on the- azure.keyvault.Certificateresource.
- 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_idproperty on the- azure.keyvault.Certificateresource.
- 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_idproperty on the- azure.keyvault.Certificateresource.
- 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            
- AdditionalUnattend List<VirtualConfigs Machine Os Profile Windows Config Additional Unattend Config> 
- An additional_unattend_configblock as defined below.
- EnableAutomatic boolUpgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- ProvisionVm boolAgent 
- 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<VirtualMachine Os Profile Windows Config Winrm> 
- One or more winrmblocks as defined below.
- AdditionalUnattend []VirtualConfigs Machine Os Profile Windows Config Additional Unattend Config 
- An additional_unattend_configblock as defined below.
- EnableAutomatic boolUpgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- ProvisionVm boolAgent 
- 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
[]VirtualMachine Os Profile Windows Config Winrm 
- One or more winrmblocks as defined below.
- additionalUnattend List<VirtualConfigs Machine Os Profile Windows Config Additional Unattend Config> 
- An additional_unattend_configblock as defined below.
- enableAutomatic BooleanUpgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- provisionVm BooleanAgent 
- 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<VirtualMachine Os Profile Windows Config Winrm> 
- One or more winrmblocks as defined below.
- additionalUnattend VirtualConfigs Machine Os Profile Windows Config Additional Unattend Config[] 
- An additional_unattend_configblock as defined below.
- enableAutomatic booleanUpgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- provisionVm booleanAgent 
- 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
VirtualMachine Os Profile Windows Config Winrm[] 
- One or more winrmblocks as defined below.
- additional_unattend_ Sequence[Virtualconfigs Machine Os Profile Windows Config Additional Unattend Config] 
- An additional_unattend_configblock as defined below.
- enable_automatic_ boolupgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- provision_vm_ boolagent 
- 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[VirtualMachine Os Profile Windows Config Winrm] 
- One or more winrmblocks as defined below.
- additionalUnattend List<Property Map>Configs 
- An additional_unattend_configblock as defined below.
- enableAutomatic BooleanUpgrades 
- Are automatic updates enabled on this Virtual Machine? Defaults to false.
- provisionVm BooleanAgent 
- 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 winrmblocks 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: FirstLogonCommandsandAutoLogon.
- 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: FirstLogonCommandsandAutoLogon.
- 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: FirstLogonCommandsandAutoLogon.
- 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: FirstLogonCommandsandAutoLogon.
- 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: FirstLogonCommandsandAutoLogon.
- 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: FirstLogonCommandsandAutoLogon.
VirtualMachineOsProfileWindowsConfigWinrm, VirtualMachineOsProfileWindowsConfigWinrmArgs              
- Protocol string
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
- Protocol string
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
- protocol String
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
- protocol string
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
- protocol str
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
- protocol String
- Specifies the protocol of listener. Possible values are HTTPorHTTPS.
- 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_certificatesblock within the- os_profile_secretsblock.- NOTE: This can be sourced from the - secret_idfield on the- azure.keyvault.Certificateresource.
VirtualMachinePlan, VirtualMachinePlanArgs      
VirtualMachineStorageDataDisk, VirtualMachineStorageDataDiskArgs          
- CreateOption string
- Specifies how the data disk should be created. Possible values are - Attach,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- DiskSize intGb 
- Specifies the size of the data disk in gigabytes.
- ManagedDisk stringId 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- VhdUri string
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- WriteAccelerator boolEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- DiskSize intGb 
- Specifies the size of the data disk in gigabytes.
- ManagedDisk stringId 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- VhdUri string
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- WriteAccelerator boolEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- diskSize IntegerGb 
- Specifies the size of the data disk in gigabytes.
- managedDisk StringId 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- managedDisk StringType 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- vhdUri String
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- writeAccelerator BooleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- diskSize numberGb 
- Specifies the size of the data disk in gigabytes.
- managedDisk stringId 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- managedDisk stringType 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- vhdUri string
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- writeAccelerator booleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- disk_size_ intgb 
- Specifies the size of the data disk in gigabytes.
- managed_disk_ strid 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- managed_disk_ strtype 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- vhd_uri str
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- write_accelerator_ boolenabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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,- FromImageand- Empty.- NOTE: If using an image that does not have data to be written to the Data Disk, use - Emptyas 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,ReadOnlyandReadWrite.
- diskSize NumberGb 
- Specifies the size of the data disk in gigabytes.
- managedDisk StringId 
- Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set - create_optionmust be set to- Attach.- The following properties apply when using Unmanaged Disks: 
- managedDisk StringType 
- Specifies the type of managed disk to create. Possible values are either - Standard_LRS,- StandardSSD_LRS,- Premium_LRSor- UltraSSD_LRS.- Note: - managed_disk_typeof type- UltraSSD_LRSis currently in preview and are not available to subscriptions that have not requested onboarding to- Azure Ultra Disk Storagepreview.- Azure Ultra Disk Storageis only available in- East US 2,- North Europe, and- Southeast Asiaregions. For more information see the- Azure Ultra Disk Storageproduct documentation, product blog and FAQ. You must also set- additional_capabilities.ultra_ssd_enabledto- true.
- vhdUri String
- Specifies the URI of the VHD file backing this Unmanaged Data Disk.
- writeAccelerator BooleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- Name string
- Specifies the name of the OS Disk.
- Caching string
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- DiskSize intGb 
- 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 theos_typefield must be set.
- ManagedDisk stringId 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- ManagedDisk stringType 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- OsType string
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- VhdUri string
- Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
- WriteAccelerator boolEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- Name string
- Specifies the name of the OS Disk.
- Caching string
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- DiskSize intGb 
- 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 theos_typefield must be set.
- ManagedDisk stringId 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- ManagedDisk stringType 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- OsType string
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- VhdUri string
- Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
- WriteAccelerator boolEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- name String
- Specifies the name of the OS Disk.
- caching String
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- diskSize IntegerGb 
- 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 theos_typefield must be set.
- managedDisk StringId 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- managedDisk StringType 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- osType String
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- vhdUri String
- Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
- writeAccelerator BooleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- name string
- Specifies the name of the OS Disk.
- caching string
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- diskSize numberGb 
- 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 theos_typefield must be set.
- managedDisk stringId 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- managedDisk stringType 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- osType string
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- vhdUri string
- Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
- writeAccelerator booleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- name str
- Specifies the name of the OS Disk.
- caching str
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- disk_size_ intgb 
- 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 theos_typefield must be set.
- managed_disk_ strid 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- managed_disk_ strtype 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- os_type str
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- 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_ boolenabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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) andFromImage.
- name String
- Specifies the name of the OS Disk.
- caching String
- Specifies the caching requirements for the OS Disk. Possible values include None,ReadOnlyandReadWrite.
- diskSize NumberGb 
- 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 theos_typefield must be set.
- managedDisk StringId 
- 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_optionmust be set toAttach. Changing this forces a new resource to be created.
- managedDisk StringType 
- Specifies the type of Managed Disk which should be created. Possible values are - Standard_LRS,- StandardSSD_LRSor- Premium_LRS.- The following properties apply when using Unmanaged Disks: 
- osType String
- Specifies the Operating System on the OS Disk. Possible values are LinuxandWindows.
- vhdUri String
- Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.
- writeAccelerator BooleanEnabled 
- Specifies if Write Accelerator is enabled on the disk. This can only be enabled on - Premium_LRSmanaged 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 azurermTerraform Provider.