Microsoft Azure Cloud Virtual Machines API

VM lifecycle operations

OpenAPI Specification

azure-cloud-virtual-machines-api-openapi.yml Raw ↑
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