Commit 270693c8 authored by daniel-gonzalez-sanchez's avatar daniel-gonzalez-sanchez
Browse files

Updating example of custom OpenAPI schemas that are compliant with the NGSI-LD...

Updating example of custom OpenAPI schemas that are compliant with the NGSI-LD OAS for IoT sensors use case.
parent e5c386e2
Loading
Loading
Loading
Loading
+141 −0
Original line number Diff line number Diff line
openapi: 3.0.3
info:
  title: Example schemas for IoT device with temperature and humidity sensors
  version: 0.0.1
  description: |
    Example schemas compliant with the NGSI-LD OAS metamodel according to ETSI GS CIM 009.
paths: {}
components:
  schemas:
    TemperatureSensor:
      description: | 
        NGSI-LD Entity Type that represents a temperature sensor.
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Entity'
        - type: object
          properties:
            type:
              description: NGSI-LD Entity identifier. It has to be TemperatureSensor.
              type: string
              enum:
                - TemperatureSensor
              default: TemperatureSensor
            temperature:
              $ref: '#/components/schemas/Temperature'
        - required:
            - type
            - temperature
    Temperature:
      description: | 
        NGSI-LD Property Type. The temperature measurement.
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Property'
        - type: object
          properties: 
            value:
              type: number
          required:
            - value 
      additionalProperties: false
    HumiditySensor:
      description: | 
        NGSI-LD Entity Type that represents a humidity sensor.
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Entity'
        - type: object
          properties:
            type:
              description: NGSI-LD Entity identifier. It has to be HumiditySensor.
              type: string
              enum:
                - HumiditySensor
              default: HumiditySensor
            humidity:
              $ref: '#/components/schemas/Humidity'
        - required:
            - type
            - humidity
    Humidity:
      description: | 
        NGSI-LD Property Type. The humidity measurement.
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Property'
        - type: object
          properties:
            value:
              type: number
          required:
            - value
      additionalProperties: false
    IotDevice:
      description: |
        NGSI-LD Entity Type that represents an IoT device.
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Entity'
        - type: object
          properties:
            type:
              description: NGSI-LD Entity identifier. It has to be IotDevice.
              type: string
              enum:
                - IotDevice
              default: IotDevice
            name:
              $ref: '#/components/schemas/IotName'
            description:
              $ref: '#/components/schemas/IotDescription'
            hasTemperatureSensor:
              $ref: '#/components/schemas/HasTemperatureSensor'
            hasHumiditySensor:
              $ref: '#/components/schemas/HasHumiditySensor'
        - required:
            - type
            - description
    IotName:
      description: NGSI-LD Property Type. The IoT device name.
      additionalProperties: false
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Property'
        - type: object
          properties:
            value:
              type: string
          required:
            - value
    IotDescription:
      description: NGSI-LD Property Type. The IoT device description.
      additionalProperties: false
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Property'
        - type: object
          properties:
            value:
              type: string
          required:
            - value
    HasTemperatureSensor:
      additionalProperties: false
      description: |
        NGSI-LD Relationship Type to identify a temperature sensor of the IoT device (i.e., the identifier of an NGSI-LD    
        Entity of type TemperatureSensor).
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Relationship'
        - type: object
          properties:
            object:
              type: string
          required:
            - object    
    HasHumiditySensor:
      additionalProperties: false
      description: |
        NGSI-LD Relationship Type to identify a humidity sensor of the IoT device (i.e., the identifier of an NGSI-LD    
        Entity of type HumiditySensor).
      allOf:
        - $ref: '../../ngsi-ld-api.yaml#/components/schemas/Relationship'
        - type: object
          properties:
            object:
              type: string
          required:
            - object
 No newline at end of file
+0 −39
Original line number Diff line number Diff line
openapi: 3.0.3
info:
  title: Example schemas for a temperature sensor
  version: 0.0.1
  description: |
    Example schemas compliant with the NGSI-LD OAS V1.6.1 metamodel according to ETSI GS CIM 009 V1.6.1.
paths: {}
components:
  schemas:
    TemperatureSensor:
      description: | 
        NGSI-LD Entity Type that represents a temperature sensor.
      allOf:
        - $ref: 'https://forge.etsi.org/rep/cim/NGSI-LD/-/raw/1.6.1/ngsi-ld-api.yaml#/components/schemas/Entity'
        - type: object
          properties:
            type:
              description: NGSI-LD Entity identifier. It has to be TemperatureSensor.
              type: string
              enum:
                - TemperatureSensor
              default: TemperatureSensor
            temperature:
              $ref: '#/components/schemas/Temperature'
        - required:
            - type
            - temperature
    Temperature:
      description: | 
        NGSI-LD Property Type. The temperature measurement.
      allOf:
        - $ref: 'https://forge.etsi.org/rep/cim/NGSI-LD/-/raw/1.6.1/ngsi-ld-api.yaml#/components/schemas/Property'
        - type: object
          properties: 
            value:
              type: number
          required:
            - value 
      additionalProperties: false
 No newline at end of file