{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false,
  "definitions": {
    "runObject": {
      "type": "object",
      "required": ["tool"],
      "properties": {
        "tool": {
          "title": "The tool name",
          "description": "The name of the tool to run.",
          "type": "string",
          "enum": [
            "apt-get-install",
            "azurecli-login",
            "choco-install",
            "choco-upgrade",
            "dotnet-restore",
            "dotnet-toolinstall",
            "enable-iis",
            "msi-install",
            "npm-install",
            "nuget-restore",
            "require-azureartifactscredentialprovider",
            "require-azurecli",
            "require-choco",
            "require-dotnetcoresdk",
            "require-dotnetframeworksdk",
            "require-gitsubmodule",
            "require-mssql",
            "require-nodejs",
            "require-npm",
            "require-nuget",
            "require-psmodule",
            "require-vcpkg",
            "require-vscomponent",
            "require-winget",
            "set-env",
            "vcpkg-install",
            "windowsfeature-disable",
            "windowsfeature-enable",
            "windowsfeature-list",
            "winget-install",
            "wsl-install"
          ]
        },
        "input": {
          "title": "The tool input",
          "description": "The input varies by tool. For example, the required version number, the package-id, the input source file or source directory.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "additionalOptions": {
          "title": "Additional options",
          "description": "Additional Options to be appended to the tool's command line.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "comments": {
          "title": "Comments",
          "description": "Comments for this tool item. For documentation only; ignored by the tool.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "id": "https://json.schemastore.org/devinit.schema-4.0.json",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "run": {
      "title": "The list of tools to run",
      "description": "'devinit.exe init' runs this list of tools sequentially. See also 'devinit.exe run'.",
      "items": {
        "allOf": [
          {
            "$ref": "#/definitions/runObject"
          }
        ],
        "anyOf": [
          {
            "$ref": "#/definitions/runObject"
          }
        ]
      }
    },
    "comments": {
      "title": "Comments",
      "description": "Comments for this file. For documentation only; ignored by the tool.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": ["run"],
  "title": "Codespaces DevInit Configuration",
  "type": "object"
}
