Azure DevTest Labs · Schema

FormulaFragment

A formula for creating a VM, specifying an image base and other parameters

Microsoft AzureDevelopmentInfrastructureLabsTestingVirtual Machines

Properties

Name Type Description
tags object The tags of the resource.
properties object The properties of the resource.
View JSON Schema on GitHub

JSON Schema

azure-test-labs-formula-fragment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-test-labs/json-schema/azure-test-labs-formula-fragment-schema.json",
  "title": "FormulaFragment",
  "description": "A formula for creating a VM, specifying an image base and other parameters",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-test-labs-formulas-api-openapi.yml#/components/schemas/FormulaFragment",
  "allOf": [
    {
      "$ref": "#/$defs/UpdateResource"
    }
  ],
  "properties": {
    "properties": {
      "$ref": "#/$defs/FormulaPropertiesFragment",
      "description": "The properties of the resource.",
      "x-ms-client-flatten": true
    }
  },
  "type": "object",
  "$defs": {
    "ArtifactDeploymentStatusPropertiesFragment": {
      "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"
    },
    "ArtifactInstallPropertiesFragment": {
      "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/ArtifactParameterPropertiesFragment"
          },
          "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"
    },
    "ArtifactParameterPropertiesFragment": {
      "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"
    },
    "AttachNewDataDiskOptionsFragment": {
      "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"
    },
    "BulkCreationParametersFragment": {
      "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"
    },
    "DataDiskPropertiesFragment": {
      "description": "Request body for adding a new or existing data disk to a virtual machine.",
      "properties": {
        "attachNewDataDiskOptions": {
          "$ref": "#/$defs/AttachNewDataDiskOptionsFragment",
          "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"
    },
    "DayDetailsFragment": {
      "description": "Properties of a daily schedule.",
      "properties": {
        "time": {
          "description": "The time of day the schedule will occur.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FormulaPropertiesFragment": {
      "description": "Properties of a formula.",
      "properties": {
        "author": {
          "description": "The author of the formula.",
          "type": "string"
        },
        "description": {
          "description": "The description of the formula.",
          "type": "string"
        },
        "formulaContent": {
          "$ref": "#/$defs/LabVirtualMachineCreationParameterFragment",
          "description": "The content of the formula."
        },
        "osType": {
          "description": "The OS type of the formula.",
          "type": "string"
        },
        "vm": {
          "$ref": "#/$defs/FormulaPropertiesFromVmFragment",
          "description": "Information about a VM from which a formula is to be created."
        }
      },
      "type": "object"
    },
    "FormulaPropertiesFromVmFragment": {
      "description": "Information about a VM from which a formula is to be created.",
      "properties": {
        "labVmId": {
          "description": "The identifier of the VM from which a formula is to be created.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GalleryImageReferenceFragment": {
      "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"
    },
    "HourDetailsFragment": {
      "description": "Properties of an hourly schedule.",
      "properties": {
        "minute": {
          "description": "Minutes of the hour the schedule will run.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "InboundNatRuleFragment": {
      "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"
    },
    "LabVirtualMachineCreationParameterFragment": {
      "description": "Properties for creating a virtual machine.",
      "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/LabVirtualMachineCreationParameterPropertiesFragment",
          "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"
    },
    "LabVirtualMachineCreationParameterPropertiesFragment": {
      "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/ArtifactDeploymentStatusPropertiesFragment",
          "description": "The artifact deployment status for the virtual machine."
        },
        "artifacts": {
          "description": "The artifacts to be installed on the virtual machine.",
          "items": {
            "$ref": "#/$defs/ArtifactInstallPropertiesFragment"
          },
          "type": "array"
        },
        "bulkCreationParameters": {
          "$ref": "#/$defs/BulkCreationParametersFragment",
          "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/DataDiskPropertiesFragment"
          },
          "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/GalleryImageReferenceFragment",
          "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/NetworkInterfacePropertiesFragment",
          "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/ScheduleCreationParameterFragment"
          },
          "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"
    },
    "NetworkInterfacePropertiesFragment": {
      "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/SharedPublicIpAddressConfigurationFragment",
          "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"
    },
    "NotificationSettingsFragment": {
      "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"
    },
    "ScheduleCreationParameterFragment": {
      "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/ScheduleCreationParameterPropertiesFragment",
          "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"
    },
    "ScheduleCreationParameterPropertiesFragment": {
      "description": "Properties for schedule creation.",
      "properties": {
        "dailyRecurrence": {
          "$ref": "#/$defs/DayDetailsFragment",
          "description": "If the schedule will occur once each day of the week, specify the daily recurrence."
        },
        "hourlyRecurrence": {
          "$ref": "#/$defs/HourDetailsFragment",
          "description": "If the schedule will occur multiple times a day, specify the hourly recurrence."
        },
        "notificationSettings": {
          "$ref": "#/$defs/NotificationSettingsFragment",
          "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/WeekDetailsFragment",
          "description": "If the schedule will occur only some days of the week, specify the weekly recurrence."
        }
      },
      "type": "object"
    },
    "SharedPublicIpAddressConfigurationFragment": {
      "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/InboundNatRuleFragment"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "UpdateResource": {
      "description": "Represents an update resource",
      "properties": {
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of the resource.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "WeekDetailsFragment": {
      "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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/azure-test-labs-formula-fragment"
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.