{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "scope": {
            "type": "object",
            "properties": {
                "parameter": {
                    "type": "string"
                }
            }
        },
        "gauge": {
            "type": "object",
            "description": "Display properties of the gauges",
            "properties": {
                "interval": {
                    "type": "number",
                    "description": "Slide interval in milliseconds",
                    "default": 4500
                }
            }
        },
        "events": {
            "type": "object",
            "description": "Which events to display in the grid.",
            "required": [
                "resource"
            ],
            "properties": {
                "resource": {
                    "type": "string",
                    "description": "The name of the events resource to pull events from",
                    "format": "topic"
                },
                "types": {
                    "type": "array",
                    "description": "The types of events that should be listed (all other events will be ignored)",
                    "items": {
                        "type": "string"
                    },
                    "default": []
                }
            }
        },
        "repos": {
            "type": "object",
            "description": "Which projects to display in the grid.",
            "required": [
                "resource"
            ],
            "properties": {
                "resource": {
                    "type": "string",
                    "description": "The name of the projects resource, a list of repository resources",
                    "format": "topic"
                }
            }
        },
        "search": {
            "type": "object",
            "required": [
                "resource"
            ],
            "properties": {
                "resource": {
                    "type": "string",
                    "description": "The name of the resource to subscribe to for search queries.",
                    "format": "topic"
                },
                "fields": {
                    "type": "array",
                    "description": "The list of JSON pointers (or paths) pointing to object members to match.",
                    "items": {
                        "type": [
                            "string",
                            "array"
                        ]
                    }
                },
                "match": {
                    "type": "object",
                    "description": "A mapping from regular expressions to field lists. The last matching group will be searched in the corresponding object members.",
                    "additionalProperties": {
                        "type": "array",
                        "description": "The list of JSON pointers similar to the 'fields' list.",
                        "items": {
                            "type": [
                                "string",
                                "array"
                            ]
                        }
                    }
                }
            }
        }
    }
}