Skip to content
common.json 3.19 KiB
Newer Older
canterafonsj's avatar
canterafonsj committed
{
  "$schema": "http://json-schema.org/schema#",
canterafonsj's avatar
canterafonsj committed
  "id": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/common.json",
canterafonsj's avatar
canterafonsj committed
  "title": "NGSI-LD Common Definitions",
  "description": "NGSI-LD Common",
canterafonsj's avatar
canterafonsj committed
  "definitions": {
    "Name": {
      "type": "string",
      "pattern": "^(\\d|[a-zA-Z]|_)+$",
      "minLength": 1,
      "description": "NGSI-LD Name"
    },
canterafonsj's avatar
canterafonsj committed
    "observedAt": {
      "type": "string",
      "format": "date-time"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "modifiedAt": {
      "type": "string",
      "format": "date-time"
    },
canterafonsj's avatar
canterafonsj committed
    "LdContext": {
      "anyOf": [
        {
          "type": "object"
        },
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
canterafonsj's avatar
canterafonsj committed
          "minItems": 1,
canterafonsj's avatar
canterafonsj committed
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "object"
              }
            ]
          }
        }
      ]
    },
    "Endpoint": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "accept": {
          "type": "string",
          "enum": [
            "application/json",
            "application/ld+json"
          ]
        }
      }
canterafonsj's avatar
canterafonsj committed
    },
    "EntityInfo": {
canterafonsj's avatar
canterafonsj committed
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uri"
canterafonsj's avatar
canterafonsj committed
        },
canterafonsj's avatar
canterafonsj committed
        "type": {
          "$ref": "#/definitions/Name"
canterafonsj's avatar
canterafonsj committed
        },
canterafonsj's avatar
canterafonsj committed
        "idPattern": {
          "type": "string",
          "format": "regex"
canterafonsj's avatar
canterafonsj committed
        }
canterafonsj's avatar
canterafonsj committed
      },
canterafonsj's avatar
canterafonsj committed
      "required": [
        "type"
      ]
canterafonsj's avatar
canterafonsj committed
    }
canterafonsj's avatar
canterafonsj committed
  },
  "ProblemDetails": {
    "type": "object",
    "properties": {
      "type": {
        "type": "string",
        "format": "uri"
      },
      "title": {
        "type": "string"
      },
      "detail": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ]
canterafonsj's avatar
canterafonsj committed
  },
  "georel": {
    "anyOf": [
      {
        "type": "string",
        "enum": [
          "equals",
          "disjoint",
          "intersects",
          "within",
          "contains",
          "overlaps"
        ]
      },
      {
        "type": "string",
        "pattern": "^near;((maxDistance==\\d+)|(minDistance==\\d+))$"
      }
    ]
  },
  "coordinates": {
    "oneOf": [
      {
        "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/position"
      },
      {
        "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/positionArray"
      },
      {
        "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/lineString"
      },
      {
        "$ref": "https://forge.etsi.org/gitlab/NGSI-LD/NGSI-LD/raw/master/schema/geometry-schema.json#/definitions/polygon"
      }
    ]
  },
  "geometry": {
    "type": "string",
    "enumeration": [
      "Point",
      "MultiPoint",
      "LineString",
      "MultiLineString",
      "Polygon",
      "MultiPolygon"
    ]
canterafonsj's avatar
canterafonsj committed
  }
canterafonsj's avatar
canterafonsj committed
}