{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "start": { "type": "number" }, "end": { "type": "number" }, "duration": { "type": "number" }, "resolution": { "type": "number" }, "aggregation": { "oneOf": [ { "oneOf": [ { "type": "string", "enum": [ "FIRST", "LAST", "COUNT", "MAX", "MIN", "MEDIAN", "MEAN", "SUM", "STD_DEV" ] }, { "type": "string", "enum": [ "NONE" ] } ] }, { "type": "object", "properties": { "type": { "oneOf": [ { "type": "string", "enum": [ "FIRST", "LAST", "COUNT", "MAX", "MIN", "MEDIAN", "MEAN", "SUM", "STD_DEV" ] }, { "type": "string", "enum": [ "NONE" ] } ] }, "options": { "type": "object", "additionalProperties": false } }, "additionalProperties": false, "required": [ "type" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "TIMEATVALUE" ] }, "options": { "type": "object", "properties": { "value": { "oneOf": [ { "type": "string", "maxLength": 255 }, { "type": "number" }, { "type": "boolean" } ] } }, "additionalProperties": false, "required": [ "value" ] } }, "additionalProperties": false, "required": [ "type", "options" ] } ] }, "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 }, "deviceQuery": { "title": "Advanced Device Query", "description": "Schema for advanced device queries", "type": "object", "properties": { "$and": { "type": "array", "items": { "$ref": "#/definitions/advancedDeviceQuery" }, "maxItems": 100 }, "$or": { "type": "array", "items": { "$ref": "#/definitions/advancedDeviceQuery" }, "maxItems": 100 }, "$nor": { "type": "array", "items": { "$ref": "#/definitions/advancedDeviceQuery" }, "maxItems": 100 }, "id": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "creationDate": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "lastUpdated": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "name": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "deviceClass": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "gatewayId": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "parentId": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "ancestorId": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "attributeName": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "experienceUserId": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "experienceGroupId": { "oneOf": [ { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$ne": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lt": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$gte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$lte": { "oneOf": [ { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" }, { "type": "null" } ] }, "$in": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": "string", "pattern": "^[A-Fa-f\\d]{24}$" } } }, "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } ] }, "tags": { "oneOf": [ { "oneOf": [ { "type": "object", "properties": { "$tagKey": { "type": "string", "maxLength": 255 }, "$tagValue": { "type": "string", "maxLength": 255 } }, "additionalProperties": false, "minProperties": 1 }, { "type": "object", "patternProperties": { "^[0-9a-zA-Z_-]{1,255}": { "type": "string", "maxLength": 255 } }, "additionalProperties": false } ] }, { "type": "object", "properties": { "$eq": { "oneOf": [ { "type": "object", "properties": { "$tagKey": { "type": "string", "maxLength": 255 }, "$tagValue": { "type": "string", "maxLength": 255 } }, "additionalProperties": false, "minProperties": 1 }, { "type": "object", "patternProperties": { "^[0-9a-zA-Z_-]{1,255}": { "type": "string", "maxLength": 255 } }, "additionalProperties": false } ] } }, "required": [ "$eq" ], "additionalProperties": false }, { "type": "object", "properties": { "$ne": { "oneOf": [ { "type": "object", "properties": { "$tagKey": { "type": "string", "maxLength": 255 }, "$tagValue": { "type": "string", "maxLength": 255 } }, "additionalProperties": false, "minProperties": 1 }, { "type": "object", "patternProperties": { "^[0-9a-zA-Z_-]{1,255}": { "type": "string", "maxLength": 255 } }, "additionalProperties": false } ] } }, "required": [ "$ne" ], "additionalProperties": false } ] }, "disconnectedAt": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "connectedAt": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] }, "connectionStatus": { "oneOf": [ { "type": [ "string", "number", "boolean", "null" ] }, { "type": "object", "properties": { "$eq": { "type": [ "string", "number", "boolean", "null" ] }, "$ne": { "type": [ "string", "number", "boolean", "null" ] }, "$gt": { "type": [ "string", "number", "boolean", "null" ] }, "$lt": { "type": [ "string", "number", "boolean", "null" ] }, "$gte": { "type": [ "string", "number", "boolean", "null" ] }, "$lte": { "type": [ "string", "number", "boolean", "null" ] }, "$startsWith": { "type": "string", "minLength": 1 }, "$endsWith": { "type": "string", "minLength": 1 }, "$contains": { "type": "string", "minLength": 1 }, "$ci": { "type": "boolean" }, "$in": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } }, "$nin": { "type": "array", "maxItems": 100, "items": { "type": [ "string", "number", "boolean" ] } } }, "additionalProperties": false } ] } }, "additionalProperties": false }, "limit": { "type": "number" }, "order": { "type": "string", "enum": [ "asc", "desc" ], "default": "asc" } }, "additionalProperties": false }