Microsoft Azure · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Microsoft Azure Labs API
26 actions
26 updates
phrasing
extends
openapi/microsoft-azure-labs-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Microsoft Azure's API. It is a proposal applied on top of the contract, not a document Microsoft Azure publishes.
What the actions change
x-apievangelist-phrasing
Targets 26 · first 16 shown; the file carries all of them
$.info
$.paths['/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].put
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].delete
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].patch
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/claimAnyVm'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/exportResourceUsage'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/importVirtualMachine'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds'].post
$.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/providers/Microsoft.Education/labs'].get
$.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs'].get
$.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Microsoft Azure Labs API
version: 1.0.0
extends: openapi/microsoft-azure-labs-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 25
- target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs'].get
update:
x-apievangelist-phrasing:
intent: List DevTest labs in a subscription
effect: read
questions:
- Which DevTest Labs exist across my whole Azure subscription?
- Can I sort or cap the subscription-wide list of DevTest labs?
instructions:
- text: List every DevTest lab in subscription {sub}.
slots:
sub: path.subscriptionId
- text: Show the first {top} DevTest labs in subscription {sub}, ordered by {orderby}.
slots:
top: query.$top
sub: path.subscriptionId
orderby: query.$orderby
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs'].get
update:
x-apievangelist-phrasing:
intent: List DevTest labs in a resource group
effect: read
questions:
- What DevTest labs live in one particular resource group?
- Can I filter the DevTest labs of a resource group by name?
instructions:
- text: List the DevTest labs in resource group {rg} of subscription {sub}.
slots:
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Find DevTest labs in resource group {rg} matching {filter}.
slots:
rg: path.resourceGroupName
filter: query.$filter
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].get
update:
x-apievangelist-phrasing:
intent: Get a DevTest lab
effect: read
questions:
- How do I look up the settings of a single DevTest lab?
- Can I expand the default storage account when reading a DevTest lab?
instructions:
- text: Get DevTest lab {name} in resource group {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Show DevTest lab {name} with {expand} expanded.
slots:
name: path.name
expand: query.$expand
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].put
update:
x-apievangelist-phrasing:
intent: Create or replace a DevTest lab
effect: write
questions:
- How do I spin up a new DevTest lab in a resource group?
- Can I overwrite an existing DevTest lab's whole definition in one call?
instructions:
- text: Create DevTest lab {name} in resource group {rg} of subscription {sub} in region {location}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
location: requestBody.location
- text: Replace the DevTest lab {name} definition and tag it {tags}.
slots:
name: path.name
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a DevTest lab
effect: destructive
questions:
- Can I tear down a whole DevTest lab I no longer need?
- Is deleting a DevTest lab a long-running operation?
instructions:
- text: Delete DevTest lab {name} from resource group {rg} in subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Tear down the DevTest lab called {name}.
slots:
name: path.name
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}'].patch
update:
x-apievangelist-phrasing:
intent: Update tags on a DevTest lab
effect: write
questions:
- Can I change only the tags on a DevTest lab without redeploying it?
- Which DevTest lab properties does a patch actually change?
instructions:
- text: Set tags {tags} on DevTest lab {name} in resource group {rg}, subscription {sub}.
slots:
tags: requestBody.tags
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Retag DevTest lab {name} with {tags}.
slots:
name: path.name
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/claimAnyVm'].post
update:
x-apievangelist-phrasing:
intent: Claim any available VM in a DevTest lab
effect: write
questions:
- How do I grab a random claimable virtual machine from a DevTest lab?
- Can I claim whichever lab VM is free without picking one by name?
instructions:
- text: Claim any available VM in DevTest lab {name} (resource group {rg}, subscription {sub}).
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Get me a claimable virtual machine from lab {name}.
slots:
name: path.name
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment'].post
update:
x-apievangelist-phrasing:
intent: Create virtual machines in a DevTest lab
effect: write
questions:
- Can I provision new virtual machines inside a DevTest lab?
- What does the create-environment action build in a DevTest lab?
instructions:
- text: Create lab virtual machine {vmName} in DevTest lab {name} of resource group {rg}, subscription {sub}.
slots:
vmName: requestBody.name
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Provision a new VM in lab {name} at location {location}.
slots:
name: path.name
location: requestBody.location
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/exportResourceUsage'].post
update:
x-apievangelist-phrasing:
intent: Export DevTest lab resource usage to storage
effect: write
questions:
- How do I export a DevTest lab's resource usage into a storage account?
- Can I choose the start date for an exported lab usage report?
instructions:
- text: Export resource usage of DevTest lab {name} in resource group {rg}, subscription {sub} to blob SAS URI {sasUri}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
sasUri: requestBody.blobStorageAbsoluteSasUri
- text: Export lab {name} usage since {startDate} to {sasUri}.
slots:
name: path.name
startDate: requestBody.usageStartDate
sasUri: requestBody.blobStorageAbsoluteSasUri
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri'].post
update:
x-apievangelist-phrasing:
intent: Generate an upload URI for custom disk images
effect: write
questions:
- Where do I upload a custom disk image for a DevTest lab?
- Can I get an upload URL for a specific blob name in a lab?
instructions:
- text: Generate an upload URI for custom images in DevTest lab {name}, resource group {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Create an image upload URI for blob {blobName} in lab {name}.
slots:
blobName: requestBody.blobName
name: path.name
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/importVirtualMachine'].post
update:
x-apievangelist-phrasing:
intent: Import a VM into a DevTest lab
effect: write
questions:
- How do I move a virtual machine from one DevTest lab into another?
- Can I give a VM a new name while importing it into a different lab?
instructions:
- text: Import VM {sourceVmId} into DevTest lab {name} in resource group {rg}, subscription {sub}.
slots:
sourceVmId: requestBody.sourceVirtualMachineResourceId
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Import {sourceVmId} into lab {name} under the name {destName}.
slots:
sourceVmId: requestBody.sourceVirtualMachineResourceId
name: path.name
destName: requestBody.destinationVirtualMachineName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds'].post
update:
x-apievangelist-phrasing:
intent: List VHDs available for custom images
effect: read
questions:
- Which disk images can I turn into a custom image in a DevTest lab?
- What VHDs are sitting in my lab ready for image creation?
instructions:
- text: List VHDs available for custom images in DevTest lab {name}, resource group {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Show the VHDs I can build custom images from in lab {name}.
slots:
name: path.name
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/providers/Microsoft.Education/labs'].get
update:
x-apievangelist-phrasing:
intent: List education labs for a billing profile
effect: read
questions:
- Which Azure Education labs are billed to a given billing profile?
- Can I include deleted labs and budget details when listing a profile's education labs?
instructions:
- text: List education labs under billing account {ba} and billing profile {bp}.
slots:
ba: path.billingAccountName
bp: path.billingProfileName
- text: 'List education labs for profile {bp} in account {ba}, including deleted ones: {includeDeleted}.'
slots:
bp: path.billingProfileName
ba: path.billingAccountName
includeDeleted: query.includeDeleted
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs'].get
update:
x-apievangelist-phrasing:
intent: List education labs in an invoice section
effect: read
questions:
- What education labs sit under a specific invoice section?
- Can I see budget figures for the labs billed to one invoice section?
instructions:
- text: List education labs in invoice section {is} of billing profile {bp}, account {ba}.
slots:
is: path.invoiceSectionName
bp: path.billingProfileName
ba: path.billingAccountName
- text: 'Show education labs in invoice section {is} with budget included: {includeBudget}.'
slots:
is: path.invoiceSectionName
includeBudget: query.includeBudget
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default'].get
update:
x-apievangelist-phrasing:
intent: Get the education lab for an invoice section
effect: read
questions:
- How can I fetch the classroom lab tied to one invoice section?
- Can I check an education lab's budget from its invoice section?
instructions:
- text: Get the education lab for invoice section {is} under profile {bp} in billing account {ba}.
slots:
is: path.invoiceSectionName
bp: path.billingProfileName
ba: path.billingAccountName
- text: Show the default lab of invoice section {is}, budget details {includeBudget}.
slots:
is: path.invoiceSectionName
includeBudget: query.includeBudget
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default'].put
update:
x-apievangelist-phrasing:
intent: Create or update an education lab
effect: write
questions:
- Can I set up a new classroom lab under an invoice section?
- How do I change the settings of an existing education lab?
instructions:
- text: Create an education lab for invoice section {is} in billing profile {bp}, account {ba}.
slots:
is: path.invoiceSectionName
bp: path.billingProfileName
ba: path.billingAccountName
- text: Update the education lab of invoice section {is} with properties {properties}.
slots:
is: path.invoiceSectionName
properties: requestBody.properties
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default'].delete
update:
x-apievangelist-phrasing:
intent: Delete an education lab
effect: destructive
questions:
- Do all students have to be removed before an education lab can be deleted?
- Can I delete the classroom lab attached to an invoice section?
instructions:
- text: Delete the education lab for invoice section {is}, billing profile {bp}, account {ba}.
slots:
is: path.invoiceSectionName
bp: path.billingProfileName
ba: path.billingAccountName
- text: Remove the classroom lab under invoice section {is}.
slots:
is: path.invoiceSectionName
method: generated
generated: '2026-09-26'
- target: $.paths['/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default/generateInviteCode'].post
update:
x-apievangelist-phrasing:
intent: Generate a student invite code for a lab
effect: write
questions:
- How do I create an invite code so students can join my education lab?
- Can I change only the maximum student count without regenerating the code?
instructions:
- text: Generate an invite code for the lab in invoice section {is}, profile {bp}, account {ba}.
slots:
is: path.invoiceSectionName
bp: path.billingProfileName
ba: path.billingAccountName
- text: Generate a lab invite code allowing up to {max} students for invoice section {is}.
slots:
max: requestBody.maxStudentCount
is: path.invoiceSectionName
- text: Set the lab student limit to {max} for invoice section {is}, student-count-only update {onlyCount}.
slots:
max: requestBody.maxStudentCount
is: path.invoiceSectionName
onlyCount: query.onlyUpdateStudentCountParameter
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs'].get
update:
x-apievangelist-phrasing:
intent: List labs in a Lab Services lab account
effect: read
questions:
- Which classroom labs exist in a Lab Services lab account?
- Can I filter or limit the labs returned for one lab account?
instructions:
- text: List labs in lab account {la}, resource group {rg}, subscription {sub}.
slots:
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Find labs in lab account {la} matching {filter}.
slots:
la: path.labAccountName
filter: query.$filter
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}'].get
update:
x-apievangelist-phrasing:
intent: Get a lab in a Lab Services lab account
effect: read
questions:
- How do I view one lab inside a Lab Services lab account?
- Can I expand extra properties when reading a lab account's lab?
instructions:
- text: Get lab {lab} in lab account {la}, resource group {rg}, subscription {sub}.
slots:
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Show lab {lab} of lab account {la} expanding {expand}.
slots:
lab: path.labName
la: path.labAccountName
expand: query.$expand
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}'].put
update:
x-apievangelist-phrasing:
intent: Create or replace a lab in a lab account
effect: write
questions:
- Can I add a brand-new lab to an existing Lab Services lab account?
- Is there a call that replaces a lab account's lab definition outright?
instructions:
- text: Create lab {lab} in lab account {la}, resource group {rg}, subscription {sub}.
slots:
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Replace lab {lab} in lab account {la} at location {location}.
slots:
lab: path.labName
la: path.labAccountName
location: requestBody.location
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a lab from a lab account
effect: destructive
questions:
- How can I remove a lab from a Lab Services lab account?
- Does deleting a lab from a lab account finish right away?
instructions:
- text: Delete lab {lab} from lab account {la}, resource group {rg}, subscription {sub}.
slots:
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Remove lab {lab} belonging to lab account {la}.
slots:
lab: path.labName
la: path.labAccountName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}'].patch
update:
x-apievangelist-phrasing:
intent: Modify a lab in a lab account
effect: write
questions:
- Can I change a lab account lab's properties without replacing it?
- Which settings of a Lab Services lab can be patched in place?
instructions:
- text: Update lab {lab} in lab account {la}, resource group {rg}, subscription {sub} with {properties}.
slots:
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
properties: requestBody.properties
- text: Patch tags on lab {lab} in lab account {la} to {tags}.
slots:
lab: path.labName
la: path.labAccountName
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/addUsers'].post
update:
x-apievangelist-phrasing:
intent: Add users to a lab by email
effect: write
questions:
- How do I add students to a Lab Services lab by email address?
- Can I add several users to a lab in one request?
instructions:
- text: Add {emails} to lab {lab} in lab account {la}, resource group {rg}, subscription {sub}.
slots:
emails: requestBody.emailAddresses
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Invite the email addresses {emails} into lab {lab}.
slots:
emails: requestBody.emailAddresses
lab: path.labName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/register'].post
update:
x-apievangelist-phrasing:
intent: Register to a managed lab
effect: write
questions:
- What does a user call to register for a managed lab?
- Can I sign myself up to a lab in a lab account?
instructions:
- text: Register me to lab {lab} in lab account {la}, resource group {rg}, subscription {sub}.
slots:
lab: path.labName
la: path.labAccountName
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Register to managed lab {lab}.
slots:
lab: path.labName
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/microsoft-azure-labs-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.