Azure DevTest Labs · Capability

DevTestLabsClient — Labs

DevTestLabsClient — Labs. 12 operations. Lead operation: Azure DevTest Labs Labs_ List by Subscription. Self-contained Naftiko capability covering one Azure Test Labs business surface.

Run with Naftiko Azure Test LabsLabs

What You Can Do

GET
Labslistbysubscription — Azure DevTest Labs Labs_ List by Subscription
/v1/subscriptions/{subscriptionid}/providers/microsoft-devtestlab/labs
GET
Labslistbyresourcegroup — Azure DevTest Labs Labs_ List by Resource Group
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs
DELETE
Labsdelete — Azure DevTest Labs Labs_ Delete
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}
GET
Labsget — Azure DevTest Labs Labs_ Get
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}
PATCH
Labsupdate — Azure DevTest Labs Labs_ Update
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}
PUT
Labscreateorupdate — Azure DevTest Labs Labs_ Create or Update
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}
POST
Labsclaimanyvm — Azure DevTest Labs Labs_ Claim Any Vm
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/claimanyvm
POST
Labscreateenvironment — Azure DevTest Labs Labs_ Create Environment
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/createenvironment
POST
Labsexportresourceusage — Azure DevTest Labs Labs_ Export Resource Usage
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/exportresourceusage
POST
Labsgenerateuploaduri — Azure DevTest Labs Labs_ Generate Upload Uri
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/generateuploaduri
POST
Labsimportvirtualmachine — Azure DevTest Labs Labs_ Import Virtual Machine
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/importvirtualmachine
POST
Labslistvhds — Azure DevTest Labs Labs_ List Vhds
/v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/listvhds

MCP Tools

azure-devtest-labs-labs-list

Azure DevTest Labs Labs_ List by Subscription

read-only idempotent
azure-devtest-labs-labs-list-2

Azure DevTest Labs Labs_ List by Resource Group

read-only idempotent
azure-devtest-labs-labs-delete

Azure DevTest Labs Labs_ Delete

idempotent
azure-devtest-labs-labs-get

Azure DevTest Labs Labs_ Get

read-only idempotent
azure-devtest-labs-labs-update

Azure DevTest Labs Labs_ Update

idempotent
azure-devtest-labs-labs-create

Azure DevTest Labs Labs_ Create or Update

idempotent
azure-devtest-labs-labs-claim

Azure DevTest Labs Labs_ Claim Any Vm

read-only
azure-devtest-labs-labs-create-2

Azure DevTest Labs Labs_ Create Environment

read-only
azure-devtest-labs-labs-export

Azure DevTest Labs Labs_ Export Resource Usage

read-only
azure-devtest-labs-labs-generate

Azure DevTest Labs Labs_ Generate Upload Uri

read-only
azure-devtest-labs-labs-import

Azure DevTest Labs Labs_ Import Virtual Machine

read-only
azure-devtest-labs-labs-list-3

Azure DevTest Labs Labs_ List Vhds

read-only

Capability Spec

azure-test-labs-labs.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: DevTestLabsClient — Labs
  description: 'DevTestLabsClient — Labs. 12 operations. Lead operation: Azure DevTest Labs Labs_ List by Subscription. Self-contained
    Naftiko capability covering one Azure Test Labs business surface.'
  tags:
  - Azure Test Labs
  - Labs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    AZURE_TEST_LABS_API_KEY: AZURE_TEST_LABS_API_KEY
