{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "JSON schema for Entry Point Regulation manifest files",
    "definitions": {
        "behavior": {
            "type": "string",
            "enum": [
                "block",
                "allow",
                "noAuth"
            ]
        },
        "rule": {
            "type": "object",
            "properties": {
                "path": {
                    "description": "Relative path to resource.",
                    "type": "string"
                },
                "regex": {
                    "description": "A regular expression for identifying paths to resources.",
                    "type": "string"
                },
                "types": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "navigation",
                            "image",
                            "stylesheet",
                            "script",
                            "xhr",
                            "other"
                        ]
                    }
                },
                "allowData": {
                    "description": "Determines if data is allowed at this path.",
                    "type": "boolean"
                }
            }
        }
    },
    "type": "object",
    "properties": {
        "site": {
            "description": "A fully qualified URL of your website.",
            "type": "string",
            "format": "uri"
        },
        "maxAge": {
            "description": "Set the max age HTTP cache expiration.",
            "type": "integer"
        },
        "reportUrl": {
            "type": "string",
            "format": "uri"
        },
        "defaultNavBehavior": {
            "$ref": "#/definitions/behavior"
        },
        "defaultResBehavior": {
            "$ref": "#/definitions/behavior"
        },
        "rules": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/rule"
            }
        }
    },
    "additionalProperties": true,
    "required": [
        "rules"
    ]
}