Microsoft Azure Cloud Virtual Machines API
VM lifecycle operations
VM lifecycle operations
openapi: 3.1.0
info:
title: Azure Compute REST Availability Sets Virtual Machines API
version: '2024-03-01'
description: 'Azure Resource Manager (ARM) REST API for managing Azure compute resources
(virtual machines, virtual machine scale sets, disks, snapshots, images,
availability sets). Requests are sent to `https://management.azure.com` and
authenticated with Microsoft Entra ID OAuth 2.0 bearer tokens.
'
contact:
name: Azure Compute REST API
url: https://learn.microsoft.com/en-us/rest/api/compute/
servers:
- url: https://management.azure.com
description: Azure Resource Manager
tags:
- name: Virtual Machines
description: VM lifecycle operations
paths:
/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines:
get:
summary: List virtual machines in a subscription
operationId: listVirtualMachinesBySubscription
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'200':
description: A page of VMs
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineList'
security:
- entra: []
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines:
get:
summary: List virtual machines in a resource group
operationId: listVirtualMachinesByResourceGroup
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'200':
description: A page of VMs
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineList'
security:
- entra: []
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}:
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: path
name: vmName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
get:
summary: Get a virtual machine
operationId: getVirtualMachine
tags:
- Virtual Machines
responses:
'200':
description: Virtual machine
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachine'
security:
- entra: []
put:
summary: Create or update a virtual machine
operationId: createOrUpdateVirtualMachine
tags:
- Virtual Machines
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachine'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachine'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachine'
security:
- entra: []
delete:
summary: Delete a virtual machine
operationId: deleteVirtualMachine
tags:
- Virtual Machines
responses:
'202':
description: Accepted
'204':
description: No content
security:
- entra: []
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start
: post:
summary: Start a virtual machine
operationId: startVirtualMachine
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: path
name: vmName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'202':
description: Start in progress
security:
- entra: []
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate
: post:
summary: Deallocate a virtual machine
operationId: deallocateVirtualMachine
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: path
name: vmName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'202':
description: Deallocate in progress
security:
- entra: []
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart
: post:
summary: Restart a virtual machine
operationId: restartVirtualMachine
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: path
name: vmName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'202':
description: Restart in progress
security:
- entra: []
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff
: post:
summary: Power off a virtual machine
operationId: powerOffVirtualMachine
tags:
- Virtual Machines
parameters:
- in: path
name: subscriptionId
required: true
schema:
type: string
- in: path
name: resourceGroupName
required: true
schema:
type: string
- in: path
name: vmName
required: true
schema:
type: string
- in: query
name: api-version
required: true
schema:
type: string
default: '2024-03-01'
responses:
'202':
description: Power off in progress
security:
- entra: []
components:
schemas:
VirtualMachineList:
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/VirtualMachine'
nextLink:
type: string
VirtualMachine:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
location:
type: string
tags:
type: object
additionalProperties:
type: string
properties:
type: object
properties:
hardwareProfile:
type: object
properties:
vmSize:
type: string
storageProfile:
type: object
osProfile:
type: object
networkProfile:
type: object
provisioningState:
type: string
securitySchemes:
entra:
type: oauth2
description: Microsoft Entra ID OAuth 2.0 bearer token (scope https://management.azure.com/.default)
flows:
authorizationCode:
authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
scopes:
https://management.azure.com/.default: Manage Azure resources
clientCredentials:
tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
scopes:
https://management.azure.com/.default: Manage Azure resources