Azure DevTest Labs · Schema
LabVirtualMachineCreationParameter
Properties for creating a virtual machine.
Microsoft AzureDevelopmentInfrastructureLabsTestingVirtual Machines
Properties
| Name | Type | Description |
|---|---|---|
| location | string | The location of the new virtual machine or environment |
| name | string | The name of the virtual machine or environment |
| properties | object | The properties of the resource. |
| tags | object | The tags of the resource. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/azure-test-labs/json-schema/azure-test-labs-lab-virtual-machine-creation-parameter-schema.json",
"title": "LabVirtualMachineCreationParameter",
"description": "Properties for creating a virtual machine.",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/azure-test-labs-labs-api-openapi.yml#/components/schemas/LabVirtualMachineCreationParameter",
"properties": {
"location": {
"description": "The location of the new virtual machine or environment",
"type": "string"
},
"name": {
"description": "The name of the virtual machine or environment",
"type": "string"
},
"properties": {
"$ref": "#/$defs/LabVirtualMachineCreationParameterProperties",
"description": "The properties of the resource.",
"x-ms-client-flatten": true
},
"tags": {
"additionalProperties": {
"type": "string"
},
"description": "The tags of the resource.",
"type": "object"
}
},
"type": "object",
"$defs": {
"ArtifactDeploymentStatusProperties": {
"description": "Properties of an artifact deployment.",
"properties": {
"artifactsApplied": {
"description": "The total count of the artifacts that were successfully applied.",
"format": "int32",
"type": "integer"
},
"deploymentStatus": {
"description": "The deployment status of the artifact.",
"type": "string"
},
"totalArtifacts": {
"description": "The total count of the artifacts that were tentatively applied.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ArtifactInstallProperties": {
"description": "Properties of an artifact.",
"properties": {
"artifactId": {
"description": "The artifact's identifier.",
"type": "string"
},
"artifactTitle": {
"description": "The artifact's title.",
"type": "string"
},
"deploymentStatusMessage": {
"description": "The status message from the deployment.",
"type": "string"
},
"installTime": {
"description": "The time that the artifact starts to install on the virtual machine.",
"format": "date-time",
"type": "string"
},
"parameters": {
"description": "The parameters of the artifact.",
"items": {
"$ref": "#/$defs/ArtifactParameterProperties"
},
"type": "array"
},
"status": {
"description": "The status of the artifact.",
"type": "string"
},
"vmExtensionStatusMessage": {
"description": "The status message from the virtual machine extension.",
"type": "string"
}
},
"type": "object"
},
"ArtifactParameterProperties": {
"description": "Properties of an artifact parameter.",
"properties": {
"name": {
"description": "The name of the artifact parameter.",
"type": "string"
},
"value": {
"description": "The value of the artifact parameter.",
"type": "string"
}
},
"type": "object"
},
"AttachNewDataDiskOptions": {
"description": "Properties to attach new disk to the Virtual Machine.",
"properties": {
"diskName": {
"description": "The name of the disk to be attached.",
"type": "string"
},
"diskSizeGiB": {
"description": "Size of the disk to be attached in GibiBytes.",
"format": "int32",
"type": "integer"
},
"diskType": {
"description": "The storage type for the disk (i.e. Standard, Premium).",
"enum": [
"Standard",
"Premium",
"StandardSSD"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "StorageType"
}
}
},
"type": "object"
},
"BulkCreationParameters": {
"description": "Parameters for creating multiple virtual machines as a single action.",
"properties": {
"instanceCount": {
"description": "The number of virtual machine instances to create.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"DataDiskProperties": {
"description": "Request body for adding a new or existing data disk to a virtual machine.",
"properties": {
"attachNewDataDiskOptions": {
"$ref": "#/$defs/AttachNewDataDiskOptions",
"description": "Specifies options to attach a new disk to the virtual machine."
},
"existingLabDiskId": {
"description": "Specifies the existing lab disk id to attach to virtual machine.",
"type": "string"
},
"hostCaching": {
"description": "Caching option for a data disk (i.e. None, ReadOnly, ReadWrite).",
"enum": [
"None",
"ReadOnly",
"ReadWrite"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "HostCachingOptions"
}
}
},
"type": "object"
},
"DayDetails": {
"description": "Properties of a daily schedule.",
"properties": {
"time": {
"description": "The time of day the schedule will occur.",
"type": "string"
}
},
"type": "object"
},
"GalleryImageReference": {
"description": "The reference information for an Azure Marketplace image.",
"properties": {
"offer": {
"description": "The offer of the gallery image.",
"type": "string"
},
"osType": {
"description": "The OS type of the gallery image.",
"type": "string"
},
"publisher": {
"description": "The publisher of the gallery image.",
"type": "string"
},
"sku": {
"description": "The SKU of the gallery image.",
"type": "string"
},
"version": {
"description": "The version of the gallery image.",
"type": "string"
}
},
"type": "object"
},
"HourDetails": {
"description": "Properties of an hourly schedule.",
"properties": {
"minute": {
"description": "Minutes of the hour the schedule will run.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"InboundNatRule": {
"description": "A rule for NAT - exposing a VM's port (backendPort) on the public IP address using a load balancer.",
"properties": {
"backendPort": {
"description": "The port to which the external traffic will be redirected.",
"format": "int32",
"type": "integer"
},
"frontendPort": {
"description": "The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically.",
"format": "int32",
"type": "integer"
},
"transportProtocol": {
"description": "The transport protocol for the endpoint.",
"enum": [
"Tcp",
"Udp"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "TransportProtocol"
}
}
},
"type": "object"
},
"LabVirtualMachineCreationParameterProperties": {
"description": "Properties for virtual machine creation.",
"properties": {
"allowClaim": {
"description": "Indicates whether another user can take ownership of the virtual machine",
"type": "boolean"
},
"artifactDeploymentStatus": {
"$ref": "#/$defs/ArtifactDeploymentStatusProperties",
"description": "The artifact deployment status for the virtual machine."
},
"artifacts": {
"description": "The artifacts to be installed on the virtual machine.",
"items": {
"$ref": "#/$defs/ArtifactInstallProperties"
},
"type": "array"
},
"bulkCreationParameters": {
"$ref": "#/$defs/BulkCreationParameters",
"description": "The number of virtual machine instances to create."
},
"computeId": {
"description": "The resource identifier (Microsoft.Compute) of the virtual machine.",
"type": "string"
},
"createdByUser": {
"description": "The email address of creator of the virtual machine.",
"type": "string"
},
"createdByUserId": {
"description": "The object identifier of the creator of the virtual machine.",
"type": "string"
},
"createdDate": {
"description": "The creation date of the virtual machine.",
"format": "date-time",
"type": "string"
},
"customImageId": {
"description": "The custom image identifier of the virtual machine.",
"type": "string"
},
"dataDiskParameters": {
"description": "New or existing data disks to attach to the virtual machine after creation",
"items": {
"$ref": "#/$defs/DataDiskProperties"
},
"type": "array"
},
"disallowPublicIpAddress": {
"description": "Indicates whether the virtual machine is to be created without a public IP address.",
"type": "boolean"
},
"environmentId": {
"description": "The resource ID of the environment that contains this virtual machine, if any.",
"type": "string"
},
"expirationDate": {
"description": "The expiration date for VM.",
"format": "date-time",
"type": "string"
},
"fqdn": {
"description": "The fully-qualified domain name of the virtual machine.",
"type": "string"
},
"galleryImageReference": {
"$ref": "#/$defs/GalleryImageReference",
"description": "The Microsoft Azure Marketplace image reference of the virtual machine."
},
"isAuthenticationWithSshKey": {
"description": "Indicates whether this virtual machine uses an SSH key for authentication.",
"type": "boolean"
},
"labSubnetName": {
"description": "The lab subnet name of the virtual machine.",
"type": "string"
},
"labVirtualNetworkId": {
"description": "The lab virtual network identifier of the virtual machine.",
"type": "string"
},
"lastKnownPowerState": {
"description": "Last known compute power state captured in DTL",
"type": "string"
},
"networkInterface": {
"$ref": "#/$defs/NetworkInterfaceProperties",
"description": "The network interface properties."
},
"notes": {
"description": "The notes of the virtual machine.",
"type": "string"
},
"osType": {
"description": "The OS type of the virtual machine.",
"type": "string"
},
"ownerObjectId": {
"description": "The object identifier of the owner of the virtual machine.",
"type": "string"
},
"ownerUserPrincipalName": {
"description": "The user principal name of the virtual machine owner.",
"type": "string"
},
"password": {
"description": "The password of the virtual machine administrator.",
"type": "string"
},
"planId": {
"description": "The id of the plan associated with the virtual machine image",
"type": "string"
},
"scheduleParameters": {
"description": "Virtual Machine schedules to be created",
"items": {
"$ref": "#/$defs/ScheduleCreationParameter"
},
"type": "array"
},
"size": {
"description": "The size of the virtual machine.",
"type": "string"
},
"sshKey": {
"description": "The SSH key of the virtual machine administrator.",
"type": "string"
},
"storageType": {
"description": "Storage type to use for virtual machine (i.e. Standard, Premium).",
"type": "string"
},
"userName": {
"description": "The user name of the virtual machine.",
"type": "string"
},
"virtualMachineCreationSource": {
"description": "Tells source of creation of lab virtual machine. Output property only.",
"enum": [
"FromCustomImage",
"FromGalleryImage",
"FromSharedGalleryImage"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "VirtualMachineCreationSource"
}
}
},
"type": "object"
},
"NetworkInterfaceProperties": {
"description": "Properties of a network interface.",
"properties": {
"dnsName": {
"description": "The DNS name.",
"type": "string"
},
"privateIpAddress": {
"description": "The private IP address.",
"type": "string"
},
"publicIpAddress": {
"description": "The public IP address.",
"type": "string"
},
"publicIpAddressId": {
"description": "The resource ID of the public IP address.",
"type": "string"
},
"rdpAuthority": {
"description": "The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol).",
"type": "string"
},
"sharedPublicIpAddressConfiguration": {
"$ref": "#/$defs/SharedPublicIpAddressConfiguration",
"description": "The configuration for sharing a public IP address across multiple virtual machines."
},
"sshAuthority": {
"description": "The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH.",
"type": "string"
},
"subnetId": {
"description": "The resource ID of the sub net.",
"type": "string"
},
"virtualNetworkId": {
"description": "The resource ID of the virtual network.",
"type": "string"
}
},
"type": "object"
},
"NotificationSettings": {
"description": "Notification settings for a schedule.",
"properties": {
"emailRecipient": {
"description": "The email recipient to send notifications to (can be a list of semi-colon separated email addresses).",
"type": "string"
},
"notificationLocale": {
"description": "The locale to use when sending a notification (fallback for unsupported languages is EN).",
"type": "string"
},
"status": {
"description": "If notifications are enabled for this schedule (i.e. Enabled, Disabled).",
"enum": [
"Enabled",
"Disabled"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "EnableStatus"
}
},
"timeInMinutes": {
"description": "Time in minutes before event at which notification will be sent.",
"format": "int32",
"type": "integer"
},
"webhookUrl": {
"description": "The webhook URL to which the notification will be sent.",
"type": "string"
}
},
"type": "object"
},
"ScheduleCreationParameter": {
"description": "Properties for creating a schedule.",
"properties": {
"location": {
"description": "The location of the new virtual machine or environment",
"type": "string"
},
"name": {
"description": "The name of the virtual machine or environment",
"type": "string"
},
"properties": {
"$ref": "#/$defs/ScheduleCreationParameterProperties",
"description": "The properties of the schedule.",
"x-ms-client-flatten": true
},
"tags": {
"additionalProperties": {
"type": "string"
},
"description": "The tags of the resource.",
"type": "object"
}
},
"type": "object"
},
"ScheduleCreationParameterProperties": {
"description": "Properties for schedule creation.",
"properties": {
"dailyRecurrence": {
"$ref": "#/$defs/DayDetails",
"description": "If the schedule will occur once each day of the week, specify the daily recurrence."
},
"hourlyRecurrence": {
"$ref": "#/$defs/HourDetails",
"description": "If the schedule will occur multiple times a day, specify the hourly recurrence."
},
"notificationSettings": {
"$ref": "#/$defs/NotificationSettings",
"description": "Notification settings."
},
"status": {
"description": "The status of the schedule (i.e. Enabled, Disabled)",
"enum": [
"Enabled",
"Disabled"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "EnableStatus"
}
},
"targetResourceId": {
"description": "The resource ID to which the schedule belongs",
"type": "string"
},
"taskType": {
"description": "The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).",
"type": "string"
},
"timeZoneId": {
"description": "The time zone ID (e.g. Pacific Standard time).",
"type": "string"
},
"weeklyRecurrence": {
"$ref": "#/$defs/WeekDetails",
"description": "If the schedule will occur only some days of the week, specify the weekly recurrence."
}
},
"type": "object"
},
"SharedPublicIpAddressConfiguration": {
"description": "Properties of a virtual machine that determine how it is connected to a load balancer.",
"properties": {
"inboundNatRules": {
"description": "The incoming NAT rules",
"items": {
"$ref": "#/$defs/InboundNatRule"
},
"type": "array"
}
},
"type": "object"
},
"WeekDetails": {
"description": "Properties of a weekly schedule.",
"properties": {
"time": {
"description": "The time of the day the schedule will occur.",
"type": "string"
},
"weekdays": {
"description": "The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.).",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/azure-test-labs-lab-virtual-machine-creation-parameter"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.