{ "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" } } } } } } } } }