Skip to content
Commits on Source (44)
# This file is a template, and might need editing before it works on your project.
# Official framework image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/node/tags/
image: node::13.7-alpine
# This folder is cached between builds
# http://docs.rep.com/ce/ci/yaml/README.html#cache
cache:
paths:
- node_modules/
before_script: before_script:
- yarn - docker info
stages: stages:
- prepare
- test - test
build:
stage: prepare
image: docker:19.03.12
script:
- scripts/setBasePath.sh https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master http://localhost:8080
- docker build -t ngsi-local -f docker/Dockerfile .
allow_failure: false
test: test:
stage: test stage: test
image: docker:19.03.12
services:
- ngsi-local
script: script:
- echo "Running tests..." - echo ${TEST}
- yarn test - scripts/setBasePath.sh https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master http://localhost:9090
allow_failure: true - docker run --network host -i -v ${PWD}/:/data wistefan/redocly-openapi-cli bundle /data/spec/updated/ngsi-ld-spec-open-api.json -o /data/spec/updated/generated/full_api.json
- docker run --network host --rm -v ${PWD}/:/local openapitools/openapi-generator-cli validate -i /local/spec/updated/generated/full_api.json
allow_failure: false
# TODO: after gitlab update, the ci should publish the bundled api
...@@ -10,10 +10,29 @@ This repository contains OpenAPI descriptions for the NGSI-LD interface defined ...@@ -10,10 +10,29 @@ This repository contains OpenAPI descriptions for the NGSI-LD interface defined
To get an account on ETSI Forge and to learn how to contribute visit the [Forge Getting started wiki](https://forge.etsi.org/wiki/index.php/Get_started). To get an account on ETSI Forge and to learn how to contribute visit the [Forge Getting started wiki](https://forge.etsi.org/wiki/index.php/Get_started).
More info @ [CONTIBUTE](./CONTRIBUTE.md) More info @ [CONTRIBUTE](./CONTRIBUTE.md)
Change requests are managed using [Gerrit](https://forge.etsi.org/gerrit). Change requests are managed using [Gerrit](https://forge.etsi.org/gerrit).
### Local editing
>:warning: The described setup requires [docker](https://docs.docker.com/engine/install/) to be installed.
In order to edit the api locally, the script [runLocalDevEnv.sh](scripts/runLocalDevEnv.sh) can be used. When executed from the root of this repository,
it replaces all paths to the master branch inside [spec](spec) and [schema](schema) and serves them through a local file-server. Without that, all
references are resolved with 'https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master' and therefore changes will not be present locally.
With the local file-server still running, you can build the bundled api via:
```
docker run --network host -it -v ${PWD}/:/data wistefan/redocly-openapi-cli bundle /data/spec/updated/ngsi-ld-spec-open-api.json -o /data/spec/updated/generated/full_api.json
```
And validate it with:
```
docker run --network host --rm -v ${PWD}/:/local openapitools/openapi-generator-cli validate -i /local/spec/updated/generated/full_api.json
```
When editing is finished, hit the enter button on your local dev env and push.
## Report issues ## Report issues
To report issues, bugs or requests please fill in a bug [at this location](https://forge.etsi.org/bugzilla/enter_bug.cgi?product=NGSI-LD). To report issues, bugs or requests please fill in a bug [at this location](https://forge.etsi.org/bugzilla/enter_bug.cgi?product=NGSI-LD).
......
{
"openapi": "3.0.3",
"info": {
"description": "This OAS file describes the NGSI-LD API defined by the ETSI ISG CIM group. This Cross-domain Context Information Management API allows to provide, consume and subscribe to context information in multiple scenarios and involving multiple stakeholders",
"version": "latest",
"title": "ETSI ISG CIM / NGSI-LD API",
"contact": {
"email": "NGSI-LD@etsi.org"
}
},
"externalDocs": {
"description": "Find out more about the ETSI ISG Context Information Management",
"url": "https://portal.etsi.org/tb.aspx?tbid=854&SubTB=854"
},
"tags": [
{
"name": "ETSI",
"description": "European Telecommunications Standards Institute",
"externalDocs": {
"description": "Find out more",
"url": "http://www.etsi.org"
}
},
{
"name": "CIM",
"description": "Context Information Management",
"externalDocs": {
"description": "Find out more",
"url": "https://portal.etsi.org/tb.aspx?tbid=854&SubTB=854"
}
},
{
"name": "JSON-LD",
"description": "JSON for Linked Data",
"externalDocs": {
"description": "Find out more",
"url": "https://json-ld.org/"
}
},
{
"name": "NGSI-LD API",
"description": "API defined by the ETSI ISG CIM",
"externalDocs": {
"description": "Preliminary Specification",
"url": "http://www.etsi.org/deliver/etsi_gs/CIM/001_099/004/01.01.01_60/gs_CIM004v010101p.pdf"
}
}
],
"paths": {
"/entities/": {
"get": {
"description": "Retrieve a set of entities which matches a specific query from an NGSI-LD system",
"operationId": "queryEntities",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "id",
"description": "Comma separated list of URIs to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "idPattern",
"description": "Regular expression that must be matched by Entity ids",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "regexp"
}
},
{
"name": "type",
"description": "Comma separated list of Entity type names to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "q",
"description": "Query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "georel",
"description": "Geo-relationship",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string",
"enum": [
"equals",
"disjoint",
"intersects",
"within",
"contains",
"overlaps"
]
},
{
"type": "string",
"pattern": "^near;((maxDistance==\\d+)|(minDistance==\\d+))$"
}
]
}
},
{
"name": "geometry",
"description": "Geometry",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"Point",
"MultiPoint",
"LineString",
"MultiLineString",
"Polygon",
"MultiPolygon"
]
}
},
{
"name": "coordinates",
"description": "Coordinates serialized as a string",
"in": "query",
"required": false,
"schema": {
"oneOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
]
}
},
{
"name": "geoproperty",
"description": "The name of the property that contains the geo-spatial data that will be used to resolve the geoquery",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "csf",
"description": "Context Source Filter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"keyValues",
"sysAttrs"
]
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
},
"detail": {
"type": "string"
}
},
"required": [
"type"
]
}
}
}
}
}
},
"post": {
"description": "Create a new Entity within an NGSI-LD system",
"operationId": "createEntity",
"tags": [
"Context Information"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"required": [
"id",
"type"
]
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Entity"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}": {
"get": {
"description": "Retrieve an specific Entity from an NGSI-LD system. It's possible to specify the Entity attributes to be retrieved by using query parameters",
"operationId": "retrieveEntityById",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "type",
"description": "Entity Type",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"keyValues",
"sysAttrs"
]
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Entity-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an specific Entity from an NGSI-LD system",
"operationId": "removeEntityById",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D/get/parameters/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D/get/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content. The entity was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}/attrs/": {
"post": {
"description": "Append new Entity attributes to an existing Entity within an NGSI-LD system",
"operationId": "appendEntityAttrs",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "options",
"description": "Indicates that no attribute overwrite shall be performed",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"noOverwrite"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"@context": {
"anyOf": [
{
"type": "object"
},
{
"type": "string",
"format": "uri"
},
{
"type": "array",
"minItems": 1,
"items": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "object"
}
]
}
}
]
},
"location": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "GeoProperty"
},
"value": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"observedAt": {
"type": "string",
"format": "date-time"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"type": "string",
"format": "uri"
},
"instanceId": {
"type": "string",
"format": "uri"
}
},
"required": [
"type",
"value"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
"observationSpace": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"operationSpace": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"modifiedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "Property"
},
"value": {
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
},
"observedAt": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/observedAt"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/datasetId"
},
"instanceId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/instanceId"
}
},
"required": [
"type",
"value"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "Relationship"
},
"object": {
"type": "string",
"format": "uri"
},
"observedAt": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/observedAt"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/datasetId"
},
"instanceId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/instanceId"
}
},
"required": [
"type",
"object"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
}
]
},
"propertyNames": {
"type": "string",
"pattern": "^((\\d|[a-zA-Z]|_)+(:(\\d|[a-zA-Z]|_)+)?(#\\d+)?)$|^(@context)$"
}
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"207": {
"description": "Partial Success. Only the attributes included in the response payload were successfully appended",
"content": {
"application/json;application/ld+json": {
"schema": {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/UpdateResult.json",
"title": "NGSI-LD Update Result",
"description": "NGSI-LD Update Result",
"definitions": {
"NotUpdatedDetails": {
"attributeName": {
"type": "string",
"pattern": ""
},
"reason": {
"type": "string",
"minLenght": 1
}
},
"UpdateResult": {
"type": "object",
"properties": {
"updated": {
"type": "array",
"items": {
"type": "string",
"pattern": ""
}
},
"notUpdated": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema/definitions/NotUpdatedDetails"
}
}
}
}
},
"allOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema/definitions/UpdateResult"
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Update existing Entity attributes within an NGSI-LD system",
"operationId": "updateEntityAttrs",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content."
},
"207": {
"description": "Partial Success. Only the attributes included in the response payload were successfully updated",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}/attrs/{attrId}": {
"patch": {
"description": "Update existing Entity attributes within an NGSI-LD system",
"operationId": "partialAttrUpdate",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"name": "attrId",
"description": "Attribute Id",
"in": "path",
"required": true,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an existing Entity attribute within an NGSI-LD system",
"operationId": "removeEntityAttr",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/patch/parameters/1"
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/subscriptions/": {
"get": {
"description": "Retrieves the subscriptions available in an NGSI-LD system",
"operationId": "retrieveSubscriptions",
"tags": [
"Context Subscription"
],
"parameters": [
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/SubscriptionList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Creates a new Subscription within an NGSI-LD system",
"operationId": "createSubscription",
"tags": [
"Context Subscription"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"const": "Subscription"
},
"notification": {
"type": "object",
"properties": {
"attributes": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"format": {
"type": "string"
},
"endpoint": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "uri"
},
"accept": {
"type": "string",
"enum": [
"application/json",
"application/ld+json"
]
}
}
},
"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"
]
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"expired"
]
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"allOf": [
{
"required": [
"id",
"type",
"notification"
]
},
{
"anyOf": [
{
"required": [
"entities"
]
},
{
"required": [
"watchedAttributes"
]
}
]
}
]
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Subscription"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/subscriptions/{subscriptionId}": {
"get": {
"description": "Retrieves a specific Subscription from an NGSI-LD system",
"operationId": "retrieveSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"name": "subscriptionId",
"description": "Subscription Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Subscription-example_C.4.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Updates a specific Subscription within an NGSI-LD system",
"operationId": "updateSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"entities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"idPattern": {
"type": "string",
"format": "regex"
}
},
"required": [
"type"
]
},
"minItems": 1
},
"name": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"watchedAttributes": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
},
"timeInterval": {
"type": "number",
"minimum": 0
},
"expires": {
"type": "string",
"format": "date-time"
},
"isActive": {
"type": "boolean"
},
"throttling": {
"type": "number",
"minimum": 1
},
"q": {
"type": "string"
},
"geoQ": {
"type": "object",
"required": [
"geometry",
"coordinates",
"georel"
],
"properties": {
"georel": {
"$ref": "#/paths/~1entities~1/get/parameters/5/schema"
},
"coordinates": {
"$ref": "#/paths/~1entities~1/get/parameters/7/schema"
},
"geometry": {
"$ref": "#/paths/~1entities~1/get/parameters/6/schema"
}
}
},
"csf": {
"type": "string"
}
}
}
}
}
},
"responses": {
"204": {
"description": "No Content. The Subscription was updated successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes a specific Subscription from an NGSI-LD system",
"operationId": "removeSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Subscription was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceRegistrations/": {
"get": {
"description": "Retrieve a set of context sources which matches a specific query from an NGSI-LD system",
"operationId": "queryCsources",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/1"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/2"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/3"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/4"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/5"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/6"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/7"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/8"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/14"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/ContextSourceRegistrationList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Registers a new context source within an NGSI-LD system",
"operationId": "registerCsource",
"tags": [
"Context Sources"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"information": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"anyOf": [
{
"required": [
"entities"
]
},
{
"required": [
"properties"
]
},
{
"required": [
"relationships"
]
}
],
"properties": {
"entities": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/entities/items"
}
},
"properties": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
},
"relationships": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
}
}
}
},
"observationInterval": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/managementInterval"
},
"managementInterval": {
"type": "object",
"required": [
"start"
],
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
}
}
},
"location": {
"$schema": "http://json-schema.org/draft-04/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json",
"title": "geometry",
"description": "One geometry as defined by GeoJSON. Licensed as per original source is https://github.com/fge/sample-json-schemas/blob/master/geojson/geometry.json",
"type": "object",
"required": [
"type",
"coordinates"
],
"oneOf": [
{
"title": "Point",
"properties": {
"type": {
"enum": [
"Point"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
}
}
},
{
"title": "MultiPoint",
"properties": {
"type": {
"enum": [
"MultiPoint"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
}
}
},
{
"title": "LineString",
"properties": {
"type": {
"enum": [
"LineString"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
}
}
},
{
"title": "MultiLineString",
"properties": {
"type": {
"enum": [
"MultiLineString"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
}
}
}
},
{
"title": "Polygon",
"properties": {
"type": {
"enum": [
"Polygon"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
}
},
{
"title": "MultiPolygon",
"properties": {
"type": {
"enum": [
"MultiPolygon"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
}
}
}
],
"definitions": {
"position": {
"description": "A single position",
"type": "array",
"minItems": 2,
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false
},
"positionArray": {
"description": "An array of positions",
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
}
},
"lineString": {
"description": "An array of two or more positions",
"allOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"minItems": 2
}
]
},
"linearRing": {
"description": "An array of four positions where the first equals the last",
"allOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"minItems": 4
}
]
},
"polygon": {
"description": "An array of linear rings",
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/linearRing"
}
}
}
},
"observationSpace": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"operationSpace": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"expires": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"endpoint": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
}
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"const": "ContextSourceRegistration"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"required": [
"id",
"type",
"endpoint",
"information"
]
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Registration"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceRegistrations/{registrationId}": {
"get": {
"description": "Retrieves a specific context source registration from an NGSI-LD system",
"operationId": "retrieveCsource",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "registrationId",
"description": "Registration Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an specific context source registration within an NGSI-LD system",
"operationId": "removeCsource",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceRegistrations~1%7BregistrationId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Registration was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceSubscriptions/": {
"get": {
"description": "Retrieves the context source discovery subscriptions available in an NGSI-LD system",
"operationId": "retrieveCSourceSubscriptions",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/SubscriptionList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Creates a context source discovery Subscription within an NGSI-LD system",
"operationId": "createCSourceSubscription",
"tags": [
"Context Sources"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Subscription"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceSubscriptions/{subscriptionId}": {
"get": {
"description": "Retrieves a specific Subscription from an NGSI-LD system",
"operationId": "retrieveSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "subscriptionId",
"description": "Subscription Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Subscription-example_C.4.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Updates a specific context source discovery Subscription within an NGSI-LD system",
"operationId": "updateCSourceSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceSubscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content. The Subscription was updated successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes a specific Context Source Subscription from an NGSI-LD system",
"operationId": "removeCSourceSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceSubscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Subscription was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/create": {
"post": {
"description": "Batch Entity creation",
"operationId": "batchEntityCreation",
"tags": [
"Batch Operations"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"error": {
"type": "array",
"items": {
"entityId": {
"type": "string",
"format": "uri"
},
"error": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/update": {
"post": {
"description": "Batch Entity update",
"operationId": "batchEntityUpdate",
"tags": [
"Batch Operations"
],
"parameters": [
{
"name": "options",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"noOverwrite"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/upsert": {
"post": {
"description": "Batch Entity upsert",
"operationId": "batchEntityUpsert",
"tags": [
"Batch Operations"
],
"parameters": [
{
"name": "options",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"replace",
"update"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/delete": {
"post": {
"description": "Batch Entity delete",
"operationId": "batchEntityDelete",
"tags": [
"Batch Operations"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"minItems": 1
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/": {
"get": {
"description": "Query temporal evolution of Entities from an NGSI-LD system",
"operationId": "queryTemporalEntities",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "id",
"description": "Comma separated list of URIs to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "idPattern",
"description": "Regular expression that must be matched by Entity ids",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "regexp"
}
},
{
"name": "type",
"description": "Comma separated list of Entity type names to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "q",
"description": "Query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "georel",
"description": "Geo-relationship",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/5/schema"
}
},
{
"name": "geometry",
"description": "Geometry",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/6/schema"
}
},
{
"name": "coordinates",
"description": "Coordinates serialized as a string",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/7/schema"
}
},
{
"name": "geoproperty",
"description": "The name of the property that contains the geo-spatial data that will be used to resolve the geoquery",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "timerel",
"description": "Time relationship",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"before",
"after",
"between"
]
}
},
{
"name": "timeproperty",
"description": "The name of the property that contains the temporal data that will be used to resolve the temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"pattern": "^((\\d|[a-zA-Z]|_)+(:(\\d|[a-zA-Z]|_)+)?(#\\d+)?)$",
"minLength": 1,
"description": "NGSI-LD Name"
}
},
{
"name": "time",
"description": "start time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "endTime",
"description": "end time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "csf",
"description": "Context Source Filter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"temporalValues",
"sysAttrs"
]
}
},
{
"name": "lastN",
"description": "Only retrieve last N instances",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/temporal/EntityTemporal.json",
"title": "NGSI-LD Entity",
"description": "NGSI-LD Temporal Representation of an Entity",
"definitions": {
"EntityTemporalFragment": {
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"location": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"observationSpace": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"operationSpace": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"additionalProperties": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
"minItems": 1
},
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
},
"minItems": 1
},
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
}
]
},
"propertyNames": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/propertyNames"
}
},
"EntityTemporal": {
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
]
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
]
}
},
"allOf": [
{
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
}
]
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporalList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Create or update temporal representation of an Entity within an NGSI-LD system",
"operationId": "createUpdateEntityTemporal",
"tags": [
"Temporal Evolution"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporal-example_C5.5.3.json"
}
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Entity"
},
"204": {
"description": "Updated. No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}": {
"get": {
"description": "Retrieve the temporal representation of an specific Entity from an NGSI-LD system. It's possible to specify the Entity attributes to be retrieved by using query parameters",
"operationId": "retrieveEntityTemporalById",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "type",
"description": "Entity Type",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"temporalValues",
"sysAttrs"
]
}
},
{
"name": "timerel",
"description": "Time relationship",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/9/schema"
}
},
{
"name": "timeproperty",
"description": "The name of the property that contains the temporal data that will be used to resolve the temporal query",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "time",
"description": "start time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "endTime",
"description": "end time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "lastN",
"description": "Only retrieve last N instances",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporal-example_C5.5.3.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes the temporal representation of an Entity from an NGSI-LD system",
"operationId": "removeEntityTemporalById",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D/get/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D/get/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content. The entity was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/": {
"post": {
"description": "Add new attributes to an existing Temporal Entity within an NGSI-LD system",
"operationId": "addTemporalEntityAttrs",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/{attrId}": {
"delete": {
"description": "Attribute from Temporal Representation of Entity deletion",
"operationId": "removeEntityTemporalAttr",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"name": "attrId",
"description": "Attribute Id",
"in": "path",
"required": true,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/{attrId}/{instanceId}": {
"patch": {
"description": "Allows modifying a specific Attribute (Property or Relationship) instance, identified by its instanceId, of a Temporal Representation of an Entity.",
"operationId": "modifyEntityTemporalAttrInstance",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/delete/parameters/1"
},
{
"name": "instanceId",
"description": "Instance Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Attribute Instance deletion by instance id.",
"operationId": "removeEntityTemporalAttrInstance",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/delete/parameters/1"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D~1%7BinstanceId%7D/patch/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
}
}
}
{
"openapi": "3.0.3",
"info": {
"description": "This OAS file describes the NGSI-LD API defined by the ETSI ISG CIM group. This Cross-domain Context Information Management API allows to provide, consume and subscribe to context information in multiple scenarios and involving multiple stakeholders",
"version": "latest",
"title": "ETSI ISG CIM / NGSI-LD API",
"contact": {
"email": "NGSI-LD@etsi.org"
}
},
"externalDocs": {
"description": "Find out more about the ETSI ISG Context Information Management",
"url": "https://portal.etsi.org/tb.aspx?tbid=854&SubTB=854"
},
"tags": [
{
"name": "ETSI",
"description": "European Telecommunications Standards Institute",
"externalDocs": {
"description": "Find out more",
"url": "http://www.etsi.org"
}
},
{
"name": "CIM",
"description": "Context Information Management",
"externalDocs": {
"description": "Find out more",
"url": "https://portal.etsi.org/tb.aspx?tbid=854&SubTB=854"
}
},
{
"name": "JSON-LD",
"description": "JSON for Linked Data",
"externalDocs": {
"description": "Find out more",
"url": "https://json-ld.org/"
}
},
{
"name": "NGSI-LD API",
"description": "API defined by the ETSI ISG CIM",
"externalDocs": {
"description": "Preliminary Specification",
"url": "http://www.etsi.org/deliver/etsi_gs/CIM/001_099/004/01.01.01_60/gs_CIM004v010101p.pdf"
}
}
],
"paths": {
"/entities/": {
"get": {
"description": "Retrieve a set of entities which matches a specific query from an NGSI-LD system",
"operationId": "queryEntities",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "id",
"description": "Comma separated list of URIs to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "idPattern",
"description": "Regular expression that must be matched by Entity ids",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "regexp"
}
},
{
"name": "type",
"description": "Comma separated list of Entity type names to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "q",
"description": "Query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "georel",
"description": "Geo-relationship",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string",
"enum": [
"equals",
"disjoint",
"intersects",
"within",
"contains",
"overlaps"
]
},
{
"type": "string",
"pattern": "^near;((maxDistance==\\d+)|(minDistance==\\d+))$"
}
]
}
},
{
"name": "geometry",
"description": "Geometry",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"Point",
"MultiPoint",
"LineString",
"MultiLineString",
"Polygon",
"MultiPolygon"
]
}
},
{
"name": "coordinates",
"description": "Coordinates serialized as a string",
"in": "query",
"required": false,
"schema": {
"oneOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
},
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
]
}
},
{
"name": "geoproperty",
"description": "The name of the property that contains the geo-spatial data that will be used to resolve the geoquery",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "csf",
"description": "Context Source Filter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"keyValues",
"sysAttrs"
]
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
},
"detail": {
"type": "string"
}
},
"required": [
"type"
]
}
}
}
}
}
},
"post": {
"description": "Create a new Entity within an NGSI-LD system",
"operationId": "createEntity",
"tags": [
"Context Information"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"required": [
"id",
"type"
]
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Entity"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}": {
"get": {
"description": "Retrieve an specific Entity from an NGSI-LD system. It's possible to specify the Entity attributes to be retrieved by using query parameters",
"operationId": "retrieveEntityById",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "type",
"description": "Entity Type",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"keyValues",
"sysAttrs"
]
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Entity-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an specific Entity from an NGSI-LD system",
"operationId": "removeEntityById",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D/get/parameters/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D/get/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content. The entity was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}/attrs/": {
"post": {
"description": "Append new Entity attributes to an existing Entity within an NGSI-LD system",
"operationId": "appendEntityAttrs",
"tags": [
"Context Information"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "options",
"description": "Indicates that no attribute overwrite shall be performed",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"noOverwrite"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"@context": {
"anyOf": [
{
"type": "object"
},
{
"type": "string",
"format": "uri"
},
{
"type": "array",
"minItems": 1,
"items": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "object"
}
]
}
}
]
},
"location": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "GeoProperty"
},
"value": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"observedAt": {
"type": "string",
"format": "date-time"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"type": "string",
"format": "uri"
},
"instanceId": {
"type": "string",
"format": "uri"
}
},
"required": [
"type",
"value"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
"observationSpace": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"operationSpace": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"modifiedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "Property"
},
"value": {
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
},
"observedAt": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/observedAt"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/datasetId"
},
"instanceId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/instanceId"
}
},
"required": [
"type",
"value"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "Relationship"
},
"object": {
"type": "string",
"format": "uri"
},
"observedAt": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/observedAt"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
},
"datasetId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/datasetId"
},
"instanceId": {
"$ref": "#/paths/~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/1/properties/location/properties/instanceId"
}
},
"required": [
"type",
"object"
],
"additionalProperties": {
"anyOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
}
]
}
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
}
]
},
"propertyNames": {
"type": "string",
"pattern": "^((\\d|[a-zA-Z]|_)+(:(\\d|[a-zA-Z]|_)+)?(#\\d+)?)$|^(@context)$"
}
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"207": {
"description": "Partial Success. Only the attributes included in the response payload were successfully appended",
"content": {
"application/json;application/ld+json": {
"schema": {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/UpdateResult.json",
"title": "NGSI-LD Update Result",
"description": "NGSI-LD Update Result",
"definitions": {
"NotUpdatedDetails": {
"attributeName": {
"type": "string",
"pattern": ""
},
"reason": {
"type": "string",
"minLenght": 1
}
},
"UpdateResult": {
"type": "object",
"properties": {
"updated": {
"type": "array",
"items": {
"type": "string",
"pattern": ""
}
},
"notUpdated": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema/definitions/NotUpdatedDetails"
}
}
}
}
},
"allOf": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema/definitions/UpdateResult"
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Update existing Entity attributes within an NGSI-LD system",
"operationId": "updateEntityAttrs",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content."
},
"207": {
"description": "Partial Success. Only the attributes included in the response payload were successfully updated",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/responses/207/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entities/{entityId}/attrs/{attrId}": {
"patch": {
"description": "Update existing Entity attributes within an NGSI-LD system",
"operationId": "partialAttrUpdate",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"name": "attrId",
"description": "Attribute Id",
"in": "path",
"required": true,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an existing Entity attribute within an NGSI-LD system",
"operationId": "removeEntityAttr",
"tags": [
"Context Information"
],
"parameters": [
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/patch/parameters/1"
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/subscriptions/": {
"get": {
"description": "Retrieves the subscriptions available in an NGSI-LD system",
"operationId": "retrieveSubscriptions",
"tags": [
"Context Subscription"
],
"parameters": [
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/SubscriptionList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Creates a new Subscription within an NGSI-LD system",
"operationId": "createSubscription",
"tags": [
"Context Subscription"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"const": "Subscription"
},
"notification": {
"type": "object",
"properties": {
"attributes": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"format": {
"type": "string"
},
"endpoint": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "uri"
},
"accept": {
"type": "string",
"enum": [
"application/json",
"application/ld+json"
]
}
}
},
"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"
]
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"expired"
]
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"allOf": [
{
"required": [
"id",
"type",
"notification"
]
},
{
"anyOf": [
{
"required": [
"entities"
]
},
{
"required": [
"watchedAttributes"
]
}
]
}
]
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Subscription"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/subscriptions/{subscriptionId}": {
"get": {
"description": "Retrieves a specific Subscription from an NGSI-LD system",
"operationId": "retrieveSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"name": "subscriptionId",
"description": "Subscription Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Subscription-example_C.4.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Updates a specific Subscription within an NGSI-LD system",
"operationId": "updateSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"entities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"idPattern": {
"type": "string",
"format": "regex"
}
},
"required": [
"type"
]
},
"minItems": 1
},
"name": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"watchedAttributes": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
},
"timeInterval": {
"type": "number",
"minimum": 0
},
"expires": {
"type": "string",
"format": "date-time"
},
"isActive": {
"type": "boolean"
},
"throttling": {
"type": "number",
"minimum": 1
},
"q": {
"type": "string"
},
"geoQ": {
"type": "object",
"required": [
"geometry",
"coordinates",
"georel"
],
"properties": {
"georel": {
"$ref": "#/paths/~1entities~1/get/parameters/5/schema"
},
"coordinates": {
"$ref": "#/paths/~1entities~1/get/parameters/7/schema"
},
"geometry": {
"$ref": "#/paths/~1entities~1/get/parameters/6/schema"
}
}
},
"csf": {
"type": "string"
}
}
}
}
}
},
"responses": {
"204": {
"description": "No Content. The Subscription was updated successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes a specific Subscription from an NGSI-LD system",
"operationId": "removeSubscription",
"tags": [
"Context Subscription"
],
"parameters": [
{
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Subscription was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceRegistrations/": {
"get": {
"description": "Retrieve a set of context sources which matches a specific query from an NGSI-LD system",
"operationId": "queryCsources",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/1"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/2"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/3"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/4"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/5"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/6"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/7"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/8"
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/14"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/ContextSourceRegistrationList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Registers a new context source within an NGSI-LD system",
"operationId": "registerCsource",
"tags": [
"Context Sources"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"information": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"anyOf": [
{
"required": [
"entities"
]
},
{
"required": [
"properties"
]
},
{
"required": [
"relationships"
]
}
],
"properties": {
"entities": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/entities/items"
}
},
"properties": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
},
"relationships": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"uniqueItems": true
}
}
}
},
"observationInterval": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/managementInterval"
},
"managementInterval": {
"type": "object",
"required": [
"start"
],
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
}
}
},
"location": {
"$schema": "http://json-schema.org/draft-04/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json",
"title": "geometry",
"description": "One geometry as defined by GeoJSON. Licensed as per original source is https://github.com/fge/sample-json-schemas/blob/master/geojson/geometry.json",
"type": "object",
"required": [
"type",
"coordinates"
],
"oneOf": [
{
"title": "Point",
"properties": {
"type": {
"enum": [
"Point"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
}
}
},
{
"title": "MultiPoint",
"properties": {
"type": {
"enum": [
"MultiPoint"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
}
}
},
{
"title": "LineString",
"properties": {
"type": {
"enum": [
"LineString"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
}
}
},
{
"title": "MultiLineString",
"properties": {
"type": {
"enum": [
"MultiLineString"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/lineString"
}
}
}
},
{
"title": "Polygon",
"properties": {
"type": {
"enum": [
"Polygon"
]
},
"coordinates": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
}
},
{
"title": "MultiPolygon",
"properties": {
"type": {
"enum": [
"MultiPolygon"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/polygon"
}
}
}
}
],
"definitions": {
"position": {
"description": "A single position",
"type": "array",
"minItems": 2,
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false
},
"positionArray": {
"description": "An array of positions",
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/position"
}
},
"lineString": {
"description": "An array of two or more positions",
"allOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"minItems": 2
}
]
},
"linearRing": {
"description": "An array of four positions where the first equals the last",
"allOf": [
{
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/positionArray"
},
{
"minItems": 4
}
]
},
"polygon": {
"description": "An array of linear rings",
"type": "array",
"items": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location/definitions/linearRing"
}
}
}
},
"observationSpace": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"operationSpace": {
"$ref": "#/paths/~1csourceRegistrations~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/allOf/0/properties/location"
},
"expires": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"endpoint": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
}
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"const": "ContextSourceRegistration"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"required": [
"id",
"type",
"endpoint",
"information"
]
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Registration"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceRegistrations/{registrationId}": {
"get": {
"description": "Retrieves a specific context source registration from an NGSI-LD system",
"operationId": "retrieveCsource",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "registrationId",
"description": "Registration Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes an specific context source registration within an NGSI-LD system",
"operationId": "removeCsource",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceRegistrations~1%7BregistrationId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Registration was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceSubscriptions/": {
"get": {
"description": "Retrieves the context source discovery subscriptions available in an NGSI-LD system",
"operationId": "retrieveCSourceSubscriptions",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/SubscriptionList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Creates a context source discovery Subscription within an NGSI-LD system",
"operationId": "createCSourceSubscription",
"tags": [
"Context Sources"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Subscription"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/csourceSubscriptions/{subscriptionId}": {
"get": {
"description": "Retrieves a specific Subscription from an NGSI-LD system",
"operationId": "retrieveSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"name": "subscriptionId",
"description": "Subscription Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/Subscription-example_C.4.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"patch": {
"description": "Updates a specific context source discovery Subscription within an NGSI-LD system",
"operationId": "updateCSourceSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceSubscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1subscriptions~1%7BsubscriptionId%7D/patch/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"204": {
"description": "No Content. The Subscription was updated successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes a specific Context Source Subscription from an NGSI-LD system",
"operationId": "removeCSourceSubscription",
"tags": [
"Context Sources"
],
"parameters": [
{
"$ref": "#/paths/~1csourceSubscriptions~1%7BsubscriptionId%7D/get/parameters/0"
}
],
"responses": {
"204": {
"description": "No Content. The Subscription was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/create": {
"post": {
"description": "Batch Entity creation",
"operationId": "batchEntityCreation",
"tags": [
"Batch Operations"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"error": {
"type": "array",
"items": {
"entityId": {
"type": "string",
"format": "uri"
},
"error": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/update": {
"post": {
"description": "Batch Entity update",
"operationId": "batchEntityUpdate",
"tags": [
"Batch Operations"
],
"parameters": [
{
"name": "options",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"noOverwrite"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/upsert": {
"post": {
"description": "Batch Entity upsert",
"operationId": "batchEntityUpsert",
"tags": [
"Batch Operations"
],
"parameters": [
{
"name": "options",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"replace",
"update"
]
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/entityOperations/delete": {
"post": {
"description": "Batch Entity delete",
"operationId": "batchEntityDelete",
"tags": [
"Batch Operations"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"minItems": 1
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entityOperations~1create/post/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/": {
"get": {
"description": "Query temporal evolution of Entities from an NGSI-LD system",
"operationId": "queryTemporalEntities",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "id",
"description": "Comma separated list of URIs to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "idPattern",
"description": "Regular expression that must be matched by Entity ids",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "regexp"
}
},
{
"name": "type",
"description": "Comma separated list of Entity type names to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "q",
"description": "Query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "georel",
"description": "Geo-relationship",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/5/schema"
}
},
{
"name": "geometry",
"description": "Geometry",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/6/schema"
}
},
{
"name": "coordinates",
"description": "Coordinates serialized as a string",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1entities~1/get/parameters/7/schema"
}
},
{
"name": "geoproperty",
"description": "The name of the property that contains the geo-spatial data that will be used to resolve the geoquery",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "timerel",
"description": "Time relationship",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"before",
"after",
"between"
]
}
},
{
"name": "timeproperty",
"description": "The name of the property that contains the temporal data that will be used to resolve the temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"pattern": "^((\\d|[a-zA-Z]|_)+(:(\\d|[a-zA-Z]|_)+)?(#\\d+)?)$",
"minLength": 1,
"description": "NGSI-LD Name"
}
},
{
"name": "time",
"description": "start time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "endTime",
"description": "end time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "csf",
"description": "Context Source Filter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "limit",
"description": "Pagination limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"temporalValues",
"sysAttrs"
]
}
},
{
"name": "lastN",
"description": "Only retrieve last N instances",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/temporal/EntityTemporal.json",
"title": "NGSI-LD Entity",
"description": "NGSI-LD Temporal Representation of an Entity",
"definitions": {
"EntityTemporalFragment": {
"type": "object",
"properties": {
"@context": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/%40context"
},
"location": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"observationSpace": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"operationSpace": {
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
},
"id": {
"type": "string",
"format": "uri"
},
"type": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
},
"createdAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/createdAt"
},
"modifiedAt": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/modifiedAt"
}
},
"additionalProperties": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/0"
},
"minItems": 1
},
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/additionalProperties/anyOf/1"
},
"minItems": 1
},
{
"type": "array",
"items": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/properties/location"
},
"minItems": 1
}
]
},
"propertyNames": {
"$ref": "#/paths/~1entities~1%7BentityId%7D~1attrs~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/propertyNames"
}
},
"EntityTemporal": {
"allOf": [
{
"type": "object",
"required": [
"id",
"type"
]
},
{
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
]
}
},
"allOf": [
{
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
}
]
}
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporalList-example.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"post": {
"description": "Create or update temporal representation of an Entity within an NGSI-LD system",
"operationId": "createUpdateEntityTemporal",
"tags": [
"Temporal Evolution"
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporal-example_C5.5.3.json"
}
}
}
}
},
"responses": {
"201": {
"description": "Created. Contains the resource URI of the created Entity"
},
"204": {
"description": "Updated. No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"409": {
"description": "Already exists",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}": {
"get": {
"description": "Retrieve the temporal representation of an specific Entity from an NGSI-LD system. It's possible to specify the Entity attributes to be retrieved by using query parameters",
"operationId": "retrieveEntityTemporalById",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
{
"name": "attrs",
"description": "Comma separated list of attribute names (properties or relationships) to be retrieved",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "type",
"description": "Entity Type",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "options",
"description": "Options dictionary",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"temporalValues",
"sysAttrs"
]
}
},
{
"name": "timerel",
"description": "Time relationship",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/9/schema"
}
},
{
"name": "timeproperty",
"description": "The name of the property that contains the temporal data that will be used to resolve the temporal query",
"in": "query",
"required": false,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
},
{
"name": "time",
"description": "start time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "endTime",
"description": "end time for temporal query",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "lastN",
"description": "Only retrieve last N instances",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporal"
},
"examples": {
"simple": {
"externalValue": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/examples/EntityTemporal-example_C5.5.3.json"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Removes the temporal representation of an Entity from an NGSI-LD system",
"operationId": "removeEntityTemporalById",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D/get/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D/get/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content. The entity was removed successfully"
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/": {
"post": {
"description": "Add new attributes to an existing Temporal Entity within an NGSI-LD system",
"operationId": "addTemporalEntityAttrs",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"name": "entityId",
"description": "Entity Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/{attrId}": {
"delete": {
"description": "Attribute from Temporal Representation of Entity deletion",
"operationId": "removeEntityTemporalAttr",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"name": "attrId",
"description": "Attribute Id",
"in": "path",
"required": true,
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/parameters/10/schema"
}
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
},
"/temporal/entities/{entityId}/attrs/{attrId}/{instanceId}": {
"patch": {
"description": "Allows modifying a specific Attribute (Property or Relationship) instance, identified by its instanceId, of a Temporal Representation of an Entity.",
"operationId": "modifyEntityTemporalAttrInstance",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/delete/parameters/1"
},
{
"name": "instanceId",
"description": "Instance Id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1temporal~1entities~1/get/responses/200/content/application~1json%3Bapplication~1ld%2Bjson/schema/items/definitions/EntityTemporalFragment"
}
}
}
},
"responses": {
"204": {
"description": "No Content"
},
"400": {
"description": "Bad request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
},
"delete": {
"description": "Attribute Instance deletion by instance id.",
"operationId": "removeEntityTemporalAttrInstance",
"tags": [
"Temporal Evolution"
],
"parameters": [
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1/post/parameters/0"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D/delete/parameters/1"
},
{
"$ref": "#/paths/~1temporal~1entities~1%7BentityId%7D~1attrs~1%7BattrId%7D~1%7BinstanceId%7D/patch/parameters/2"
}
],
"responses": {
"204": {
"description": "No Content."
},
"400": {
"description": "Bad Request",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json;application/ld+json": {
"schema": {
"$ref": "#/paths/~1entities~1/get/responses/400/content/application~1json%3Bapplication~1ld%2Bjson/schema"
}
}
}
}
}
}
}
}
}
FROM halverneus/static-file-server
ADD . /web
\ No newline at end of file
{
"name": "ngsi-ld",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"ajv": {
"version": "6.5.5",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
"integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
},
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"requires": {
"punycode": "^2.1.0"
}
}
}
}
{
"name": "ngsi-ld",
"version": "1.0.1",
"description": "NGSI-LD Schema Compilation",
"main": "index.js",
"scripts": {
"test": "./scripts/validate_all.sh",
"validate-examples": "./scripts/validate_examples.sh",
"validate-locally": "./scripts/validate_locally.sh",
"validate-online": "./scripts/validate_online.sh",
"validate-schema": "./scripts/validate_schema.sh",
"combine-files": "./scripts/combine_files.sh"
},
"repository": {
"type": "git",
"url": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD"
},
"keywords": [
"NGSI-LD"
],
"author": "Jose Manuel Cantera",
"license": "ISC",
"dependencies": {
"ajv": "^6.12.5",
"swagger-cli": "^4.0.4"
}
}
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/BatchOperationResult.json",
"title": "NGSI-LD Batch Operation Result", "title": "NGSI-LD Batch Operation Result",
"description": "NGSI-LD Batch Operation Result", "description": "NGSI-LD Batch Operation Result",
"definitions": { "definitions": {
"BatchEntityError": { "BatchEntityError": {
"type": "object",
"properties": {
"entityId": { "entityId": {
"type": "string", "type": "string",
"format": "uri" "format": "uri"
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
"error": { "error": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/ProblemDetails" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/ProblemDetails"
} }
}
}, },
"BatchOperationResult": { "BatchOperationResult": {
"type": "object", "type": "object",
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Entity.json",
"title": "NGSI-LD Entity", "title": "NGSI-LD Entity",
"description": "NGSI-LD Entity", "description": "NGSI-LD Entity",
"definitions": { "definitions": {
...@@ -17,10 +15,10 @@ ...@@ -17,10 +15,10 @@
"properties": { "properties": {
"type": { "type": {
"type": "string", "type": "string",
"const": "Property" "enum": ["Property"]
}, },
"value": { "value": {
"type": [ "oneOf": [
"string", "string",
"number", "number",
"boolean", "boolean",
...@@ -49,7 +47,7 @@ ...@@ -49,7 +47,7 @@
"value" "value"
], ],
"additionalProperties": { "additionalProperties": {
"anyOf": [ "oneOf": [
{ {
"$ref": "#/definitions/Property" "$ref": "#/definitions/Property"
}, },
...@@ -64,7 +62,7 @@ ...@@ -64,7 +62,7 @@
"properties": { "properties": {
"type": { "type": {
"type": "string", "type": "string",
"const": "Relationship" "enum": ["Relationship"]
}, },
"object": { "object": {
"type": "string", "type": "string",
...@@ -91,7 +89,7 @@ ...@@ -91,7 +89,7 @@
"object" "object"
], ],
"additionalProperties": { "additionalProperties": {
"anyOf": [ "oneOf": [
{ {
"$ref": "#/definitions/Property" "$ref": "#/definitions/Property"
}, },
...@@ -106,10 +104,10 @@ ...@@ -106,10 +104,10 @@
"properties": { "properties": {
"type": { "type": {
"type": "string", "type": "string",
"const": "GeoProperty" "enum": ["GeoProperty"]
}, },
"value": { "value": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/Geometry"
}, },
"observedAt": { "observedAt": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/observedAt" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/observedAt"
...@@ -132,7 +130,7 @@ ...@@ -132,7 +130,7 @@
"value" "value"
], ],
"additionalProperties": { "additionalProperties": {
"anyOf": [ "oneOf": [
{ {
"$ref": "#/definitions/Property" "$ref": "#/definitions/Property"
}, },
...@@ -172,7 +170,7 @@ ...@@ -172,7 +170,7 @@
} }
}, },
"additionalProperties": { "additionalProperties": {
"anyOf": [ "oneOf": [
{ {
"$ref": "#/definitions/Property" "$ref": "#/definitions/Property"
}, },
...@@ -183,9 +181,6 @@ ...@@ -183,9 +181,6 @@
"$ref": "#/definitions/GeoProperty" "$ref": "#/definitions/GeoProperty"
} }
] ]
},
"propertyNames": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/PropertyNames"
} }
}, },
"Entity": { "Entity": {
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/EntityList.json",
"title": "NGSI-LD EntityList", "title": "NGSI-LD EntityList",
"description": "NGSI-LD EntityList", "description": "NGSI-LD EntityList",
"definitions": { "definitions": {
...@@ -11,7 +9,9 @@ ...@@ -11,7 +9,9 @@
} }
} }
}, },
"allOf": [{ "allOf": [
{
"$ref": "#/definitions/EntityList" "$ref": "#/definitions/EntityList"
}] }
]
} }
\ No newline at end of file
{
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/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/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/Name"
},
"@context": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/LdContext"
},
"location": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#"
},
"observationSpace": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#"
},
"operationSpace": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#"
},
"createdAt": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/createdAt"
},
"modifiedAt": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/modifiedAt"
}
},
"required": [
"type",
"id"
],
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
},
"propertyNames": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/PropertyNames"
}
}
{
"title": "Geometry",
"description": "One geometry as defined by GeoJSON. Licensed as per original source is https://github.com/fge/sample-json-schemas/blob/master/geojson/geometry.json",
"type": "object",
"required": [
"type",
"coordinates"
],
"allOf": [
{
"$ref": "#/definitions/Geometry"
}
],
"definitions": {
"position": {
"description": "A single position",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"additionalProperties": false
},
"positionArray": {
"description": "An array of positions",
"type": "array",
"items": {
"$ref": "#/definitions/position"
}
},
"lineString": {
"description": "An array of two or more positions",
"allOf": [
{
"$ref": "#/definitions/positionArray"
},
{
"minItems": 2
}
]
},
"linearRing": {
"description": "An array of four positions where the first equals the last",
"allOf": [
{
"$ref": "#/definitions/positionArray"
},
{
"minItems": 4
}
]
},
"polygon": {
"description": "An array of linear rings",
"type": "array",
"items": {
"$ref": "#/definitions/linearRing"
}
},
"Point": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"coordinates": {
"$ref": "#/definitions/position"
}
}
},
"MultiPoint": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"coordinates": {
"$ref": "#/definitions/positionArray"
}
}
},
"Polygon": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"coordinates": {
"$ref": "#/definitions/polygon"
}
}
},
"LineString": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"coordinates": {
"$ref": "#/definitions/lineString"
}
}
},
"MultiLineString": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/definitions/lineString"
}
}
}
},
"MultiPolygon": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"coordinates": {
"type": "array",
"items": {
"$ref": "#/definitions/polygon"
}
}
}
},
"Geometry": {
"description": " Avalid GeoJSON geometry object",
"oneOf": [
{
"$ref": "#/definitions/Point"
},
{
"$ref": "#/definitions/MultiPoint"
},
{
"$ref": "#/definitions/Polygon"
},
{
"$ref": "#/definitions/LineString"
},
{
"$ref": "#/definitions/MultiLineString"
},
{
"$ref": "#/definitions/MultiPolygon"
}
]
}
}
}
\ No newline at end of file
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/UpdateResult.json",
"title": "NGSI-LD Update Result", "title": "NGSI-LD Update Result",
"description": "NGSI-LD Update Result", "description": "NGSI-LD Update Result",
"definitions": { "definitions": {
"NotUpdatedDetails": { "NotUpdatedDetails": {
"type": "object",
"properties": {
"attributeName": { "attributeName": {
"type": "string", "type": "string",
"pattern": "" "pattern": ""
}, },
"reason": { "reason": {
"type": "string", "type": "string",
"minLenght": 1 "minLength": 1
}
} }
}, },
"UpdateResult": { "UpdateResult": {
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json",
"title": "NGSI-LD Common Definitions", "title": "NGSI-LD Common Definitions",
"description": "NGSI-LD Common", "description": "NGSI-LD Common",
"definitions": { "definitions": {
...@@ -27,7 +25,7 @@ ...@@ -27,7 +25,7 @@
"format": "date-time" "format": "date-time"
}, },
"LdContext": { "LdContext": {
"anyOf": [ "oneOf": [
{ {
"type": "object" "type": "object"
}, },
...@@ -39,7 +37,7 @@ ...@@ -39,7 +37,7 @@
"type": "array", "type": "array",
"minItems": 1, "minItems": 1,
"items": { "items": {
"anyOf": [ "oneOf": [
{ {
"type": "string", "type": "string",
"format": "uri" "format": "uri"
...@@ -109,7 +107,7 @@ ...@@ -109,7 +107,7 @@
] ]
}, },
"georel": { "georel": {
"anyOf": [ "oneOf": [
{ {
"type": "string", "type": "string",
"enum": [ "enum": [
...@@ -130,16 +128,16 @@ ...@@ -130,16 +128,16 @@
"coordinates": { "coordinates": {
"oneOf": [ "oneOf": [
{ {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/position" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/position"
}, },
{ {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/positionArray" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/positionArray"
}, },
{ {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/lineString" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/lineString"
}, },
{ {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/polygon" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/polygon"
} }
] ]
}, },
......
{
"$schema": "http://json-schema.org/draft-04/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json",
"title": "geometry",
"description": "One geometry as defined by GeoJSON. Licensed as per original source is https://github.com/fge/sample-json-schemas/blob/master/geojson/geometry.json",
"type": "object",
"required": [ "type", "coordinates" ],
"oneOf": [
{
"title": "Point",
"properties": {
"type": { "enum": [ "Point" ] },
"coordinates": { "$ref": "#/definitions/position" }
}
},
{
"title": "MultiPoint",
"properties": {
"type": { "enum": [ "MultiPoint" ] },
"coordinates": { "$ref": "#/definitions/positionArray" }
}
},
{
"title": "LineString",
"properties": {
"type": { "enum": [ "LineString" ] },
"coordinates": { "$ref": "#/definitions/lineString" }
}
},
{
"title": "MultiLineString",
"properties": {
"type": { "enum": [ "MultiLineString" ] },
"coordinates": {
"type": "array",
"items": { "$ref": "#/definitions/lineString" }
}
}
},
{
"title": "Polygon",
"properties": {
"type": { "enum": [ "Polygon" ] },
"coordinates": { "$ref": "#/definitions/polygon" }
}
},
{
"title": "MultiPolygon",
"properties": {
"type": { "enum": [ "MultiPolygon" ] },
"coordinates": {
"type": "array",
"items": { "$ref": "#/definitions/polygon" }
}
}
}
],
"definitions": {
"position": {
"description": "A single position",
"type": "array",
"minItems": 2,
"items": [ { "type": "number" }, { "type": "number" } ],
"additionalItems": false
},
"positionArray": {
"description": "An array of positions",
"type": "array",
"items": { "$ref": "#/definitions/position" }
},
"lineString": {
"description": "An array of two or more positions",
"allOf": [
{ "$ref": "#/definitions/positionArray" },
{ "minItems": 2 }
]
},
"linearRing": {
"description": "An array of four positions where the first equals the last",
"allOf": [
{ "$ref": "#/definitions/positionArray" },
{ "minItems": 4 }
]
},
"polygon": {
"description": "An array of linear rings",
"type": "array",
"items": { "$ref": "#/definitions/linearRing" }
}
}
}
...@@ -6,11 +6,6 @@ ...@@ -6,11 +6,6 @@
"definitions": { "definitions": {
"RegistrationInfo": { "RegistrationInfo": {
"type": "object", "type": "object",
"anyOf": [
{"required": ["entities"]},
{"required": ["properties"]},
{"required": ["relationships"]}
],
"properties": { "properties": {
"entities": { "entities": {
"type": "array", "type": "array",
...@@ -73,13 +68,13 @@ ...@@ -73,13 +68,13 @@
"$ref": "#/definitions/TimeInterval" "$ref": "#/definitions/TimeInterval"
}, },
"location": { "location": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/Geometry"
}, },
"observationSpace": { "observationSpace": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/Geometry"
}, },
"operationSpace": { "operationSpace": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/Geometry.json#/definitions/Geometry"
}, },
"expires": { "expires": {
"type": "string", "type": "string",
...@@ -98,15 +93,7 @@ ...@@ -98,15 +93,7 @@
"format": "uri" "format": "uri"
} }
}, },
"additionalProperties": { "additionalProperties": true
"type": [
"string",
"number",
"boolean",
"array",
"object"
]
}
}, },
"ContextSourceRegistration": { "ContextSourceRegistration": {
"allOf": [ "allOf": [
...@@ -122,7 +109,7 @@ ...@@ -122,7 +109,7 @@
}, },
"type": { "type": {
"type": "string", "type": "string",
"const": "ContextSourceRegistration" "enum": ["ContextSourceRegistration"]
}, },
"createdAt": { "createdAt": {
"$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/createdAt" "$ref": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/common.json#/definitions/createdAt"
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/subscriptions/Notification.json",
"title": "NGSI-LD Notification", "title": "NGSI-LD Notification",
"description": "NGSI-LD Notification", "description": "NGSI-LD Notification",
"type": "object", "type": "object",
...@@ -11,7 +9,9 @@ ...@@ -11,7 +9,9 @@
}, },
"type": { "type": {
"type": "string", "type": "string",
"const": "Notification" "enum": [
"Notification"
]
}, },
"subscriptionId": { "subscriptionId": {
"type": "string", "type": "string",
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/subscriptions/Subscription.json",
"title": "NGSI-LD Subscription", "title": "NGSI-LD Subscription",
"description": "NGSI-LD Subscription", "description": "NGSI-LD Subscription",
"definitions": { "definitions": {
...@@ -138,7 +136,7 @@ ...@@ -138,7 +136,7 @@
}, },
"type": { "type": {
"type": "string", "type": "string",
"const": "Subscription" "enum": ["Subscription"]
}, },
"notification": { "notification": {
"$ref": "#/definitions/NotificationParams" "$ref": "#/definitions/NotificationParams"
......
{ {
"$schema": "http://json-schema.org/schema#",
"$id": "https://forge.etsi.org/rep/NGSI-LD/NGSI-LD/raw/master/schema/subscriptions/SubscriptionList.json",
"title": "NGSI-LD Subscription List", "title": "NGSI-LD Subscription List",
"description": "NGSI-LD Subscription List", "description": "NGSI-LD Subscription List",
"definitions": { "definitions": {
...@@ -11,7 +9,9 @@ ...@@ -11,7 +9,9 @@
} }
} }
}, },
"allOf": [{ "allOf": [
{
"$ref": "#/definitions/SubscriptionList" "$ref": "#/definitions/SubscriptionList"
}] }
]
} }
\ No newline at end of file