From 18ffc49c6fc4e474eca27f5104c7c77bd8c33a0b Mon Sep 17 00:00:00 2001 From: Jose Manuel Cantera Date: Tue, 6 Nov 2018 13:12:35 +0100 Subject: [PATCH] Add subscription --- schema/Subscription.json | 130 +++++++++++++++++++++++++++++++++++++++ schema/common.json | 2 +- 2 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 schema/Subscription.json diff --git a/schema/Subscription.json b/schema/Subscription.json new file mode 100644 index 0000000..b6fcb10 --- /dev/null +++ b/schema/Subscription.json @@ -0,0 +1,130 @@ +{ + "$schema": "http://json-schema.org/schema#", + "id": "https://uri.etsi.org/ngsi-ld/schema/Subscription.json", + "title": "NGSI-LD Subscription", + "description": "NGSI-LD Subscription", + "definitions": { + "NotificationParams": {}, + "EntityInfo": {}, + "GeoQuery": { + "type": "object", + "required": [ + "geometry", + "coordinates", + "georel" + ], + "properties": { + "georel": { + "oneOf": [ + { + "type": "string", + "enumeration": [ + "equals", + "disjoint", + "intersects", + "within", + "contains", + "overlaps" + ] + }, + { + "type": "string", + "pattern": "near;maxDistance==" + } + ] + }, + "coordinates": { + "oneOf": [{ + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/position", + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/positionArray", + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/lineString", + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/polygon" + }] + }, + "geometry": { + "type": "string", + "enumeration": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon" + ] + } + } + } + }, + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "const": "Subscription" + }, + "@context": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/LdContext" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "minLength": 1 + }, + "entities": { + "$ref": "#/definitions/EntityInfo" + }, + "watchedAttributes": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "timeInterval": { + "type": "number", + "minimum": 0 + }, + "geoQ": { + "$ref": "#/definitions/GeoQuery" + }, + "notification": { + "$ref": "#/definitions/NotificationParams" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string", + "enum": [ + "active", + "paused", + "expired" + ] + }, + "isActive": { + "type": "boolean" + }, + "throttling": { + "type": "number", + "minimum": 1 + }, + "q": { + "type": "string" + }, + "csf": { + "type": "string" + } + }, + "required": [ + "id", + "type", + ] +} diff --git a/schema/common.json b/schema/common.json index 1e130c4..042a506 100644 --- a/schema/common.json +++ b/schema/common.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/schema#", - "id": "https://uri.etsi.org/ngsi-ld/schema/Entity.json", + "id": "https://uri.etsi.org/ngsi-ld/schema/common.json", "title": "NGSI-LD Entity", "description": "NGSI-LD Entity", "definitions": { -- GitLab