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

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

azure.compute.VirtualMachine

Explore with Pulumi AI

Manages a Virtual Machine.

Disclaimers

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

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

Example Usage

From An Azure Platform Image)

This example provisions a Virtual Machine with Managed Disks.

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";

const config = new pulumi.Config();
const prefix = config.get("prefix") || "tfvmex";
const example = new azure.core.ResourceGroup("example", {
    name: `${prefix}-resources`,
    location: "West Europe",
});
const main = new azure.network.VirtualNetwork("main", {
    name: `${prefix}-network`,
    addressSpaces: ["10.0.0.0/16"],
    location: example.location,
    resourceGroupName: example.name,
});
const internal = new azure.network.Subnet("internal", {
    name: "internal",
    resourceGroupName: example.name,
    virtualNetworkName: main.name,
    addressPrefixes: ["10.0.2.0/24"],
});
const mainNetworkInterface = new azure.network.NetworkInterface("main", {
    name: `${prefix}-nic`,
    location: example.location,
    resourceGroupName: example.name,
    ipConfigurations: [{
        name: "testconfiguration1",
        subnetId: internal.id,
        privateIpAddressAllocation: "Dynamic",
    }],
});
const mainVirtualMachine = new azure.compute.VirtualMachine("main", {
    name: `${prefix}-vm`,
    location: example.location,
    resourceGroupName: example.name,
    networkInterfaceIds: [mainNetworkInterface.id],
    vmSize: "Standard_DS1_v2",
    storageImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
    storageOsDisk: {
        name: "myosdisk1",
        caching: "ReadWrite",
        createOption: "FromImage",
        managedDiskType: "Standard_LRS",
    },
    osProfile: {
        computerName: "hostname",
        adminUsername: "testadmin",
        adminPassword: "Password1234!",
    },
    osProfileLinuxConfig: {
        disablePasswordAuthentication: false,
    },
    tags: {
        environment: "staging",
    },
});
Copy
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",
    })
Copy
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
	})
}
Copy
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" },
        },
    });

});
Copy
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());

    }
}
Copy
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
Copy

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 This property is required. string
The unique name of the resource.
args This property is required. VirtualMachineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. 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 This property is required. string
The unique name of the resource.
args This property is required. VirtualMachineArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. VirtualMachineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. 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",
});
Copy
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"),
})
Copy
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());
Copy
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")
Copy
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",
});
Copy
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
Copy

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:

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

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

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

DeleteOsDiskOnTermination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

DeleteOsDiskOnTermination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination Boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

delete_os_disk_on_termination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination Boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

Outputs

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

Id string
The provider-assigned unique ID for this managed resource.
Id string
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.
id string
The provider-assigned unique ID for this managed resource.
id str
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.

Look up Existing VirtualMachine Resource

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

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

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

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

DeleteOsDiskOnTermination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

DeleteOsDiskOnTermination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination Boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

delete_os_disk_on_termination bool

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

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

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

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

deleteOsDiskOnTermination Boolean

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

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

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

One or more storage_data_disk blocks as defined below.

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

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

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

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

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

Supporting Types

VirtualMachineAdditionalCapabilities
, VirtualMachineAdditionalCapabilitiesArgs

UltraSsdEnabled
This property is required.
Changes to this property will trigger replacement.
bool

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

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

UltraSsdEnabled
This property is required.
Changes to this property will trigger replacement.
bool

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

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

ultraSsdEnabled
This property is required.
Changes to this property will trigger replacement.
Boolean

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

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

ultraSsdEnabled
This property is required.
Changes to this property will trigger replacement.
boolean

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

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

ultra_ssd_enabled
This property is required.
Changes to this property will trigger replacement.
bool

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

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

ultraSsdEnabled
This property is required.
Changes to this property will trigger replacement.
Boolean

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

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

VirtualMachineBootDiagnostics
, VirtualMachineBootDiagnosticsArgs

Enabled This property is required. bool
Should Boot Diagnostics be enabled for this Virtual Machine?
StorageUri This property is required. 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 This property is required. bool
Should Boot Diagnostics be enabled for this Virtual Machine?
StorageUri This property is required. 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 This property is required. Boolean
Should Boot Diagnostics be enabled for this Virtual Machine?
storageUri This property is required. 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 This property is required. boolean
Should Boot Diagnostics be enabled for this Virtual Machine?
storageUri This property is required. 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 This property is required. bool
Should Boot Diagnostics be enabled for this Virtual Machine?
storage_uri This property is required. 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 This property is required. Boolean
Should Boot Diagnostics be enabled for this Virtual Machine?
storageUri This property is required. 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 This property is required. string

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

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

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

