VirtualMachine Class

Describes a Virtual Machine.

Variables are only populated by the server, and will be ignored when sending a request.

All required parameters must be populated in order to send to server.

Inheritance
azure.mgmt.compute.v2023_09_01.models._models_py3.Resource
VirtualMachine

Constructor

VirtualMachine(*, location: str, tags: Dict[str, str] | None = None, plan: _models.Plan | None = None, identity: _models.VirtualMachineIdentity | None = None, zones: List[str] | None = None, extended_location: _models.ExtendedLocation | None = None, hardware_profile: _models.HardwareProfile | None = None, storage_profile: _models.StorageProfile | None = None, additional_capabilities: _models.AdditionalCapabilities | None = None, os_profile: _models.OSProfile | None = None, network_profile: _models.NetworkProfile | None = None, security_profile: _models.SecurityProfile | None = None, diagnostics_profile: _models.DiagnosticsProfile | None = None, availability_set: _models.SubResource | None = None, virtual_machine_scale_set: _models.SubResource | None = None, proximity_placement_group: _models.SubResource | None = None, priority: str | _models.VirtualMachinePriorityTypes | None = None, eviction_policy: str | _models.VirtualMachineEvictionPolicyTypes | None = None, billing_profile: _models.BillingProfile | None = None, host: _models.SubResource | None = None, host_group: _models.SubResource | None = None, license_type: str | None = None, extensions_time_budget: str | None = None, platform_fault_domain: int | None = None, scheduled_events_profile: _models.ScheduledEventsProfile | None = None, user_data: str | None = None, capacity_reservation: _models.CapacityReservationProfile | None = None, application_profile: _models.ApplicationProfile | None = None, **kwargs: Any)

Keyword-Only Parameters

Name Description
location
str

Resource location. Required.

tags

Resource tags.

plan

Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.

identity

The identity of the virtual machine, if configured.

zones

The virtual machine zones.

extended_location

The extended location of the Virtual Machine.

hardware_profile

Specifies the hardware settings for the virtual machine.

storage_profile

Specifies the storage settings for the virtual machine disks.

additional_capabilities

Specifies additional capabilities enabled or disabled on the virtual machine.

os_profile

Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.

network_profile

Specifies the network interfaces of the virtual machine.

security_profile

Specifies the Security related profile settings for the virtual machine.

diagnostics_profile

Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.

availability_set

Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.

virtual_machine_scale_set

Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.

proximity_placement_group

Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.

priority

Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01. Known values are: "Regular", "Low", and "Spot".

eviction_policy

Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. Known values are: "Deallocate" and "Delete".

billing_profile

Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.

host

Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.

host_group

Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.

license_type
str

Specifies that the image or disk that is being used was licensed on-premises. <br>``<br> Possible values for Windows Server operating system are: <br>``<br> Windows_Client <br>``<br> Windows_Server <br>``<br> Possible values for Linux Server operating system are: <br>``<br> RHEL_BYOS (for RHEL) <br>``<br> SLES_BYOS (for SUSE) <br>``<br> For more information, see Azure Hybrid Use Benefit for Windows Server <br>``<br> Azure Hybrid Use Benefit for Linux Server <br>``<br> Minimum api-version: 2015-06-15.

extensions_time_budget
str

Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.

platform_fault_domain
int

Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than

  1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
scheduled_events_profile

Specifies Scheduled Event related configurations.

user_data
str

UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.

capacity_reservation

Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.

application_profile

Specifies the gallery applications that should be made available to the VM/VMSS.

Variables

Name Description
id
str

Resource Id.

name
str

Resource name.

type
str

Resource type.

location
str

Resource location. Required.

tags

Resource tags.

plan

Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.

resources

The virtual machine child extension resources.

identity

The identity of the virtual machine, if configured.

zones

The virtual machine zones.

extended_location

The extended location of the Virtual Machine.

managed_by
str

ManagedBy is set to Virtual Machine Scale Set(VMSS) flex ARM resourceID, if the VM is part of the VMSS. This property is used by platform for internal resource group delete optimization.

etag
str

Etag is property returned in Create/Update/Get response of the VM, so that customer can supply it in the header to ensure optimistic updates.

hardware_profile

Specifies the hardware settings for the virtual machine.

storage_profile

Specifies the storage settings for the virtual machine disks.

additional_capabilities

Specifies additional capabilities enabled or disabled on the virtual machine.

os_profile

Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.

network_profile

Specifies the network interfaces of the virtual machine.

security_profile

Specifies the Security related profile settings for the virtual machine.

diagnostics_profile

Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.

availability_set

Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see Availability sets overview. For more information on Azure planned maintenance, see Maintenance and updates for Virtual Machines in Azure. Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.

virtual_machine_scale_set

Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.

proximity_placement_group

Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.

priority

Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01. Known values are: "Regular", "Low", and "Spot".

eviction_policy

Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. Known values are: "Deallocate" and "Delete".

billing_profile

Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.

host

Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.

host_group

Specifies information about the dedicated host group that the virtual machine resides in. Note: User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.

provisioning_state
str

The provisioning state, which only appears in the response.

instance_view

The virtual machine instance view.

license_type
str

Specifies that the image or disk that is being used was licensed on-premises. <br>``<br> Possible values for Windows Server operating system are: <br>``<br> Windows_Client <br>``<br> Windows_Server <br>``<br> Possible values for Linux Server operating system are: <br>``<br> RHEL_BYOS (for RHEL) <br>``<br> SLES_BYOS (for SUSE) <br>``<br> For more information, see Azure Hybrid Use Benefit for Windows Server <br>``<br> Azure Hybrid Use Benefit for Linux Server <br>``<br> Minimum api-version: 2015-06-15.

vm_id
str

Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.

extensions_time_budget
str

Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.

platform_fault_domain
int

Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than

  1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
scheduled_events_profile

Specifies Scheduled Event related configurations.

user_data
str

UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.

capacity_reservation

Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.

application_profile

Specifies the gallery applications that should be made available to the VM/VMSS.

time_created

Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.