Skip to content
full_api.json 101 KiB
Newer Older
canterafonsj's avatar
canterafonsj committed
{
  "openapi": "3.0.1",
  "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/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/allOf/0/properties/location/definitions/position"
                },
                {
                  "$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/allOf/0/properties/location/definitions/positionArray"
                },
                {
                  "$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/allOf/0/properties/location/definitions/lineString"
                },
                {
                  "$ref": "#/paths/~1csourceRegistrations~1/post/requestBody/content/application~1json%3Bapplication~1ld%2Bjson/schema/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
            }
Loading full blame...