IdentityIds List<string>

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

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

PrincipalId string
The Principal ID associated with this Managed Service Identity.
TenantId string
Type This property is required. string

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

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

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

IdentityIds []string

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

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

PrincipalId string
The Principal ID associated with this Managed Service Identity.
TenantId string
type This property is required. String

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

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

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

identityIds List<String>

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

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

principalId String
The Principal ID associated with this Managed Service Identity.
tenantId String
type This property is required. string

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

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

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

identityIds string[]

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

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

principalId string
The Principal ID associated with this Managed Service Identity.
tenantId string
type This property is required. str

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

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

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

identity_ids Sequence[str]

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

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

principal_id str
The Principal ID associated with this Managed Service Identity.
tenant_id str
type This property is required. String

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

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

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

identityIds List<String>

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

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

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

VirtualMachineOsProfile
, VirtualMachineOsProfileArgs

AdminUsername This property is required. string
Specifies the name of the local administrator account.
ComputerName
This property is required.
Changes to this property will trigger replacement.
string
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
AdminPassword string

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

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

CustomData Changes to this property will trigger replacement. 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 This property is required. string
Specifies the name of the local administrator account.
ComputerName
This property is required.
Changes to this property will trigger replacement.
string
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
AdminPassword string

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

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

CustomData Changes to this property will trigger replacement. 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 This property is required. String
Specifies the name of the local administrator account.
computerName
This property is required.
Changes to this property will trigger replacement.
String
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
adminPassword String

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

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

customData Changes to this property will trigger replacement. 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 This property is required. string
Specifies the name of the local administrator account.
computerName
This property is required.
Changes to this property will trigger replacement.
string
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
adminPassword string

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

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

customData Changes to this property will trigger replacement. 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 This property is required. str
Specifies the name of the local administrator account.
computer_name
This property is required.
Changes to this property will trigger replacement.
str
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
admin_password str

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

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

custom_data Changes to this property will trigger replacement. 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 This property is required. String
Specifies the name of the local administrator account.
computerName
This property is required.
Changes to this property will trigger replacement.
String
Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.
adminPassword String

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

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

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

VirtualMachineOsProfileLinuxConfig
, VirtualMachineOsProfileLinuxConfigArgs

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

VirtualMachineOsProfileLinuxConfigSshKey
, VirtualMachineOsProfileLinuxConfigSshKeyArgs

KeyData This property is required. string

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

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

Path This property is required. string

The path of the destination file on the virtual machine

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

KeyData This property is required. string

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

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

Path This property is required. string

The path of the destination file on the virtual machine

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

keyData This property is required. String

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

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

path This property is required. String

The path of the destination file on the virtual machine

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

keyData This property is required. string

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

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

path This property is required. string

The path of the destination file on the virtual machine

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

key_data This property is required. str

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

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

path This property is required. str

The path of the destination file on the virtual machine

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

keyData This property is required. String

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

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

path This property is required. String

The path of the destination file on the virtual machine

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

VirtualMachineOsProfileSecret
, VirtualMachineOsProfileSecretArgs

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

VirtualMachineOsProfileSecretVaultCertificate
, VirtualMachineOsProfileSecretVaultCertificateArgs

CertificateUrl This property is required. string

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VirtualMachineOsProfileWindowsConfig
, VirtualMachineOsProfileWindowsConfigArgs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig
, VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfigArgs

Component This property is required. string
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
Content This property is required. string
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
Pass This property is required. string
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
SettingName This property is required. string
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
Component This property is required. string
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
Content This property is required. string
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
Pass This property is required. string
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
SettingName This property is required. string
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
component This property is required. String
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
content This property is required. String
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
pass This property is required. String
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
settingName This property is required. String
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
component This property is required. string
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
content This property is required. string
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
pass This property is required. string
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
settingName This property is required. string
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
component This property is required. str
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
content This property is required. str
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
pass_ This property is required. str
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
setting_name This property is required. str
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
component This property is required. String
Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
content This property is required. String
Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
pass This property is required. String
Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
settingName This property is required. String
Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

VirtualMachineOsProfileWindowsConfigWinrm
, VirtualMachineOsProfileWindowsConfigWinrmArgs

Protocol This property is required. string
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
CertificateUrl string

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

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

