Azure Virtual Machines · Capability

Azure Virtual Machines REST API — Virtual Machines

Azure Virtual Machines REST API — Virtual Machines. 26 operations. Lead operation: Azure Virtual Machines List virtual machines by location. Self-contained Naftiko capability covering one Microsoft Azure Virtual Machines business surface.

Run with Naftiko Microsoft Azure Virtual MachinesVirtual Machines

What You Can Do

GET
Virtualmachineslistbylocation — Azure Virtual Machines List virtual machines by location
/v1/subscriptions/{subscriptionid}/providers/microsoft-compute/locations/{location}/virtualmachines
GET
Virtualmachineslistall — Azure Virtual Machines List all virtual machines in a subscription
/v1/subscriptions/{subscriptionid}/providers/microsoft-compute/virtualmachines
GET
Virtualmachineslist — Azure Virtual Machines List virtual machines in a resource group
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines
PUT
Virtualmachinescreateorupdate — Azure Virtual Machines Create or update a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}
GET
Virtualmachinesget — Azure Virtual Machines Get a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}
PATCH
Virtualmachinesupdate — Azure Virtual Machines Update a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}
DELETE
Virtualmachinesdelete — Azure Virtual Machines Delete a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}
POST
Virtualmachinesassesspatches — Azure Virtual Machines Assess patches on a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/assesspatches
POST
Virtualmachinesattachdetachdatadisks — Azure Virtual Machines Attach or detach data disks
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/attachdetachdatadisks
POST
Virtualmachinescapture — Azure Virtual Machines Capture a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/capture
POST
Virtualmachinesconverttomanageddisks — Azure Virtual Machines Convert to managed disks
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/converttomanageddisks
POST
Virtualmachinesdeallocate — Azure Virtual Machines Deallocate a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/deallocate
POST
Virtualmachinesgeneralize — Azure Virtual Machines Generalize a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/generalize
POST
Virtualmachinesinstallpatches — Azure Virtual Machines Install patches on a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/installpatches
GET
Virtualmachinesinstanceview — Azure Virtual Machines Get the instance view of a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/instanceview
POST
Virtualmachinesperformmaintenance — Azure Virtual Machines Perform maintenance on a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/performmaintenance
POST
Virtualmachinespoweroff — Azure Virtual Machines Power off a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/poweroff
POST
Virtualmachinesreapply — Azure Virtual Machines Reapply a virtual machine state
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/reapply
POST
Virtualmachinesredeploy — Azure Virtual Machines Redeploy a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/redeploy
POST
Virtualmachinesreimage — Azure Virtual Machines Reimage a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/reimage
POST
Virtualmachinesrestart — Azure Virtual Machines Restart a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/restart
POST
Virtualmachinesretrievebootdiagnosticsdata — Azure Virtual Machines Retrieve boot diagnostics data
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/retrievebootdiagnosticsdata
POST
Virtualmachinesruncommand — Azure Virtual Machines Run command on a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/runcommand
POST
Virtualmachinessimulateeviction — Azure Virtual Machines Simulate eviction of a spot virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/simulateeviction
POST
Virtualmachinesstart — Azure Virtual Machines Start a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/start
GET
Virtualmachineslistavailablesizes — Azure Virtual Machines List available sizes for a virtual machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/vmsizes

MCP Tools

azure-virtual-machines-list-virtual

Azure Virtual Machines List virtual machines by location

read-only idempotent
azure-virtual-machines-list-all

Azure Virtual Machines List all virtual machines in a subscription

read-only idempotent
azure-virtual-machines-list-virtual-2

Azure Virtual Machines List virtual machines in a resource group

read-only idempotent
azure-virtual-machines-create-update

Azure Virtual Machines Create or update a virtual machine

idempotent
azure-virtual-machines-get-virtual

Azure Virtual Machines Get a virtual machine

read-only idempotent
azure-virtual-machines-update-virtual

Azure Virtual Machines Update a virtual machine

idempotent
azure-virtual-machines-delete-virtual

Azure Virtual Machines Delete a virtual machine

idempotent
azure-virtual-machines-assess-patches

Azure Virtual Machines Assess patches on a virtual machine

