{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "items": { "type": "array", "items": { "title": "Dashboard", "description": "Schema for a single Dashboard", "type": "object", "properties": { "id": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "dashboardId": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "creationDate": { "type": "string", "format": "date-time" }, "lastUpdated": { "type": "string", "format": "date-time" }, "ownerId": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "ownerType": { "type": "string", "enum": [ "user", "organization" ] }, "name": { "type": "string", "minLength": 1, "maxLength": 255 }, "description": { "type": "string", "maxLength": 32767 }, "refreshRate": { "type": "number", "minimum": 5, "maximum": 600 }, "isPasswordProtected": { "type": "boolean" }, "public": { "type": "boolean" }, "reportConfigs": { "type": "array", "max": 10, "items": { "type": "object", "additionalProperties": false, "required": [ "cron", "toEmail" ], "properties": { "id": { "type": "string", "max": 14 }, "cron": { "type": "string" }, "toEmail": { "type": "array", "min": 1, "max": 10, "items": { "type": "string", "format": "email", "maxLength": 1024 } }, "subject": { "type": "string", "max": 255 }, "message": { "type": "string", "max": 32767 }, "theme": { "type": "string", "enum": [ "dark", "light" ] }, "timezone": { "type": "string", "max": 255 } } } }, "blocks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "blockType": { "type": "string" }, "title": { "type": "string", "maxLength": 255 }, "applicationId": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "startX": { "type": "number" }, "startY": { "type": "number" }, "width": { "type": "number" }, "height": { "type": "number" }, "config": { "type": "object" } }, "required": [ "blockType", "startX", "startY", "width", "height" ], "additionalProperties": false } }, "contextConfiguration": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" }, "type": { "type": "string", "enum": [ "deviceId", "deviceAttribute", "string", "number" ] }, "applicationId": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "defaultValue": { "type": [ "string", "number" ] }, "validationEnabled": { "type": "boolean" }, "validationConfig": { "type": "object", "properties": { "min": { "type": "number" }, "max": { "type": "number" }, "regExp": { "type": "string", "maxLength": 1024 }, "attributes": { "type": "array", "items": { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" } }, "deviceIds": { "type": "array", "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, "maxItems": 1000 }, "deviceTags": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "pattern": "^[0-9a-zA-Z_-]{1,255}$" }, "value": { "type": "string", "minLength": 1, "maxLength": 255 } }, "additionalProperties": false }, "maxItems": 100 } }, "additionalProperties": false } }, "required": [ "name", "type", "defaultValue" ], "additionalProperties": false } } } } }, "count": { "type": "integer" }, "totalCount": { "type": "integer" }, "perPage": { "type": "integer" }, "page": { "type": "integer" }, "filter": { "type": "string" }, "filterField": { "type": "string" }, "sortField": { "type": "string" }, "sortDirection": { "type": "string", "enum": [ "asc", "desc" ] } } }