From 599a9ba367cc59448ea2595ec5cc2aed204c9a41 Mon Sep 17 00:00:00 2001 From: Jose Manuel Cantera Date: Mon, 19 Nov 2018 16:52:47 +0100 Subject: [PATCH] Fix common schema --- schema/subscriptions/Subscription.json | 319 ++++++++++++------------- 1 file changed, 148 insertions(+), 171 deletions(-) diff --git a/schema/subscriptions/Subscription.json b/schema/subscriptions/Subscription.json index a504034..e48998e 100644 --- a/schema/subscriptions/Subscription.json +++ b/schema/subscriptions/Subscription.json @@ -1,173 +1,150 @@ { - "$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": { - "type": "object", - "properties": { - "attributes": { - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "minLength": 1 - }, - "uniqueItems": true - }, - "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" - } - }, - "required": [ - "endpoint" - ] - }, - "GeoQuery": { - "type": "object", - "required": [ - "geometry", - "coordinates", - "georel" - ], - "properties": { - "georel": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/georel" - }, - "coordinates": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/coordinates" - }, - "geometry": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/geometry" - } - } - } - }, - "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" - }, - "entities": { - "type": "array", - "items": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/EntityInfo" - }, - "minItems": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "minLength": 1 - }, - "notification": { - "$ref": "#/definitions/NotificationParams" - }, - "watchedAttributes": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/Name" - }, - "uniqueItems": true - }, - "timeInterval": { - "type": "number", - "minimum": 0 - }, - "expires": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string", - "enum": [ - "active", - "paused", - "expired" - ] - }, - "isActive": { - "type": "boolean" - }, - "throttling": { - "type": "number", - "minimum": 1 - }, - "q": { - "type": "string" - }, - "geoQ": { - "$ref": "#/definitions/GeoQuery" - }, - "csf": { - "type": "string" - } - }, - "createdAt": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/createdAt" - }, - "modifiedAt": { - "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/modifiedAt" - }, - "allOf": [ - { - "required": [ - "id", - "type" - ] - }, - { - "anyOf": [ - { - "required": [ - "entities" - ] - }, - { - "required": [ - "watchedAttributes" - ] - } - ] - } - ] + "$schema": "http://json-schema.org/schema#", + "id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json", + "title": "NGSI-LD Common Definitions", + "description": "NGSI-LD Common", + "definitions": { + "Name": { + "type": "string", + "pattern": "^(\\d|[a-zA-Z]|_)+$", + "minLength": 1, + "description": "NGSI-LD Name" + }, + "observedAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "modifiedAt": { + "type": "string", + "format": "date-time" + }, + "LdContext": { + "anyOf": [{ + "type": "object" + }, + { + "type": "string", + "format": "uri" + }, + { + "type": "array", + "minItems": 1, + "items": { + "anyOf": [{ + "type": "string", + "format": "uri" + }, + { + "type": "object" + } + ] + } + } + ] + }, + "Endpoint": { + "type": "object", + "required": [ + "uri" + ], + "properties": { + "uri": { + "type": "string", + "format": "uri" + }, + "accept": { + "type": "string", + "enum": [ + "application/json", + "application/ld+json" + ] + } + } + }, + "EntityInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "#/definitions/Name" + }, + "idPattern": { + "type": "string", + "format": "regex" + } + }, + "required": [ + "type" + ] + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + }, + "detail": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "georel": { + "anyOf": [{ + "type": "string", + "enum": [ + "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" + ] + } + } } -- GitLab