{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "definitions": {
        "symbol": {
            "additionalProperties": false,
            "properties": {
                "children": {
                    "items": {
                        "$ref": "#/definitions/symbol"
                    },
                    "type": "array"
                },
                "deprecated": {
                    "type": "boolean"
                },
                "displayName": {
                    "description": "Short name used for visualizing the symbol in a hierarchical structure. For example for symbol with a name 'sap.ui.core.Control' would be only 'Control'.",
                    "minLength": 1,
                    "type": "string"
                },
                "extendedBy": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "extends": {
                    "type": "string"
                },
                "implementedBy": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "kind": {
                    "enum": [
                        "namespace",
                        "class",
                        "interface",
                        "enum",
                        "typedef",
                        "function"
                    ],
                    "type": "string"
                },
                "lib": {
                    "description": "Full library name",
                    "minLength": 1,
                    "type": "string"
                },
                "name": {
                    "minLength": 1,
                    "type": "string"
                },
                "visibility": {
                    "defaultValue": "public",
                    "enum": [
                        "public",
                        "protected",
                        "private",
                        "restricted"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "name",
                "kind",
                "lib",
                "visibility"
            ],
            "type": "object"
        },
        "version": {
            "pattern": "^\\d+(\\.\\d+(\\.\\d+([.-][a-zA-Z0-9_-]+)?)?)?$",
            "type": "string"
        }
    },
    "description": "Schema that describes the structure of the api-index.json files that the documentation build can create for the Demo Kit",
    "id": "http://schemas.sap.com/sapui5/designtime/api-index.json/1.0",
    "properties": {
        "$schema-ref": {
            "description": "A reference to this schema to make the structure of the file obvious.",
            "enum": [
                "http://schemas.sap.com/sapui5/designtime/api-index.json/1.0"
            ],
            "type": "string"
        },
        "name": {
            "description": "Name representing the scope of libraries from which symbols are listed in this file",
            "type": "string"
        },
        "symbols": {
            "items": {
                "$ref": "#/definitions/symbol"
            },
            "type": "array"
        },
        "version": {
            "$ref": "#/definitions/version"
        }
    },
    "required": [
        "$schema-ref",
        "version",
        "name",
        "symbols"
    ],
    "title": "Schema for api-index.json files",
    "type": "object"
}