{
  "$schema": "http://json-schema.org/draft-07/schema",
  "title": "ui5-workspace.yaml",
  "description": "Schema for UI5 Tooling Workspace Configuration File (ui5-workspace.yaml)",
  "$comment": "See https://sap.github.io/ui5-tooling/",
  "type": "object",
  "required": [
    "specVersion",
    "metadata",
    "dependencyManagement"
  ],
  "properties": {
    "additionalProperties": false,
    "specVersion": {
      "enum": [
        "workspace/1.0"
      ],
      "errorMessage": "Unsupported \"specVersion\"\nYour UI5 CLI installation might be outdated.\nSupported specification versions: \"workspace/1.0\"\nFor details, see: https://sap.github.io/ui5-tooling/stable/pages/Workspace/#workspace-specification-versions"
    },
    "metadata": {
      "$ref": "#/definitions/metadata"
    },
    "dependencyManagement": {
      "$ref": "#/definitions/dependencyManagement"
    }
  },
  "definitions": {
    "metadata": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "additionalProperties": false,
        "name": {
          "type": "string",
          "minLength": 3,
          "maxLength": 80,
          "pattern": "^(?:@[0-9a-z-_.]+\\/)?[a-z][0-9a-z-_.]*$",
          "title": "Workspace Name",
          "description": "Identifier for the workspace configuration. Workspaces named 'default' will be used automatically by UI5 Tooling",
          "errorMessage": "Not a valid workspace name. It must consist of lowercase alphanumeric characters, dash, underscore, and period only. Additionally, it may contain an npm-style package scope. For details, see: https://sap.github.io/ui5-tooling/stable/pages/Workspace/#name"
        }
      }
    },
    "dependencyManagement": {
      "type": "object",
      "properties": {
        "additionalProperties": false,
        "resolutions": {
          "type": "array",
          "additionalProperties": false,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "path": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}