{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "properties": {
        "aggregation": {
            "type": "string"
        },
        "devices": {
            "additionalProperties": false,
            "patternProperties": {
                "^[A-Fa-f\\d]{24}$": {
                    "additionalProperties": false,
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "points": {
                            "items": {
                                "additionalProperties": false,
                                "properties": {
                                    "data": {
                                        "additionalProperties": false,
                                        "patternProperties": {
                                            "^[0-9a-zA-Z_-]{1,255}$": {
                                                "type": [
                                                    "number",
                                                    "string",
                                                    "boolean"
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "time": {
                                        "_format": "date-time",
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "data",
                                    "time"
                                ],
                                "type": "object"
                            },
                            "type": "array"
                        }
                    },
                    "required": [
                        "name",
                        "points"
                    ],
                    "type": "object"
                }
            },
            "type": "object"
        },
        "end": {
            "_format": "date-time",
            "type": "string"
        },
        "resolution": {
            "type": "number"
        },
        "start": {
            "_format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "start",
        "end",
        "resolution",
        "aggregation",
        "devices"
    ],
    "type": "object"
}