From cda579f195d909cdac8a3fed2fc871c93e145ee9 Mon Sep 17 00:00:00 2001 From: Jose Manuel Cantera Date: Tue, 6 Nov 2018 13:39:21 +0100 Subject: [PATCH] Subscription --- schema/Subscription.json | 276 +++++++++++++++++++++++---------------- 1 file changed, 162 insertions(+), 114 deletions(-) diff --git a/schema/Subscription.json b/schema/Subscription.json index b6fcb10..2e02fe7 100644 --- a/schema/Subscription.json +++ b/schema/Subscription.json @@ -4,127 +4,175 @@ "title": "NGSI-LD Subscription", "description": "NGSI-LD Subscription", "definitions": { - "NotificationParams": {}, - "EntityInfo": {}, - "GeoQuery": { + "NotificationParams": { "type": "object", - "required": [ - "geometry", - "coordinates", - "georel" - ], "properties": { - "georel": { - "oneOf": [ - { - "type": "string", - "enumeration": [ - "equals", - "disjoint", - "intersects", - "within", - "contains", - "overlaps" - ] - }, - { - "type": "string", - "pattern": "near;maxDistance==" + "type": "object", + "required": [ + "endpoint" + ], + "properties": { + "attributes": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" } - ] - }, - "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" - ] + }, + "format": { + "type": "string" + }, + "endpoint": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/EndPoint" + }, + "status": { + "type": "string", + "enum": [ + "ok", + "failed" + ] + }, + "timesSent": { + "type": "number", + "minimum": 1 + }, + "lastNotification": { + "type": "string", + "format": "date-time" + }, + "lastFailure": { + "type": "string", + "format": "date-time" + }, + "lastSuccess": { + "type": "string", + "format": "date-time" + } + } + }, + "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==\\d+)|(minDistance==\\d+)$" + } + ] + }, + "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": "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" }, - "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" + } }, - "csf": { - "type": "string" - } - }, - "required": [ - "id", - "type", - ] + "required": [ + "id", + "type" + ] + } } -- GitLab