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