naftiko: 1.0.0-alpha2 info: label: FIWARE-NGSI v2 Specification — Entities description: 'FIWARE-NGSI v2 Specification — Entities. 8 operations. Lead operation: List Entities. Self-contained Naftiko capability covering one Fiware business surface.' tags: - Fiware - Entities created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FIWARE_API_KEY: FIWARE_API_KEY capability: consumes: - type: http namespace: ngsiv2-entities baseUri: http://orion.lab.fiware.org description: FIWARE-NGSI v2 Specification — Entities business capability. Self-contained, no shared references. resources: - name: v2-entities path: /v2/entities operations: - name: listentities method: GET description: List Entities outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: A comma-separated list of elements. - name: type in: query type: string description: comma-separated list of elements. - name: idPattern in: query type: string description: A correctly formated regular expression. - name: typePattern in: query type: string description: A correctly formated regular expression. - name: q in: query type: string description: A query expression, composed of a list of statements - name: mq in: query type: string description: A query expression for attribute metadata, - name: georel in: query type: string description: Spatial relationship between matching entities and a - name: geometry in: query type: string description: Geografical area to which the query is restricted. - name: coords in: query type: string description: List of latitude-longitude - name: limit in: query type: number description: Limits the number of entities to be retrieved - name: offset in: query type: number description: Establishes the offset from where entities are retrieved - name: attrs in: query type: string description: Comma-separated list of attribute names whose data - name: metadata in: query type: string description: A list of metadata names to include in the response. - name: orderBy in: query type: string description: Criteria for ordering results. - name: options in: query type: string description: Options dictionary - name: createentity method: POST description: Create Entity outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Content-Type in: header type: string required: true - name: body in: body type: string required: true - name: options in: query type: string description: Options dictionary - name: v2-entities-entityId path: /v2/entities/{entityId} operations: - name: retrieveentity method: GET description: Retrieve Entity outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Id of the entity to be retrieved required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: attrs in: query type: string description: Comma-separated list of attribute names whose - name: metadata in: query type: string description: A list of metadata names to include in the response. - name: options in: query type: string description: Options dictionary - name: removeentity method: DELETE description: Remove Entity outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Id of the entity to be deleted required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: v2-entities-entityId-attrs path: /v2/entities/{entityId}/attrs operations: - name: retrieveentityattributes method: GET description: Retrieve Entity Attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Id of the entity to be retrieved required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: attrs in: query type: string description: Comma-separated list of attribute names whose - name: metadata in: query type: string description: A list of metadata names to include in the response. - name: options in: query type: string description: Options dictionary - name: replaceallentityattributes method: PUT description: Replace all entity attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Id of the entity in question. required: true - name: Content-Type in: header type: string required: true - name: body in: body type: string required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: options in: query type: string description: Operations options - name: updateorappendentityattributes method: POST description: Update or Append Entity Attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Entity id to be updated required: true - name: Content-Type in: header type: string required: true - name: body in: body type: string required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: options in: query type: string description: Operations options - name: updateexistingentityattributes method: PATCH description: Update Existing Entity Attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: entityId in: path type: string description: Id of the entity to be updated required: true - name: Content-Type in: header type: string required: true - name: body in: body type: string required: true - name: type in: query type: string description: Entity type, to avoid ambiguity in case there are several - name: options in: query type: string description: Operations options exposes: - type: rest namespace: ngsiv2-entities-rest port: 8080 description: REST adapter for FIWARE-NGSI v2 Specification — Entities. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v2/entities name: v2-entities description: REST surface for v2-entities. operations: - method: GET name: listentities description: List Entities call: ngsiv2-entities.listentities with: id: rest.id type: rest.type idPattern: rest.idPattern typePattern: rest.typePattern q: rest.q mq: rest.mq georel: rest.georel geometry: rest.geometry coords: rest.coords limit: rest.limit offset: rest.offset attrs: rest.attrs metadata: rest.metadata orderBy: rest.orderBy options: rest.options outputParameters: - type: object mapping: $. - method: POST name: createentity description: Create Entity call: ngsiv2-entities.createentity with: Content-Type: rest.Content-Type body: rest.body options: rest.options outputParameters: - type: object mapping: $. - path: /v1/v2/entities/{entityid} name: v2-entities-entityid description: REST surface for v2-entities-entityId. operations: - method: GET name: retrieveentity description: Retrieve Entity call: ngsiv2-entities.retrieveentity with: entityId: rest.entityId type: rest.type attrs: rest.attrs metadata: rest.metadata options: rest.options outputParameters: - type: object mapping: $. - method: DELETE name: removeentity description: Remove Entity call: ngsiv2-entities.removeentity with: entityId: rest.entityId type: rest.type outputParameters: - type: object mapping: $. - path: /v1/v2/entities/{entityid}/attrs name: v2-entities-entityid-attrs description: REST surface for v2-entities-entityId-attrs. operations: - method: GET name: retrieveentityattributes description: Retrieve Entity Attributes call: ngsiv2-entities.retrieveentityattributes with: entityId: rest.entityId type: rest.type attrs: rest.attrs metadata: rest.metadata options: rest.options outputParameters: - type: object mapping: $. - method: PUT name: replaceallentityattributes description: Replace all entity attributes call: ngsiv2-entities.replaceallentityattributes with: entityId: rest.entityId Content-Type: rest.Content-Type body: rest.body type: rest.type options: rest.options outputParameters: - type: object mapping: $. - method: POST name: updateorappendentityattributes description: Update or Append Entity Attributes call: ngsiv2-entities.updateorappendentityattributes with: entityId: rest.entityId Content-Type: rest.Content-Type body: rest.body type: rest.type options: rest.options outputParameters: - type: object mapping: $. - method: PATCH name: updateexistingentityattributes description: Update Existing Entity Attributes call: ngsiv2-entities.updateexistingentityattributes with: entityId: rest.entityId Content-Type: rest.Content-Type body: rest.body type: rest.type options: rest.options outputParameters: - type: object mapping: $. - type: mcp namespace: ngsiv2-entities-mcp port: 9090 transport: http description: MCP adapter for FIWARE-NGSI v2 Specification — Entities. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-entities description: List Entities hints: readOnly: true destructive: false idempotent: true call: ngsiv2-entities.listentities with: id: tools.id type: tools.type idPattern: tools.idPattern typePattern: tools.typePattern q: tools.q mq: tools.mq georel: tools.georel geometry: tools.geometry coords: tools.coords limit: tools.limit offset: tools.offset attrs: tools.attrs metadata: tools.metadata orderBy: tools.orderBy options: tools.options outputParameters: - type: object mapping: $. - name: create-entity description: Create Entity hints: readOnly: false destructive: false idempotent: false call: ngsiv2-entities.createentity with: Content-Type: tools.Content-Type body: tools.body options: tools.options outputParameters: - type: object mapping: $. - name: retrieve-entity description: Retrieve Entity hints: readOnly: true destructive: false idempotent: true call: ngsiv2-entities.retrieveentity with: entityId: tools.entityId type: tools.type attrs: tools.attrs metadata: tools.metadata options: tools.options outputParameters: - type: object mapping: $. - name: remove-entity description: Remove Entity hints: readOnly: false destructive: true idempotent: true call: ngsiv2-entities.removeentity with: entityId: tools.entityId type: tools.type outputParameters: - type: object mapping: $. - name: retrieve-entity-attributes description: Retrieve Entity Attributes hints: readOnly: true destructive: false idempotent: true call: ngsiv2-entities.retrieveentityattributes with: entityId: tools.entityId type: tools.type attrs: tools.attrs metadata: tools.metadata options: tools.options outputParameters: - type: object mapping: $. - name: replace-all-entity-attributes description: Replace all entity attributes hints: readOnly: false destructive: false idempotent: true call: ngsiv2-entities.replaceallentityattributes with: entityId: tools.entityId Content-Type: tools.Content-Type body: tools.body type: tools.type options: tools.options outputParameters: - type: object mapping: $. - name: update-append-entity-attributes description: Update or Append Entity Attributes hints: readOnly: false destructive: false idempotent: false call: ngsiv2-entities.updateorappendentityattributes with: entityId: tools.entityId Content-Type: tools.Content-Type body: tools.body type: tools.type options: tools.options outputParameters: - type: object mapping: $. - name: update-existing-entity-attributes description: Update Existing Entity Attributes hints: readOnly: false destructive: false idempotent: true call: ngsiv2-entities.updateexistingentityattributes with: entityId: tools.entityId Content-Type: tools.Content-Type body: tools.body type: tools.type options: tools.options outputParameters: - type: object mapping: $.