Unverified Commit 75c2d60c authored by Daniel González-Sánchez's avatar Daniel González-Sánchez Committed by GitHub
Browse files

Merge pull request #4 from giros-dit/1.6.1-json-ld-context-ops

NGSI-LD JSON-LD Context Operations - OAS 1.6.1
parents 494982da 2f55b363
Loading
Loading
Loading
Loading
+84 −39
Original line number Diff line number Diff line
@@ -2452,18 +2452,29 @@ paths:
        With this operation, a client can ask the Broker to store the full content
        of a specific @context, by giving it to the Broker.
      operationId: createContext
      parameters:
        - $ref: '#/components/parameters/Headers.ngsildTenant'
      requestBody:
        description: |
          Payload body in the request contains a JSON object that has a root node named @context,
          which represents a JSON-LD "local" context.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                '@context':
                  $ref:  '#/components/schemas/LdContext'
              required:
                - '@context'
          application/json+ld:
            schema:
              type: object
              properties:
                '@context':
                  $ref:  '#/components/schemas/LdContext'
              required:
                - '@context'
      responses:
        '201':
          description: |
@@ -2499,10 +2510,7 @@ paths:
        # Query params
        - $ref: '#/components/parameters/Query.details'
        - $ref: '#/components/parameters/Query.kind'
        # Local Query param
        - $ref: '#/components/parameters/Query.local'
        # Request headers
        - $ref: '#/components/parameters/Headers.Link'
        - $ref: '#/components/parameters/Headers.ngsildTenant'
      responses:
        '200':
@@ -2513,7 +2521,6 @@ paths:
            NGSILD-Tenant:
              $ref: '#/components/headers/NGSILD-Tenant'
          content:
            # TODO: Output data described in 5.13.3.5, but not formally defined in tables.
            application/json:
              schema:
                oneOf:
@@ -2523,31 +2530,17 @@ paths:
                      format: uri
                  - type: array
                    items:
                      type: object
                      $ref: '#/components/schemas/LdContextMetadata'
            application/json+ld:
              schema:
                oneOf:
                  - type: array
                    items:
                      allOf:
                        - type: string
                      type: string
                      format: uri
                        - type: object
                          required:
                            - '@context'
                          properties:
                            '@context':
                              $ref:  '#/components/schemas/LdContext'
                  - type: array
                    items:
                      allOf:
                        - type: object
                        - type: object
                          required:
                            - '@context'
                          properties:
                            '@context':
                              $ref:  '#/components/schemas/LdContext'
                      $ref: '#/components/schemas/LdContextMetadata'
        '400':
          $ref: '#/components/responses/BadRequest'
  /jsonldContexts/{contextId}:
@@ -2568,10 +2561,7 @@ paths:
        - $ref: '#/components/parameters/Path.contextId'
        # Query params
        - $ref: '#/components/parameters/Query.details'
        # Local Query param
        - $ref: '#/components/parameters/Query.local'
        # Request headers
        - $ref: '#/components/parameters/Headers.Link'
        - $ref: '#/components/parameters/Headers.ngsildTenant'
      responses:
        '200':
@@ -2586,23 +2576,36 @@ paths:
          content:
            application/json:
              schema:
                type: object
                oneOf:
                  - type: object
                    properties:
                      '@context':
                        $ref: '#/components/schemas/LdContext'
                  - $ref: '#/components/schemas/LdContextMetadata'
            application/json+ld:
              schema:
                allOf:
                oneOf:
                  - type: object
                    required:
                      - '@context'
                    properties:
                      '@context':
                        $ref: '#/components/schemas/LdContext'
                  - type: object
                  - $ref: '#/components/schemas/LdContextMetadata'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          allOf:
            $ref: '#/components/responses/NotFound'
          description: |
            It is used when a client provided an
            @context identifier not known to the
            system, see clause 6.3.2. 
        '422':
          allOf:
            $ref: '#/components/responses/Unprocessable'
          description: |
            It is used when a client indicated an
            @context of type "Cached", see
            clause 6.3.2. 
    delete:
      tags:
        - JSON-LD Context API
@@ -2623,10 +2626,7 @@ paths:
        - $ref: '#/components/parameters/Path.contextId'
        # Query params
        - $ref: '#/components/parameters/Query.reload'
        # Local Query param
        - $ref: '#/components/parameters/Query.local'
        # Request headers
        - $ref: '#/components/parameters/Headers.Link'
        - $ref: '#/components/parameters/Headers.ngsildTenant'
      responses:
        '204':
@@ -2638,9 +2638,17 @@ paths:
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          allOf:
            $ref: '#/components/responses/NotFound'
          description: |
            It is used when a client provided an
            @context identifier not known to the
            system, see clause 6.3.2. 
        '503':
          allOf:
            $ref: '#/components/responses/ServiceUnavailable'
          description: |
            It is used when re-downloading fails. 

components:
  headers:
@@ -4421,6 +4429,43 @@ components:
              - type: string
                format: uri
              - type: object
    LdContextMetadata:
      description: |
        JSON object which represents information (metadata)
        about an @context currently stored by the Broker as defined in 5.13.3.5. It contains information about the @context's
        original URL (if any), its local identifier in the Broker's storage, its kind ("Cached", "Hosted" and "ImplicitlyCreated"),
        its creation timestamp, its expiry date (if "Cached"), and additional optional information.
      type: array
      items:
        type: object
        properties:
          "URL": 
            type: string
            format: uri
          "localId":
            type: string
            format: uri
          "kind":
            type: string
            enum:
              - Cached
              - Hosted
              - ImplicitlyCreated
          "timestamp":
            type: string
            format: date-time
          "lastUsage":
            type: string
            format: date-time
          "numberOfHits":
            type: integer
          "extraInfo":
            type: object
        required:
          - "URL"
          - "localId"
          - "kind"
          - "timestamp"
    NotUpdatedDetails:
      description: |
        5.2.19 represents additional information provided by an implementation