azure-virtual-machines-attach-detach

Azure Virtual Machines Attach or detach data disks

azure-virtual-machines-capture-virtual

Azure Virtual Machines Capture a virtual machine

azure-virtual-machines-convert-managed

Azure Virtual Machines Convert to managed disks

azure-virtual-machines-deallocate-virtual

Azure Virtual Machines Deallocate a virtual machine

azure-virtual-machines-generalize-virtual

Azure Virtual Machines Generalize a virtual machine

azure-virtual-machines-install-patches

Azure Virtual Machines Install patches on a virtual machine

azure-virtual-machines-get-instance

Azure Virtual Machines Get the instance view of a virtual machine

read-only idempotent
azure-virtual-machines-perform-maintenance

Azure Virtual Machines Perform maintenance on a virtual machine

azure-virtual-machines-power-off

Azure Virtual Machines Power off a virtual machine

azure-virtual-machines-reapply-virtual

Azure Virtual Machines Reapply a virtual machine state

azure-virtual-machines-redeploy-virtual

Azure Virtual Machines Redeploy a virtual machine

azure-virtual-machines-reimage-virtual

Azure Virtual Machines Reimage a virtual machine

azure-virtual-machines-restart-virtual

Azure Virtual Machines Restart a virtual machine

azure-virtual-machines-retrieve-boot

Azure Virtual Machines Retrieve boot diagnostics data

read-only
azure-virtual-machines-run-command

Azure Virtual Machines Run command on a virtual machine

azure-virtual-machines-simulate-eviction

Azure Virtual Machines Simulate eviction of a spot virtual machine

azure-virtual-machines-start-virtual

Azure Virtual Machines Start a virtual machine

azure-virtual-machines-list-available

Azure Virtual Machines List available sizes for a virtual machine

read-only idempotent

Capability Spec