capability:
  consumes:
  - type: http
    namespace: azure-test-labs-labs
    baseUri: https://management.azure.com
    description: DevTestLabsClient — Labs business capability. Self-contained, no shared references.
    resources:
    - name: subscriptions-subscriptionId-providers-Microsoft.DevTestLab-labs
      path: /subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs
      operations:
      - name: labslistbysubscription
        method: GET
        description: Azure DevTest Labs Labs_ List by Subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: $expand
          in: query
          type: string
          description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)'''
        - name: $filter
          in: query
          type: string
          description: 'The filter to apply to the operation. Example: ''$filter=contains(name,''myName'')'
        - name: $top
          in: query
          type: integer
          description: 'The maximum number of resources to return from the operation. Example: ''$top=10'''
        - name: $orderby
          in: query
          type: string
          description: 'The ordering expression for the results, using OData notation. Example: ''$orderby=name desc'''
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs
      operations:
      - name: labslistbyresourcegroup
        method: GET
        description: Azure DevTest Labs Labs_ List by Resource Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: $expand
          in: query
          type: string
          description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)'''
        - name: $filter
          in: query
          type: string
          description: 'The filter to apply to the operation. Example: ''$filter=contains(name,''myName'')'
        - name: $top
          in: query
          type: integer
          description: 'The maximum number of resources to return from the operation. Example: ''$top=10'''
        - name: $orderby
          in: query
          type: string
          description: 'The ordering expression for the results, using OData notation. Example: ''$orderby=name desc'''
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}
      operations:
      - name: labsdelete
        method: DELETE
        description: Azure DevTest Labs Labs_ Delete
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
      - name: labsget
        method: GET
        description: Azure DevTest Labs Labs_ Get
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: $expand
          in: query
          type: string
          description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)'''
      - name: labsupdate
        method: PATCH
        description: Azure DevTest Labs Labs_ Update
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: lab
          in: body
          type: string
          description: A lab.
          required: true
      - name: labscreateorupdate
        method: PUT
        description: Azure DevTest Labs Labs_ Create or Update
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: lab
          in: body
          type: string
          description: A lab.
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/claimAnyVm
      operations:
      - name: labsclaimanyvm
        method: POST
        description: Azure DevTest Labs Labs_ Claim Any Vm
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment
      operations:
      - name: labscreateenvironment
        method: POST
        description: Azure DevTest Labs Labs_ Create Environment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: labVirtualMachineCreationParameter
          in: body
          type: string
          description: Properties for creating a virtual machine.
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/exportResourceUsage
      operations:
      - name: labsexportresourceusage
        method: POST
        description: Azure DevTest Labs Labs_ Export Resource Usage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: exportResourceUsageParameters
          in: body
          type: string
          description: The parameters of the export operation.
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri
      operations:
      - name: labsgenerateuploaduri
        method: POST
        description: Azure DevTest Labs Labs_ Generate Upload Uri
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: generateUploadUriParameter
          in: body
          type: string
          description: Properties for generating an upload URI.
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/importVirtualMachine
      operations:
      - name: labsimportvirtualmachine
        method: POST
        description: Azure DevTest Labs Labs_ Import Virtual Machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
        - name: importLabVirtualMachineRequest
          in: body
          type: string
          description: This represents the payload required to import a virtual machine from a different lab into the current
            one
          required: true
    - name: subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof
      path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds
      operations:
      - name: labslistvhds
        method: POST
        description: Azure DevTest Labs Labs_ List Vhds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name of the lab.
          required: true
  exposes:
  - type: rest
    namespace: azure-test-labs-labs-rest
    port: 8080
    description: REST adapter for DevTestLabsClient — Labs. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/subscriptions/{subscriptionid}/providers/microsoft-devtestlab/labs
      name: subscriptions-subscriptionid-providers-microsoft-devtestlab-labs
      description: REST surface for subscriptions-subscriptionId-providers-Microsoft.DevTestLab-labs.
      operations:
      - method: GET
        name: labslistbysubscription
        description: Azure DevTest Labs Labs_ List by Subscription
        call: azure-test-labs-labs.labslistbysubscription
        with:
          $expand: rest.$expand
          $filter: rest.$filter
          $top: rest.$top
          $orderby: rest.$orderby
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: GET
        name: labslistbyresourcegroup
        description: Azure DevTest Labs Labs_ List by Resource Group
        call: azure-test-labs-labs.labslistbyresourcegroup
        with:
          $expand: rest.$expand
          $filter: rest.$filter
          $top: rest.$top
          $orderby: rest.$orderby
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: DELETE
        name: labsdelete
        description: Azure DevTest Labs Labs_ Delete
        call: azure-test-labs-labs.labsdelete
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: labsget
        description: Azure DevTest Labs Labs_ Get
        call: azure-test-labs-labs.labsget
        with:
          name: rest.name
          $expand: rest.$expand
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: labsupdate
        description: Azure DevTest Labs Labs_ Update
        call: azure-test-labs-labs.labsupdate
        with:
          name: rest.name
          lab: rest.lab
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: labscreateorupdate
        description: Azure DevTest Labs Labs_ Create or Update
        call: azure-test-labs-labs.labscreateorupdate
        with:
          name: rest.name
          lab: rest.lab
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/claimanyvm
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labsclaimanyvm
        description: Azure DevTest Labs Labs_ Claim Any Vm
        call: azure-test-labs-labs.labsclaimanyvm
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/createenvironment
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labscreateenvironment
        description: Azure DevTest Labs Labs_ Create Environment
        call: azure-test-labs-labs.labscreateenvironment
        with:
          name: rest.name
          labVirtualMachineCreationParameter: rest.labVirtualMachineCreationParameter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/exportresourceusage
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labsexportresourceusage
        description: Azure DevTest Labs Labs_ Export Resource Usage
        call: azure-test-labs-labs.labsexportresourceusage
        with:
          name: rest.name
          exportResourceUsageParameters: rest.exportResourceUsageParameters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/generateuploaduri
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labsgenerateuploaduri
        description: Azure DevTest Labs Labs_ Generate Upload Uri
        call: azure-test-labs-labs.labsgenerateuploaduri
        with:
          name: rest.name
          generateUploadUriParameter: rest.generateUploadUriParameter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/importvirtualmachine
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labsimportvirtualmachine
        description: Azure DevTest Labs Labs_ Import Virtual Machine
        call: azure-test-labs-labs.labsimportvirtualmachine
        with:
          name: rest.name
          importLabVirtualMachineRequest: rest.importLabVirtualMachineRequest
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscriptions/{subscriptionid}/resourcegroups/{resourcegroupname}/providers/microsoft-devtestlab/labs/{name}/listvhds
      name: subscriptions-subscriptionid-resourcegroups-resourcegroupname-providers-microsof
      description: REST surface for subscriptions-subscriptionId-resourceGroups-resourceGroupName-providers-Microsof.
      operations:
      - method: POST
        name: labslistvhds
        description: Azure DevTest Labs Labs_ List Vhds
        call: azure-test-labs-labs.labslistvhds
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: azure-test-labs-labs-mcp
    port: 9090
    transport: http
    description: MCP adapter for DevTestLabsClient — Labs. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: azure-devtest-labs-labs-list
      description: Azure DevTest Labs Labs_ List by Subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-test-labs-labs.labslistbysubscription
      with:
        $expand: tools.$expand
        $filter: tools.$filter
        $top: tools.$top
        $orderby: tools.$orderby
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-list-2
      description: Azure DevTest Labs Labs_ List by Resource Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-test-labs-labs.labslistbyresourcegroup
      with:
        $expand: tools.$expand
        $filter: tools.$filter
        $top: tools.$top
        $orderby: tools.$orderby
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-delete
      description: Azure DevTest Labs Labs_ Delete
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: azure-test-labs-labs.labsdelete
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-get
      description: Azure DevTest Labs Labs_ Get
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-test-labs-labs.labsget
      with:
        name: tools.name
        $expand: tools.$expand
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-update
      description: Azure DevTest Labs Labs_ Update
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: azure-test-labs-labs.labsupdate
      with:
        name: tools.name
        lab: tools.lab
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-create
      description: Azure DevTest Labs Labs_ Create or Update
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: azure-test-labs-labs.labscreateorupdate
      with:
        name: tools.name
        lab: tools.lab
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-claim
      description: Azure DevTest Labs Labs_ Claim Any Vm
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labsclaimanyvm
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-create-2
      description: Azure DevTest Labs Labs_ Create Environment
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labscreateenvironment
      with:
        name: tools.name
        labVirtualMachineCreationParameter: tools.labVirtualMachineCreationParameter
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-export
      description: Azure DevTest Labs Labs_ Export Resource Usage
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labsexportresourceusage
      with:
        name: tools.name
        exportResourceUsageParameters: tools.exportResourceUsageParameters
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-generate
      description: Azure DevTest Labs Labs_ Generate Upload Uri
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labsgenerateuploaduri
      with:
        name: tools.name
        generateUploadUriParameter: tools.generateUploadUriParameter
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-import
      description: Azure DevTest Labs Labs_ Import Virtual Machine
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labsimportvirtualmachine
      with:
        name: tools.name
        importLabVirtualMachineRequest: tools.importLabVirtualMachineRequest
      outputParameters:
      - type: object
        mapping: $.
    - name: azure-devtest-labs-labs-list-3
      description: Azure DevTest Labs Labs_ List Vhds
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: azure-test-labs-labs.labslistvhds
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.