diff --git a/schema/Entity.json b/schema/Entity.json index a0c4acf90d2f7af3344ffa7a97bba553b08af414..621012434669a60247f45559021978a7bdbc2b34 100644 --- a/schema/Entity.json +++ b/schema/Entity.json @@ -4,6 +4,12 @@ "title": "NGSI-LD Entity", "description": "NGSI-LD Entity", "definitions": { + "EntityType": { + "type": "string", + "pattern": "^(\\d|[a-zA-Z]|_)+$", + "minLength": 1, + "description": "NGSI Entity type" + }, "datasetId": { "type": "string", "format": "uri" @@ -144,9 +150,7 @@ "format": "uri" }, "type": { - "type": "string", - "description": "NGSI Entity type", - "minLength": 1 + "$ref": "#/definitions/EntityType" }, "@context": { "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/LdContext" diff --git a/schema/EntityTemporal.json b/schema/EntityTemporal.json index f362b4e9c6dc0cc394e89eb236557ed17c9274c1..b34b50c14ef426518b33fe6bad097ba4a0a4af39 100644 --- a/schema/EntityTemporal.json +++ b/schema/EntityTemporal.json @@ -10,9 +10,7 @@ "format": "uri" }, "type": { - "type": "string", - "description": "NGSI Entity type", - "minLength": 1 + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/Entity.json#/definitions/EntityType" }, "@context": { "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/LdContext" diff --git a/schema/Entity_keyValues.json b/schema/Entity_keyValues.json new file mode 100644 index 0000000000000000000000000000000000000000..e207b586e2336715f1d6fd0269737c2b631c04e8 --- /dev/null +++ b/schema/Entity_keyValues.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/schema#", + "id": "https://uri.etsi.org/ngsi-ld/schema/Entity_keyValues.json", + "title": "NGSI-LD Entity Key Values", + "description": "NGSI-LD Entity Simplified Representation", + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/Entity.json#/definitions/EntityType" + }, + "@context": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/LdContext" + }, + "location": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" + }, + "observationSpace": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" + }, + "operationSpace": { + "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" + }, + "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" + } + }, + "required": [ + "type", + "id" + ], + "additionalProperties": { + "type": [ + "string", + "number", + "boolean", + "array", + "object" + ] + }, + "propertyNames": { + "type": "string", + "pattern": "^((\\d|[a-zA-Z]|_)+(#\\d+)?)$" + } +} diff --git a/scripts/validate_schema.sh b/scripts/validate_schema.sh index f5353b2e5259913d779f8fdeeade19a549af4e0f..c41c8110da56bce937540566576161e1ede1bcb8 100755 --- a/scripts/validate_schema.sh +++ b/scripts/validate_schema.sh @@ -18,3 +18,4 @@ ajv compile -s $SCHEMAS/BatchOperationResult.json -r $SCHEMAS/common.json ajv compile -s $SCHEMAS/UpdateResult.json +ajv compile -s $SCHEMAS/Entity_keyValues.json -r $SCHEMAS/common.json -r $SCHEMAS/geometry-schema.json -r $SCHEMAS/Entity.json