azure-virtual-machines-virtual-machines.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Azure Virtual Machines REST API — Virtual Machines
  description: 'Azure Virtual Machines REST API — Virtual Machines. 26 operations. Lead operation: Azure Virtual Machines
    List virtual machines by location. Self-contained Naftiko capability covering one Microsoft Azure Virtual Machines business
    surface.'
  tags:
  - Microsoft Azure Virtual Machines
  - Virtual Machines
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MICROSOFT_AZURE_VIRTUAL_MACHINES_API_KEY: MICROSOFT_AZURE_VIRTUAL_MACHINES_API_KEY
capability:
  consumes:
  - type: http
    namespace: azure-virtual-machines-virtual-machines
    baseUri: https://management.azure.com
    description: Azure Virtual Machines REST API — Virtual Machines business capability. Self-contained, no shared references.
    resources:
    - name: subscriptions-subscriptionId-providers-Microsoft.Compute-locations-location-virt
      path: /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines
      operations:
      - name: virtualmachineslistbylocation
        method: GET
        description: Azure Virtual Machines List virtual machines by location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-providers-Microsoft.Compute-virtualMachines
      path: /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines
      operations:
      - name: virtualmachineslistall
        method: GET
        description: Azure Virtual Machines List all virtual machines in a subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: statusOnly
          in: query
          type: string
          description: statusOnly=true enables fetching run time status of all Virtual Machines in the subscription.
        - name: $filter
          in: query
          type: string
          description: The system query option to filter VMs returned in the response.
        - name: $expand
          in: query
          type: string
          description: The expand expression to apply on the operation.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines
      operations:
      - name: virtualmachineslist
        method: GET
        description: Azure Virtual Machines List virtual machines in a resource group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: $filter
          in: query
          type: string
          description: The system query option to filter VMs returned in the response. Allowed value is 'virtualMachineScaleSet/id'
            eq /subscriptions/{subId}/resourceGroups/{rgName}/p
        - name: $expand
          in: query
          type: string
          description: The expand expression to apply on the operation. 'instanceView' retrieves a snapshot of the runtime
            properties of the virtual machine that is managed by the pla
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
      operations:
      - name: virtualmachinescreateorupdate
        method: PUT
        description: Azure Virtual Machines Create or update a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: virtualmachinesget
        method: GET
        description: Azure Virtual Machines Get a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: $expand
          in: query
          type: string
          description: The expand expression to apply on the operation. 'instanceView' retrieves a snapshot of the runtime
            properties of the virtual machine.
      - name: virtualmachinesupdate
        method: PATCH
        description: Azure Virtual Machines Update a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: virtualmachinesdelete
        method: DELETE
        description: Azure Virtual Machines Delete a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: forceDeletion
          in: query
          type: boolean
          description: Optional parameter to force delete virtual machines.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/assessPatches
      operations:
      - name: virtualmachinesassesspatches
        method: POST
        description: Azure Virtual Machines Assess patches on a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/attachDetachDataDisks
      operations:
      - name: virtualmachinesattachdetachdatadisks
        method: POST
        description: Azure Virtual Machines Attach or detach data disks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture
      operations:
      - name: virtualmachinescapture
        method: POST
        description: Azure Virtual Machines Capture a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/convertToManagedDisks
      operations:
      - name: virtualmachinesconverttomanageddisks
        method: POST
        description: Azure Virtual Machines Convert to managed disks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate
      operations:
      - name: virtualmachinesdeallocate
        method: POST
        description: Azure Virtual Machines Deallocate a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: hibernate
          in: query
          type: boolean
          description: Optional parameter to hibernate a virtual machine.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize
      operations:
      - name: virtualmachinesgeneralize
        method: POST
        description: Azure Virtual Machines Generalize a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/installPatches
      operations:
      - name: virtualmachinesinstallpatches
        method: POST
        description: Azure Virtual Machines Install patches on a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView
      operations:
      - name: virtualmachinesinstanceview
        method: GET
        description: Azure Virtual Machines Get the instance view of a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance
      operations:
      - name: virtualmachinesperformmaintenance
        method: POST
        description: Azure Virtual Machines Perform maintenance on a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff
      operations:
      - name: virtualmachinespoweroff
        method: POST
        description: Azure Virtual Machines Power off a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: skipShutdown
          in: query
          type: boolean
          description: The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful
            shutdown whereas false indicates otherwise.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reapply
      operations:
      - name: virtualmachinesreapply
        method: POST
        description: Azure Virtual Machines Reapply a virtual machine state
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy
      operations:
      - name: virtualmachinesredeploy
        method: POST
        description: Azure Virtual Machines Redeploy a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage
      operations:
      - name: virtualmachinesreimage
        method: POST
        description: Azure Virtual Machines Reimage a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart
      operations:
      - name: virtualmachinesrestart
        method: POST
        description: Azure Virtual Machines Restart a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/retrieveBootDiagnosticsData
      operations:
      - name: virtualmachinesretrievebootdiagnosticsdata
        method: POST
        description: Azure Virtual Machines Retrieve boot diagnostics data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sasUriExpirationTimeInMinutes
          in: query
          type: integer
          description: Expiration duration in minutes for the SAS URIs with a value between 1 to 1440 minutes.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/runCommand
      operations:
      - name: virtualmachinesruncommand
        method: POST
        description: Azure Virtual Machines Run command on a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction
      operations:
      - name: virtualmachinessimulateeviction
        method: POST
        description: Azure Virtual Machines Simulate eviction of a spot virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start
      operations:
      - name: virtualmachinesstart
        method: POST
        description: Azure Virtual Machines Start a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes
      operations:
      - name: virtualmachineslistavailablesizes
        method: GET
        description: Azure Virtual Machines List available sizes for a virtual machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.MICROSOFT_AZURE_VIRTUAL_MACHINES_API_KEY}}'
  exposes:
  - type: rest
    namespace: azure-virtual-machines-virtual-machines-rest
    port: 8080
    description: REST adapter for Azure Virtual Machines REST API — Virtual Machines. One Spectral-compliant resource per
      consumed operation, prefixed with /v1.
    resources:
    - path: /v1/subscriptions/{subscriptionid}/providers/microsoft-compute/locations/{location}/virtualmachines
      name: subscriptions-subscriptionid-providers-microsoft-compute-locations-location-virt
      description: REST surface for subscriptions-subscriptionId-providers-Microsoft.Compute-locations-location-virt.
      operations:
      - method: GET
        name: virtualmachineslistbylocation
        description: Azure Virtual Machines List virtual machines by location
        call: azure-virtual-machines-virtual-machines.virtualmachineslistbylocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/providers/microsoft-compute/virtualmachines
      name: subscriptions-subscriptionid-providers-microsoft-compute-virtualmachines
      description: REST surface for subscriptions-subscriptionId-providers-Microsoft.Compute-virtualMachines.
      operations:
      - method: GET
        name: virtualmachineslistall
        description: Azure Virtual Machines List all virtual machines in a subscription
        call: azure-virtual-machines-virtual-machines.virtualmachineslistall
        with:
          statusOnly: rest.statusOnly
          $filter: rest.$filter
          $expand: rest.$expand
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: GET
        name: virtualmachineslist
        description: Azure Virtual Machines List virtual machines in a resource group
        call: azure-virtual-machines-virtual-machines.virtualmachineslist
        with:
          $filter: rest.$filter
          $expand: rest.$expand
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: PUT
        name: virtualmachinescreateorupdate
        description: Azure Virtual Machines Create or update a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinescreateorupdate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: virtualmachinesget
        description: Azure Virtual Machines Get a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesget
        with:
          $expand: rest.$expand
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: virtualmachinesupdate
        description: Azure Virtual Machines Update a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesupdate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: virtualmachinesdelete
        description: Azure Virtual Machines Delete a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesdelete
        with:
          forceDeletion: rest.forceDeletion
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/assesspatches
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesassesspatches
        description: Azure Virtual Machines Assess patches on a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesassesspatches
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/attachdetachdatadisks
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesattachdetachdatadisks
        description: Azure Virtual Machines Attach or detach data disks
        call: azure-virtual-machines-virtual-machines.virtualmachinesattachdetachdatadisks
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/capture
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinescapture
        description: Azure Virtual Machines Capture a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinescapture
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/converttomanageddisks
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesconverttomanageddisks
        description: Azure Virtual Machines Convert to managed disks
        call: azure-virtual-machines-virtual-machines.virtualmachinesconverttomanageddisks
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/deallocate
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesdeallocate
        description: Azure Virtual Machines Deallocate a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesdeallocate
        with:
          hibernate: rest.hibernate
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/generalize
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesgeneralize
        description: Azure Virtual Machines Generalize a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesgeneralize
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/installpatches
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesinstallpatches
        description: Azure Virtual Machines Install patches on a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesinstallpatches
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/instanceview
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: GET
        name: virtualmachinesinstanceview
        description: Azure Virtual Machines Get the instance view of a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesinstanceview
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/performmaintenance
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesperformmaintenance
        description: Azure Virtual Machines Perform maintenance on a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesperformmaintenance
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/poweroff
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinespoweroff
        description: Azure Virtual Machines Power off a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinespoweroff
        with:
          skipShutdown: rest.skipShutdown
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/reapply
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesreapply
        description: Azure Virtual Machines Reapply a virtual machine state
        call: azure-virtual-machines-virtual-machines.virtualmachinesreapply
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/redeploy
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesredeploy
        description: Azure Virtual Machines Redeploy a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesredeploy
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/reimage
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesreimage
        description: Azure Virtual Machines Reimage a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesreimage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/restart
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesrestart
        description: Azure Virtual Machines Restart a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesrestart
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/retrievebootdiagnosticsdata
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesretrievebootdiagnosticsdata
        description: Azure Virtual Machines Retrieve boot diagnostics data
        call: azure-virtual-machines-virtual-machines.virtualmachinesretrievebootdiagnosticsdata
        with:
          sasUriExpirationTimeInMinutes: rest.sasUriExpirationTimeInMinutes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/runcommand
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinesruncommand
        description: Azure Virtual Machines Run command on a virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinesruncommand
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/simulateeviction
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: virtualmachinessimulateeviction
        description: Azure Virtual Machines Simulate eviction of a spot virtual machine
        call: azure-virtual-machines-virtual-machines.virtualmachinessimulateeviction
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-compute/virtualmachines/{vmname}/start
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
       

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/microsoft-azure-virtual-machines/refs/heads/main/capabilities/azure-virtual-machines-virtual-machines.yaml