{
  "$id": "https://firefox-ci-tc.services.mozilla.com/schemas/worker-manager/v1/azure-deployment-resources.json#",
  "$schema": "https://firefox-ci-tc.services.mozilla.com/schemas/common/metaschema.json#",
  "additionalProperties": true,
  "description": "Schema for Azure resources used in traditional sequential (resource-by-resource) deployment.\nThis includes VM configuration, storage, networking, and OS profile settings.\nNote: workerManager and workerConfig are defined in the parent schema.\n",
  "properties": {
    "billingProfile": {
      "additionalProperties": true,
      "description": "https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#billingprofile",
      "properties": {
        "maxPrice": {
          "description": "the maximum price to pay for a spot virtual machine in US Dollars",
          "title": "Max Price",
          "type": "number"
        }
      },
      "required": [],
      "title": "Billing Profile",
      "type": "object"
    },
    "hardwareProfile": {
      "additionalProperties": true,
      "description": "https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#hardwareprofile",
      "properties": {
        "vmSize": {
          "title": "Virtual machine type",
          "type": "string"
        }
      },
      "required": [
        "vmSize"
      ],
      "title": "Hardware Profile",
      "type": "object"
    },
    "ignoreFailedProvisioningStates": {
      "description": "Deprecated - please use `workerManager.ignoreFailedProvisioningStates` instead",
      "items": {
        "type": "string"
      },
      "title": "Ignore failed provisioningStates",
      "type": "array",
      "uniqueItems": true
    },
    "location": {
      "description": "The Azure location this worker should be spawned in",
      "title": "Location",
      "type": "string"
    },
    "networkProfile": {
      "additionalProperties": true,
      "description": "Container object for network interfaces for the VM\nSee here: https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#networkprofile\n",
      "properties": {
        "networkInterfaces": {
          "items": {
            "additionalProperties": true,
            "properties": {
              "id": {
                "type": "string"
              },
              "primary": {
                "type": "boolean"
              }
            },
            "required": [],
            "title": "Network Interface Reference",
            "type": "object"
          },
          "title": "Network Interfaces",
          "type": "array",
          "uniqueItems": false
        }
      },
      "required": [
        "networkInterfaces"
      ],
      "title": "Network Profile",
      "type": "object"
    },
    "osProfile": {
      "additionalProperties": true,
      "description": "adminPassword, computerName, and customData are set by the provider and are not configurable\nhttps://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#osprofile\n",
      "required": [],
      "title": "OS Profile",
      "type": "object"
    },
    "priority": {
      "description": "virtual machine priority, i.e. Spot\nhttps://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#virtualmachineprioritytypes\n",
      "title": "Priority",
      "type": "string"
    },
    "storageProfile": {
      "additionalProperties": true,
      "properties": {
        "dataDisks": {
          "items": {
            "additionalProperties": true,
            "description": "See https://docs.microsoft.com/en-us/javascript/api/@azure/arm-compute/datadisk.\nNote that naming disks is not supported; any provided name will be overwritten with a\ndynamically generated name.\n",
            "properties": {},
            "required": [],
            "title": "Data Disk",
            "type": "object"
          },
          "title": "Data Disks",
          "type": "array",
          "uniqueItems": false
        },
        "imageReference": {
          "additionalProperties": true,
          "description": "https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#imagereference",
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "required": [],
          "type": "object"
        },
        "osDisk": {
          "additionalProperties": true,
          "description": "See https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#osdisk.\nNote that naming disks is not supported; any provided name will be overwritten with a\ndynamically generated name.\n",
          "properties": {
            "createOption": {
              "description": "FromImage creates the disk from the specified image\nhttps://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/createorupdate#diskcreateoptiontypes\n",
              "type": "string"
            }
          },
          "required": [],
          "title": "OS Disk",
          "type": "object"
        }
      },
      "required": [
        "osDisk"
      ],
      "title": "Storage Profile",
      "type": "object"
    },
    "subnetId": {
      "description": "The ID of the subnet workers should be spawned in",
      "title": "Subnet ID",
      "type": "string"
    }
  },
  "required": [
    "location",
    "subnetId",
    "hardwareProfile",
    "storageProfile"
  ],
  "title": "Azure Sequential Deployment Resources",
  "type": "object"
}