{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "properties": {
        "contentfulSpaces": {
            "type": "object",
            "patternProperties": {
                "^[a-zA-Z$_][a-zA-Z$_0-9]*$": {
                    "$ref": "#/definitions/contentfulSpaceConfig"
                }
            },
            "minProperties": 1,
            "additionalProperties": false
        },
        "outputDirectory": { "type": "string" },
        "typePrefix": { "type": "string" },
        "typeSuffix": { "type": "string" }
    },
    "required": ["contentfulSpaces"],
    "additionalProperties": false,
    "definitions": {
        "contentfulSpaceConfig": {
            "type": "object",
            "properties": {
                "spaceId": { "type": "string" },
                "accessToken": { "type": "string" },
                "environment": { "type": "string" },
                "host": { "type": "string" }
            },
            "required": ["spaceId", "accessToken", "environment"],
            "additionalProperties": false
        }
    }
}