Protocol This property is required. string
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
CertificateUrl string

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

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

protocol This property is required. String
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
certificateUrl String

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

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

protocol This property is required. string
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
certificateUrl string

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

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

protocol This property is required. str
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
certificate_url str

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

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

protocol This property is required. String
Specifies the protocol of listener. Possible values are HTTP or HTTPS.
certificateUrl String

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

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

VirtualMachinePlan
, VirtualMachinePlanArgs

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

VirtualMachineStorageDataDisk
, VirtualMachineStorageDataDiskArgs

CreateOption This property is required. string

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

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

Lun This property is required. 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 This property is required. string
The name of the Data Disk.
Caching string
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
DiskSizeGb int
Specifies the size of the data disk in gigabytes.
ManagedDiskId string

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

The following properties apply when using Unmanaged Disks:

ManagedDiskType string

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

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

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

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

The following properties apply when using Managed Disks:

CreateOption This property is required. string

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

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

Lun This property is required. 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 This property is required. string
The name of the Data Disk.
Caching string
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
DiskSizeGb int
Specifies the size of the data disk in gigabytes.
ManagedDiskId string

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

The following properties apply when using Unmanaged Disks:

ManagedDiskType string

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

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

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

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

The following properties apply when using Managed Disks:

createOption This property is required. String

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

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

lun This property is required. 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 This property is required. String
The name of the Data Disk.
caching String
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
diskSizeGb Integer
Specifies the size of the data disk in gigabytes.
managedDiskId String

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

The following properties apply when using Unmanaged Disks:

managedDiskType String

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

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

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

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

The following properties apply when using Managed Disks:

createOption This property is required. string

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

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

lun This property is required. 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 This property is required. string
The name of the Data Disk.
caching string
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
diskSizeGb number
Specifies the size of the data disk in gigabytes.
managedDiskId string

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

The following properties apply when using Unmanaged Disks:

managedDiskType string

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

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

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

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

The following properties apply when using Managed Disks:

create_option This property is required. str

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

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

lun This property is required. 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 This property is required. str
The name of the Data Disk.
caching str
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
disk_size_gb int
Specifies the size of the data disk in gigabytes.
managed_disk_id str

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

The following properties apply when using Unmanaged Disks:

managed_disk_type str

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

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

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

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

The following properties apply when using Managed Disks:

createOption This property is required. String

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

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

lun This property is required. 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 This property is required. String
The name of the Data Disk.
caching String
Specifies the caching requirements for the Data Disk. Possible values include None, ReadOnly and ReadWrite.
diskSizeGb Number
Specifies the size of the data disk in gigabytes.
managedDiskId String

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

The following properties apply when using Unmanaged Disks:

managedDiskType String

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

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

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

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

The following properties apply when using Managed Disks:

VirtualMachineStorageImageReference
, VirtualMachineStorageImageReferenceArgs

Id Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
Publisher Changes to this property will trigger replacement. string
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
Sku Changes to this property will trigger replacement. string
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
Version Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
Publisher Changes to this property will trigger replacement. string
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
Sku Changes to this property will trigger replacement. string
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
Version Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
publisher Changes to this property will trigger replacement. String
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
sku Changes to this property will trigger replacement. String
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
version Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
publisher Changes to this property will trigger replacement. string
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
sku Changes to this property will trigger replacement. string
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
version Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
publisher Changes to this property will trigger replacement. str
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
sku Changes to this property will trigger replacement. str
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
version Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.
publisher Changes to this property will trigger replacement. String
Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.
sku Changes to this property will trigger replacement. String
Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.
version Changes to this property will trigger replacement. 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 This property is required. string
Specifies how the OS Disk should be created. Possible values are Attach (managed disks only) and FromImage.
Name This property is required. string
Specifies the name of the OS Disk.
Caching string
Specifies the caching requirements for the OS Disk. Possible values include None, ReadOnly and ReadWrite.
DiskSizeGb int
Specifies the size of the OS Disk in gigabytes.
ImageUri string
Specifies the Image URI in the format publisherName:offer:skus:version. This field can also specify the VHD URI of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the os_type field must be set.
ManagedDiskId Changes to this property will trigger replacement. string
Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the create_option must be set to Attach. Changing this forces a new resource to be created.
ManagedDiskType string

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

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

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

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

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

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

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

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

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

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

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

The following properties apply when using Unmanaged Disks:

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

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

The following properties apply when using Managed Disks:

Import

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

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

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

Package Details

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