Azure DevTest Labs · Schema
CustomImage
A custom image.
Microsoft AzureDevelopmentInfrastructureLabsTestingVirtual Machines
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The identifier of the resource. |
| location | string | The location of the resource. |
| name | string | The name of the resource. |
| tags | object | The tags of the resource. |
| type | string | The type of the resource. |
| properties | object | The properties 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-custom-image-schema.json",
"title": "CustomImage",
"description": "A custom image.",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/azure-test-labs-customimages-api-openapi.yml#/components/schemas/CustomImage",
"allOf": [
{
"$ref": "#/$defs/Resource"
}
],
"properties": {
"properties": {
"$ref": "#/$defs/CustomImageProperties",
"description": "The properties of the resource.",
"x-ms-client-flatten": true
}
},
"required": [
"properties"
],
"type": "object",
"$defs": {
"CustomImageProperties": {
"description": "Properties of a custom image.",
"properties": {
"author": {
"description": "The author of the custom image.",
"type": "string"
},
"creationDate": {
"description": "The creation date of the custom image.",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"customImagePlan": {
"$ref": "#/$defs/CustomImagePropertiesFromPlan",
"description": "Storage information about the plan related to this custom image"
},
"dataDiskStorageInfo": {
"description": "Storage information about the data disks present in the custom image",
"items": {
"$ref": "#/$defs/DataDiskStorageTypeInfo"
},
"type": "array"
},
"description": {
"description": "The description of the custom image.",
"type": "string"
},
"isPlanAuthorized": {
"description": "Whether or not the custom images underlying offer/plan has been enabled for programmatic deployment",
"type": "boolean"
},
"managedImageId": {
"description": "The Managed Image Id backing the custom image.",
"type": "string"
},
"managedSnapshotId": {
"description": "The Managed Snapshot Id backing the custom image.",
"type": "string"
},
"provisioningState": {
"description": "The provisioning status of the resource.",
"readOnly": true,
"type": "string"
},
"uniqueIdentifier": {
"description": "The unique immutable identifier of a resource (Guid).",
"readOnly": true,
"type": "string"
},
"vhd": {
"$ref": "#/$defs/CustomImagePropertiesCustom",
"description": "The VHD from which the image is to be created."
},
"vm": {
"$ref": "#/$defs/CustomImagePropertiesFromVm",
"description": "The virtual machine from which the image is to be created."
}
},
"type": "object"
},
"CustomImagePropertiesCustom": {
"description": "Properties for creating a custom image from a VHD.",
"properties": {
"imageName": {
"description": "The image name.",
"type": "string"
},
"osType": {
"description": "The OS type of the custom image (i.e. Windows, Linux)",
"enum": [
"Windows",
"Linux",
"None"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "CustomImageOsType"
}
},
"sysPrep": {
"description": "Indicates whether sysprep has been run on the VHD.",
"type": "boolean"
}
},
"required": [
"osType"
],
"type": "object"
},
"CustomImagePropertiesFromPlan": {
"description": "Properties for plan on a custom image.",
"properties": {
"id": {
"description": "The id of the plan, equivalent to name of the plan",
"type": "string"
},
"offer": {
"description": "The offer for the plan from the marketplace image the custom image is derived from",
"type": "string"
},
"publisher": {
"description": "The publisher for the plan from the marketplace image the custom image is derived from",
"type": "string"
}
},
"type": "object"
},
"CustomImagePropertiesFromVm": {
"description": "Properties for creating a custom image from a virtual machine.",
"properties": {
"linuxOsInfo": {
"$ref": "#/$defs/LinuxOsInfo",
"description": "The Linux OS information of the VM."
},
"sourceVmId": {
"description": "The source vm identifier.",
"type": "string"
},
"windowsOsInfo": {
"$ref": "#/$defs/WindowsOsInfo",
"description": "The Windows OS information of the VM."
}
},
"type": "object"
},
"DataDiskStorageTypeInfo": {
"description": "Storage information about the data disks present in the custom image",
"properties": {
"lun": {
"description": "Disk Lun",
"type": "string"
},
"storageType": {
"description": "Disk Storage Type",
"enum": [
"Standard",
"Premium",
"StandardSSD"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "StorageType"
}
}
},
"type": "object"
},
"LinuxOsInfo": {
"description": "Information about a Linux OS.",
"properties": {
"linuxOsState": {
"description": "The state of the Linux OS (i.e. NonDeprovisioned, DeprovisionRequested, DeprovisionApplied).",
"enum": [
"NonDeprovisioned",
"DeprovisionRequested",
"DeprovisionApplied"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "LinuxOsState"
}
}
},
"type": "object"
},
"Resource": {
"description": "An Azure resource.",
"properties": {
"id": {
"description": "The identifier of the resource.",
"readOnly": true,
"type": "string"
},
"location": {
"description": "The location of the resource.",
"type": "string"
},
"name": {
"description": "The name of the resource.",
"readOnly": true,
"type": "string"
},
"tags": {
"additionalProperties": {
"type": "string"
},
"description": "The tags of the resource.",
"type": "object"
},
"type": {
"description": "The type of the resource.",
"readOnly": true,
"type": "string"
}
},
"type": "object",
"x-ms-azure-resource": true
},
"WindowsOsInfo": {
"description": "Information about a Windows OS.",
"properties": {
"windowsOsState": {
"description": "The state of the Windows OS (i.e. NonSysprepped, SysprepRequested, SysprepApplied).",
"enum": [
"NonSysprepped",
"SysprepRequested",
"SysprepApplied"
],
"type": "string",
"x-ms-enum": {
"modelAsString": true,
"name": "WindowsOsState"
}
}
},
"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-custom-image"
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.