Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Open API Documentation
showUrlfalse
---
openapi: 3.0.0
info:
  description: This is the specifications for the Linksper Console API
  version: "1.0.0"
  title: Linksper Console API
  contact:
    email: [email protected]
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'

tags:
  - name: Authentication
    description: Authenticate to the API
  - name: Explore
    description: Explore the BOS hiearchies and their respectives assets
  - name: Manage
    description: Create, modify delete data models content
  - name: Operate
    description: Get information / update for a specific type of assets
  - name: Troubleshoot
    description: Check BOS status

paths:
  /oauth/token:
    post:
      tags:
        - Authentication
      summary: Authenticate using jwt
      operationId: authenticate
      description: Authenticate to the API using JWT.
      externalDocs:
        description: How to setup a user with JWT in Niagara
        url: https://doc.active-framework.com/display/APIDR/Getting+Started+With+JWT+Authenticaion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: username
                password:
                  type: string
                  description: password
              required:
                - username
                - password
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    properties:
                      user:
                        type: string
                        description: user
                      token:
                        type: string
                        description: password

        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: Internal server error
  /v1/explore/hierarchies:
    get:
      tags:
        - Explore
      summary: Explore all hierarchies
      operationId: exploreHierarchies
      description: Retrieve all the hierarchy roots with the lk:exposeOnApi Tag
      responses:
        '200':
          description: all the hierarchy roots
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '500':
          description: Internal server error
  /v1/explore/hierarchies/{name}:
    get:
      tags:
        - Explore
      summary: Explore a single hierarchy
      operationId: exploreHierarchy
      description: Retrieve the hierarchy that match the given name
      parameters:
        - in: path
          name: name
          schema:
            type: string
          required: true
          description: name of the hierarchy to get
        - $ref: "#/components/parameters/additionalFields"
        - in: query
          name: depth
          description: maximum depth of descendants
          schema:
            type: integer
            format: int32
            minimum: 0
            default: 1
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Negative depth value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
             - Cannot find the hierarchy with the given name
        '500':
          description: Internal server error
  /v1/explore/assets:
    get:
      tags:
        - Explore
      summary: Explore a list of assets
      operationId: exploreAsset
      description: Retrieve the asset matching the given query or the given assetType, if both parameters are given, only the query will be taken into account
      parameters:
        - in: query
          name: query
          description: The full query that will be executed to obtain the assets
          schema:
            type: string
        - in: query
          name: assetType
          description: The desired assetType
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: Internal server error
  /v1/explore/assets/{id}:
    get:
      tags:
        - Explore
      summary: Explore an asset
      operationId: exploreAssetById
      description: Retrieve the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: Internal server error
  /v1/explore/assets/{id}/alarms:
    get:
      tags:
        - Explore
      summary: Explore the alarms of the given asset
      operationId: exploreAssetsAlarms
      description: Retrieve the alarms associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/aggregatedData"
        - $ref: "#/components/parameters/alarmAdditionalFields"
        - $ref: "#/components/parameters/alarmLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alarm'
        '400':
          description: |
            Bad request
            - Negative limit value 
            - Limit is less than MaxAlarmCount
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: Internal server error
  /v1/explore/assets/{id}/devices:
    get:
      tags:
        - Explore
      summary: Explore the devices of the given asset
      operationId: exploreAssetsDevices
      description: Retrieve the devices associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the asset with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/equipment:
    get:
      tags:
        - Explore
      summary: Explore the equipment of the given asset
      operationId: exploreAssetsEquipment
      description: Retrieve the equipment associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the asset with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/histories:
    get:
      tags:
        - Explore
      summary: Explore the histories of the given hierarchy
      operationId: exploreHierarchyHistories
      description: |
        Retrieve the histories contained in the hierarchy matching the given id. Will encode 
        - the id 
        - the timeZone
        - the capacity
        - the fullPolicy
        - the interval
        - the valueFacets 
        - the tags
      parameters:
        - in: path
          name: id
          description: ID of the Asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/rollupInterval"
        - $ref: "#/components/parameters/rollupOperator"
        - $ref: "#/components/parameters/delta"
        - $ref: "#/components/parameters/retrieveValues"
        - $ref: "#/components/parameters/historyLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/History'
        '400':
          description: |
            Bad request
            - Negative limit value 
            - Limit is higher than MaxHistoryCount
            - Invalid parameter value
            - The targeted Node doesn't have the "b:definition" tag 
            - The targeted InfoSource's parent ControlPoint doesn't have the n:history tag
            - The given id targets a source which parent isn't a DeviceNetwork or a Device or a Folder or a Point
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the hierarchy with the given id
            - Found no aggregated/raw histories associated to the hierarchy with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/points:
    get:
      tags:
        - Explore
      summary: Explore the points of the associated asset
      operationId: exploreAssetsPoints
      description: Retrieve the points associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/schedules:
    get:
      tags:
        - Explore
      summary: Explore the schedules of the associated asset
      operationId: exploreAssetsSchedules
      description: Retrieve the schedules associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
        - in: query
          name: retrieveEvents
          description: if set to true, the request will retrieve the special and recurring events (if possible) of the schedules
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/synthesisHistories:
    get:
      tags:
        - Explore
      summary: Explore the Synthesis Histories of the associated asset
      operationId: exploreAssetsSynthesisHistories
      description: Retrieve the Synthesis Histories associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the Asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/rollupInterval"
        - $ref: "#/components/parameters/rollupOperator"
        - $ref: "#/components/parameters/delta"
        - $ref: "#/components/parameters/retrieveValues"
        - $ref: "#/components/parameters/historyLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/History'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Negative limit value 
            - Limit is higher than MaxHistoryCount
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: internal server error
  /v1/explore/assets/{id}/synthesisPoints:
    get:
      tags:
        - Explore
      summary: Explore the synthesis points of the associated asset
      operationId: exploreAssetsSynthesisPoints
      description: Retrieve the synthesis points associated to the asset matching the given id
      parameters:
        - in: path
          name: id
          description: ID of the asset to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Invalid target: The id targets an Asset with incorrect or missing values
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the Asset with the given id
        '500':
          description: internal server error
  /v1/manage/models:
    get:
      tags:
        - Manage
      summary: Get all the Nodes associated to a model
      operationId: getManageModels
      description: Retrieve all the Nodes associated to a model
      parameters:
        - in: query
          name: aspect
          description: filter on the parent aspect
          required: false
          explode: true
          schema:
            type: string
        - in: query
          name: nodeDefinition
          description: filter on the parent Node Definition
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
        - in: query
          name: dataModelOnly
          description: whether to query only b:dataModels Nodes
          required: false
          explode: true
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: object
                properties:
                  AspectName:
                    type: object
                    properties:
                      NodeDefinitionName:
                        type: array
                        items:
                          $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            - Aspect not found
            - Node Definition not found
        '500':
          description: Internal server error
    post:
      tags:
        - Manage
      summary: Create models
      operationId: postManageModels
      description: Create new Nodes
      parameters:
        - $ref: "#/components/parameters/additionalFields"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/Node"
      responses:
        '200':
          description: two arrays, success with all the successfully created Nodes, failure with all the failed creations
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
                  failures:
                    type: object
                    properties:
                      nodeID:
                        type: string
                        example: "Error message"
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Missing parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            - Parent Aspect not found    
            - Parent NodeDefinition not found
        '500':
          description: Internal server error
    put:
      tags:
        - Manage
      summary: update model
      operationId: putManageModels
      description: Update a single Node
      parameters:
        - $ref: "#/components/parameters/additionalFields"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NodeForUpdate"
      responses:
        '200':
          description: the updated Node
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Missing parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Target node not found
        '500':
          description: Internal server error
    delete:
      tags:
        - Manage
      summary: delete model
      operationId: deleteManageModels
      description: Delete Nodes
      parameters:
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: the deleted Nodes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
            - Missing parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Target node not found
        '500':
          description: Internal server error
  /v1/operate/alarms:
    get:
      tags:
        - Operate
      summary: Get the alarms matching the query
      operationId: operateAlarms
      description: Retrieve the alarms matching the given query
      parameters:
        - in: query
          name: query
          description: filter on the alarms, bql predicate
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/alarmAdditionalFields"
        - $ref: "#/components/parameters/alarmLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alarm'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
    post:
      tags:
        - Operate
      summary: ack the alarms matching the uuids
      operationId: postOperateAlarms
      description: Ack the alarms matching the uuids
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uuid:
                  type: array
                  description: filter on the alarms to ack
                  example: [ "a93baf31-8072-4315-b168-ddca1fa3fd9d" ]
                  items:
                    type: string
              required:
                - uuid
      responses:
        '200':
          description: two arrays, success with all the uuids of the alarms successfully acked, failure with all the uuids of the alarms on which the ack wasn't possible
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      type: string
                  failures:
                    type: array
                    items:
                      type: string
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/alarms/{uuid}:
    get:
      tags:
        - Operate
      summary: Get the alarm matching the uuid
      operationId: operateAlarm
      description: Retrieve the alarm matching the given uuid
      parameters:
        - in: path
          name: uuid
          description: uuid of the target
          required: true
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/alarmAdditionalFields"
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alarm'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Resource not found
        '500':
          description: Internal server error
  /v1/operate/components:
    get:
      tags:
        - Operate
      summary: Get the components matching the query
      operationId: operateComponents
      description: Retrieve the components matching the given query
      parameters:
        - in: query
          name: query
          description: filter on the devices, can be any query
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/devices:
    get:
      tags:
        - Operate
      summary: Get the devices matching the query
      operationId: operateDevices
      description: Retrieve the devices and the PointFolders (resulting from a propagation) matching the given query
      parameters:
        - in: query
          name: query
          description: filter on the devices, neql predicate
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/devices/{id}:
    get:
      tags:
        - Operate
      summary: Get the device matching the id
      operationId: getOperateDevice
      description: Retrieve the device or the PointFolder (resulting from a propagation) matching the given id
      parameters:
        - in: path
          name: id
          description: id of the target
          required: true
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/equipment:
    get:
      tags:
        - Operate
      summary: Get the equipment matching the query
      operationId: operateEquipment
      description: Retrieve the equipment matching the given query
      parameters:
        - in: query
          name: query
          description: filter on the devices, neql predicate
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/equipment/{id}:
    get:
      tags:
        - Operate
      summary: Get the equipment matching the id
      operationId: getOperateSingleEquipment
      description: Retrieve the equipment matching the given id
      parameters:
        - in: path
          name: id
          description: id of the target
          required: true
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/histories:
    get:
      tags:
        - Operate
      summary: Get the histories matching the query.
      operationId: operateHistories
      description: |
        Retrieve the histories contained in the model matching the given query. Will encode 
        - the id 
        - the timeZone
        - the capacity
        - the fullPolicy
        - the interval
        - the valueFacets 
        - the tags
      parameters:
        - in: query
          name: query
          description: filter on the histories, bql predicate
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/rollupInterval"
        - $ref: "#/components/parameters/rollupOperator"
        - $ref: "#/components/parameters/delta"
        - $ref: "#/components/parameters/retrieveValues"
        - $ref: "#/components/parameters/historyLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/History'
        '400':
          description: |
            Bad request
            - Empty result
            - Start is after end
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/histories/{id}:
    get:
      tags:
        - Operate
      summary: Explore the histories of the given source. If the history comes from a NiagaraHistoryimport, it will fetch the latest data.
      operationId: getOperateModelHistoriesForId
      description: |
        Retrieve the histories contained in the model matching the given id. Will encode 
        - the id 
        - the timeZone
        - the capacity
        - the fullPolicy
        - the interval
        - the valueFacets 
        - the tags
      parameters:
        - in: path
          name: id
          description: ID of the source to get
          schema:
            type: string
          required: true
        - $ref: "#/components/parameters/period"
        - $ref: "#/components/parameters/startDate"
        - $ref: "#/components/parameters/endDate"
        - $ref: "#/components/parameters/rollupInterval"
        - $ref: "#/components/parameters/rollupOperator"
        - $ref: "#/components/parameters/delta"
        - $ref: "#/components/parameters/retrieveValues"
        - $ref: "#/components/parameters/historyLimit"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/History'
        '400':
          description: |
            Bad request
            - Negative limit value 
            - Limit is less than MaxHistoryCount
            - Invalid parameter value
            - The targeted Node doesn't have the "b:definition" tag 
            - The targeted InfoSource's parent ControlPoint doesn't have the n:history tag
            - The given id targets a source which parent isn't a DeviceNetwork or a Device or a Folder or a Point
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the model with the given id
            - Found no aggregated/raw histories associated to the model with the given id
        '500':
          description: internal server error
    put:
      tags:
        - Operate
      summary: Add a record the the History inside the targeted source.
      operationId: putExploreModelHistoriesForId
      description: |
        Create a History Record matching the record type of the History and append it to the History. As for now, BooleanTrendRecords, EnumTrendRecords, NumericTrendRecords and StringRecords are supported.
      parameters:
        - in: path
          name: id
          description: ID of the source to get
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                properties:
                  date:
                    type: string
                    description: the timestamp of the record in ISO 8601 format
                    example: "2021-05-25T12:00:00.000Z"
                  value:
                    type: string
                    description: the value of the record in a string (example, for a BooleanTrendRecords, you must use "true" instead of true). For an EnumTrendRecord, it is possible to use the ordinal or the tag.
                    example: "myValue"
                  status:
                    type: string
                    description: the status of the record
                    enum: [ ok, disabled, fault, down, alarm, stale, overridden, null, unackedAlarm ]
                required:
                  - action
      responses:
        '200':
          description: success message
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Records successfully added

        '400':
          description: |
            Bad request
            - Invalid parameter value
            - The targeted history record type isn't supported
            - Cannot append out-of-order record
            - Cannot create a Dynamic enum from the tag value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Ressource not found
            - Cannot find the source with the given id
            - The target source has no HistoryExts
        '500':
          description: internal server error
  /v1/operate/points:
    get:
      tags:
        - Operate
      summary: Get the points matching the given query
      operationId: operatePoints
      description: Retrieve the points matching the query
      parameters:
        - in: query
          name: query
          description: filter on the points, neql predicate
          required: false
          schema:
            type: string
        - in: query
          name: status
          description: filter on the point status
          required: false
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
    post:
      tags:
        - Operate
      summary: Invoke an action on targeted points
      operationId: postOperatePoints
      description: Generate the value, retrieve the action and invoke it on the target points
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: neql filter on the points
                  example: "n:type = 'control:NumericWritable'"
                action:
                  type: string
                  description: Name of the action
                  example: "override"
                value:
                  type: string
                  description: The Argument of the action. Always a String
                  example: "10.0"
                duration:
                  type: integer
                  description: In the case of an override, the duration of the override in milliseconds
                  example: "10000"
              required:
                - action
      responses:
        '200':
          description: two arrays, success with all the components on which the action was successfully invoked, failure with all the components on which the action wasn't successfully invoked
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
                  failures:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Negative duration value 
            - The given query doesn't target any points
            - The action doesn't exist
            - Cannot build the argument
            - Invalid parameter value
        '500':
          description: Internal server error
  /v1/operate/points/{id}:
    get:
      tags:
        - Operate
      summary: Get the point matching the given id
      operationId: getOperatePoint
      description: Retrieve the point matching the id
      parameters:
        - in: path
          name: id
          description: id of the target point
          required: true
          schema:
            type: string
        - in: query
          name: status
          description: filter on the point status
          required: false
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: |
            Resource not found
        '500':
          description: Internal server error
    post:
      tags:
        - Operate
      summary: Invoke an action
      operationId: postOperatePoint
      description: Invoke an action on the point matching the id
      parameters:
        - in: path
          name: id
          description: id of the target point
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                  description: Name of the action
                  example: "override"
                value:
                  type: string
                  description: The Argument of the action. Always a String
                  example: "10.0"
                duration:
                  type: integer
                  description: In the case of an override, the duration of the override in milliseconds
                  example: "10000"
              required:
                - action
      responses:
        '200':
          description: two arrays, success with all the components on which the action was successfully invoked, failure with all the components on which the action wasn't successfully invoked
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
                  failures:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Negative duration value 
            - The given query doesn't target any points
            - The action doesn't exist
            - Cannot build the argument
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/query:
    get:
      tags:
        - Operate
      summary: Get the table matching the query
      operationId: operateQuery
      description: Resolve the query and encode the resulting table
      parameters:
        - in: query
          name: query
          description: the query to resolve, must result in a table
          required: true
          explode: true
          schema:
            type: string
      responses:
        '200':
          description: search results matching query, the content of the objects will entirely depend on the query
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: |
            Bad request
            - Invalid query
        '500':
          description: Internal server error
  /v1/operate/reference:
    get:
      tags:
        - Operate
      summary: Get the reference matching the query
      operationId: operateReference
      description: Retrieve the reference matching the given query
      parameters:
        - in: query
          name: query
          description: filter on the references, bql predicate
          required: false
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '500':
          description: Internal server error
  /v1/operate/reference/{id}:
    get:
      tags:
        - Operate
      summary: Get the reference matching the id
      operationId: getOperateSingleReference
      description: Retrieve the reference matching the given id
      parameters:
        - in: path
          name: id
          description: id of the target
          required: true
          explode: true
          schema:
            type: string
        - $ref: "#/components/parameters/additionalFields"
      responses:
        '200':
          description: search result matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '403':
          description: |
            Forbidden
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/schedules:
    get:
      tags:
        - Operate
      summary: Get information about all the schedules
      operationId: getOperateSchedules
      description: Gets information about all the existing schedules
      parameters: []
      responses:
        '200':
          description: Information about all Schedules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleAllResponse'
        '404':
          description: Resource not found
        '500':
          description: Internal server error        
  /v1/operate/schedules/{id}:
    get:
      tags:
        - Operate
      summary: Get information about a schedule
      operationId: getOperateSchedule
      description: Gets information about a Schedule matching the id
      parameters:
        - in: path
          name: id
          description: id of the target Schedule
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Information about the Schedule. The range field only exists for EnumSchedules and BooleanSchedules and denotes the range of valid values for the schedule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleEnumResponse'
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/schedules/{scheduleId}/recurringEvents:
    get:
      tags:
        - Operate
      summary: Gets a schedule's recurring events
      operationId: getOperateScheduleRecurringEvents
      parameters:
        - in: path
          name: scheduleId
          description: id of the target schedule
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A list of recurring events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringEvents'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    post:
      tags:
        - Operate
      summary: Create a recurring event
      operationId: postOperateScheduleRecurringEvents
      description: Create a special event in the Schedule matching the id
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                day:
                  type: string
                  description: The day of the event
                  enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
                startTime:
                  type: string
                  description: The start time of the event in ISO 8601
                  example: "17:00:00.000Z"
                endTime:
                  type: string
                  description: The end time of the event in ISO 8601
                  example: "18:00:00.000Z"
                value:
                  type: string
                  description: The value of the event. Can be a String, a boolean or a number
                  example: "My Event value"
                eventId:
                  type: string
                  description: The id of the event. If it's absent, a unique id will be generated
                  example: "My Id value"
              required:
                - day
                - startTime
                - endTime
                - value
      responses:
        '200':
          description: The created recurring event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
            - Conflicting events
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/schedules/{scheduleId}/recurringEvents/{eventId}:
    get:
      tags:
        - Operate
      summary: Get a recurring event
      operationId: getOperateSchedulesRecurringEvents
      description: Retrieve the recurring event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The matching recurring event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    put:
      tags:
        - Operate
      summary: Update a recurring event
      operationId: putOperateSchedulesRecurringEvents
      description: Update the recurring event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                day:
                  type: string
                  description: The day of the event
                  enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
                startTime:
                  type: string
                  description: The start time of the event in ISO 8601
                  example: "17:00:00.000Z"
                endTime:
                  type: string
                  description: The end time of the event in ISO 8601
                  example: "18:00:00.000Z"
                value:
                  type: string
                  description: The value of the event. Can be a String, a boolean or a number
                  example: "My Event value"
              required:
                - day
                - startTime
                - endTime
                - value
      responses:
        '200':
          description: The udpated recurring event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecurringEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
            - Conflicting events
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    delete:
      tags:
        - Operate
      summary: Delete a recurring event
      operationId: deleteOperateSchedulesRecurringEvents
      description: Delete the recurring event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The deleted recurring event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/schedules/{scheduleId}/specialEvents:
    get:
      tags:
        - Operate
      summary: Gets a schedule's special events
      operationId: getOperateScheduleSpecialEvents
      parameters:
        - in: path
          name: scheduleId
          description: id of the target schedule
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A list of recurring events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleEvents'
        '400':
          description: |
            Bad request
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    post:
      tags:
        - Operate
      summary: Create a special event
      operationId: postOperateScheduleSpecialEvents
      description: Create a special event in the Schedule matching the id
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                eventName:
                  type: string
                  description: The name of the event
                  example: "MyEvent"
                startDate:
                  type: string
                  description: The start date of the event in ISO 8601
                  example: "2021-05-25T12:00:00.000Z"
                endDate:
                  type: string
                  description: The end date of the event in ISO 8601
                  example: "2021-05-25T13:00:00.000Z"
                value:
                  type: string
                  description: The value of the event. Can be a String, a boolean or a number
                  example: "My Event value"
                eventId:
                  type: string
                  description: The id of the event. If it's absent, a unique id will be generated
                  example: "My Id value"
              required:
                - eventName
                - startDate
                - endDate
                - value
      responses:
        '200':
          description: success message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleEvent'
        '400':
          description: |
            Bad request
            - The source isn't a schedule
            - Invalid parameter value
            - Conflicting events
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/operate/schedules/{scheduleId}/specialEvents/{eventId}:
    get:
      tags:
        - Operate
      summary: Get a special event
      operationId: getOperateSchedulesSpecialEvents
      description: Retrieve the special event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The matching special event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    put:
      tags:
        - Operate
      summary: Update a special event
      operationId: putOperateSchedulesSpecialEvents
      description: Update the special event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                startTime:
                  type: string
                  description: The start time of the event in ISO 8601
                  example: "17:00:00.000Z"
                endTime:
                  type: string
                  description: The end time of the event in ISO 8601
                  example: "18:00:00.000Z"
                value:
                  type: string
                  description: The value of the event. Can be a String, a boolean or a number
                  example: "My Event value"
              required:
                - day
                - startTime
                - endTime
                - value
      responses:
        '200':
          description: The udpated special event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
            - Conflicting events
        '404':
          description: Resource not found
        '500':
          description: Internal server error
    delete:
      tags:
        - Operate
      summary: Delete a special event
      operationId: deleteOperateSchedulesSpecialEvents
      description: Delete the special event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path
          name: scheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The deleted special event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedEvent'
        '400':
          description: |
            Bad request
            - The source isn't a weekly schedule
            - Invalid parameter value
        '404':
          description: Resource not found
        '500':
          description: Internal server error
  /v1/troubleshoot/integrationTests:
    get:
      tags:
        - Troubleshoot
      summary: Integration tests results
      operationId: getTroubleshootIntegrationTests
      description: Get the result of each integration tests
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Component'
        '403':
          description: |
            Forbidden
        '404':
          description: Cannot find the test controller
        '500':
          description: Internal server error
    post:
      tags:
        - Troubleshoot
      summary: Execute Integration tests
      operationId: postTroubleshootIntegrationTests
      description: Execute all the integration tests
      responses:
        '200':
          description: number of executed tests
          content:
            application/json:
              schema:
                type: object
                properties:
                  tests:
                    type: integer
        '403':
          description: |
            Forbidden
        '404':
          description: Cannot find the test controller
        '500':
          description: Internal server error
  /v1/troubleshoot/integrationTestsReport:
    get:
      tags:
        - Troubleshoot
      summary: Integration tests report
      operationId: getTroubleshootIntegrationTestsReport
      description: Get the report of the integration tests
      responses:
        '200':
          description: the report in markdown
          content:
            application/json:
              schema:
                type: object
                properties:
                  report:
                    type: string
        '400':
          description: |
            Bad request
            - Empty report
        '403':
          description: |
            Forbidden
        '404':
          description: Cannot find the test controller
        '500':
          description: Internal server error
components:
  schemas:
    Alarm:
      type: object
      description: The encoded alarm. The fields in the response will depend on the fields in the request
      properties:
        uuid:
          type: string
          example: a93baf31-8072-4315-b168-ddca1fa3fd9d
        timestamp:
          type: string
          example: 2021-01-27T17:11:55.542+01:00
        alarmClass:
          type: string
          example: Default Alarm Class
        source:
          type: string
          example: BooleanWritable
        sourceState:
          type: string
          example: Offnormal
        priority:
          type: integer
          example: 255
        message:
          type: string
          example: '{ok}'
        ackState:
          type: string
          example: Unacked
        ackBy:
          type: string
          example: admin
        ackDate:
          type: string
          example: 2021-01-27T17:16:45.542+01:00
        id:
          type: string
          example: H0SN7gEBY9ZvVatAMC2GL
    Component:
      type: object
      description: The encoded component. The fields in the response will depend on the additonalfields in the request. Depending on the endpoints different fields will be encoded by default
      properties:
        name:
          type: string
          example: My$20Component
        displayName:
          type: string
          example: My Component
        slotPathOrd:
          type: string
          example: station:|slot:/Drivers/My$20Component
        link:
          type: string
          example: https://192.168.1.4:443/ord/station:|slot:/Drivers/My$20Component
        id:
          type: string
          example: F0SCYW7KHZVkyKmnRENuC
        description:
          type: string
          example: My component's description
        status:
          type: string
          example: '{ok}'
        enabled:
          type: boolean
          example: true
        descendants:
          type: array
          items:
            $ref: '#/components/schemas/Component'
    DeletedEvent:
      type: object
      description: The encoded Deleted Event. As the relations with the parent schedules are lost after the deletion, some data is lost
      properties:
        id:
          type: string
          example: "MyId"
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        startTime:
          type: string
          example: "09:00:00+02:00"
        endTime:
          type: string
          example: "17:00:00+02:00"
    Fields:
      type: array
      items:
        type: string
        enum:
          - allRelations
          - allTags
          - description
          - displayName
          - enabled
          - facets
          - id
          - link
          - mnemonic
          - name
          - out
          - pointValue
          - slotPathOrd
          - status
          - '{tagId}'
          - '{relationId}'
      description: |
        List of the possible components fields to encode. Any missing field in the component will be skipped  
        - allRelations: An array of all the component's relations 
        - allTags: An array of all the component's tags. It's possible to include or exclude tags through the tagsInclude and tagsExclude slots in the LinksperV1Servlet. Simply add the names of the tags (without the dictionnary key) you wish to include or exclude. A "*" value will include or exclude all the tags.
        - description: The component's description
        - displayName: The component's display name 
        - enabled: The value of the "enabled" slot 
        - facets: The value of the "facet" slot 
        - id: The component's id (the value of the "id" slot or the value of the "b:id" tag)
        - link: A link to the component
        - mnemonic: The value of the "mnemonic" slot  
        - name: The component's name 
        - out: The value of the "out" slot (with the status if there is one)
        - pointValue: The value of the "out" slot (without the status)
        - slotPathOrd: The component's display slot path ord, prefixed with station:|
        - status: The component's status encoded to a String
        - {tagId}: the relation with the given id
        - {relationId}: the tag with the given id 
        
        Depending on the endpoint and the component, some field will be added by default. 
        - Hierarchy: The name, displayName, status, id and description will be encoded and if the component is an point, the pointValue, the status and the facets will also be encoded by default.
        - Asset: The name, displayName, status, value, enabled, id and description will be encoded
    History:
      type: object
      description: The encoded history.
      properties:
        id:
          type: string
          example: "/deviceName/componentName"
        timezone:
          type: string
          example: Europe/Paris (+1/+2)
        capacity:
          type: string
          example: Unlimited
        fullPolicy:
          type: string
          example: Roll
        interval:
          type: string
          example: 1 minute
        data:
          type: array
          items:
            $ref: '#/components/schemas/Record'
    Node:
      type: object
      description: The encoded node.
      required: [ displayName ]
      properties:
        id:
          type: string
          example: "MyNodeId"
        aspect:
          type: string
          example: "str"
        nodeDefinition:
          type: string
          example: "site"
        name:
          type: string
          example: "MyNodeName"
        displayName:
          type: string
          example: "MyNodeDisplayName"
        ascendants:
          type: array
          items:
            type: string
        nodeTags:
          type: array
          items:
            $ref: '#/components/schemas/NodeTag'
    NodeForUpdate:
      type: object
      description: The encoded node.
      required: [ id ]
      properties:
        id:
          type: string
          example: "MyNodeId"
        displayName:
          type: string
          example: "MyNodeDisplayName"
        ascendants:
          type: array
          items:
            type: string
        nodeTags:
          type: array
          items:
            $ref: '#/components/schemas/NodeTag'
    NodeTag:
      type: object
      description: The encoded node tag.
      required: [ tag, slotType, value ]
      properties:
        tag:
          type: string
          example: "b:myTag"
        slotType:
          type: string
          example: "baja:String"
        value:
          type: string
          example: "MyValue"
    Record:
      type: object
      description: The encoded record.
      properties:
        Timestamp:
          type: string
          example: 25-Jan-21 5:14 PM CET
        Trend Flags:
          type: integer
          example: 0
        Status:
          type: string
          example: '{ok}'
        Value:
          type: string
          example: value
    RecurringEvent:
      type: object
      description: The encoded Single Event.
      properties:
        id:
          type: string
          example: "MyId"
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        timeZone:
          type: string
          example: "Europe/Paris"
        startTime:
          type: string
          example: "09:00:00.000"
        endTime:
          type: string
          example: "17:00:00.000"
        day:
          type: string
          example: "monday"
    RecurringEvents:
      type: array
      items:
        $ref: '#/components/schemas/RecurringEvent'
    Schedule:
      type: object
      description: The encoded Schedule.
      properties:
        name:
          type: string
          example: My$20Schedule
        displayName:
          type: string
          example: My Schedule
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        nextDataValue:
          type: string
          example: 0
        nextStatusValue:
          type: string
          example: '{ok}'
        nextTime:
          type: string
          example: '2021-08-23T17:00:00+02:00'
        id:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"
        description:
          type: string
          example: My schedule's description
        singleEvents:
          type: array
          items:
            $ref: '#/components/schemas/SingleEvent'
        recurringEvents:
          type: array
          items:
            $ref: '#/components/schemas/RecurringEvent'
    ScheduleEnumResponse:
      type: object
      description: The encoded Schedule.
      properties:
        name:
          type: string
          example: My$20Schedule
        displayName:
          type: string
          example: My Schedule
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        nextDataValue:
          type: string
          example: 0
        nextStatusValue:
          type: string
          example: '{ok}'
        nextTime:
          type: string
          example: '2021-08-23T17:00:00+02:00'
        id:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"
        description:
          type: string
          example: My schedule's description
        range:
          type: string
          example: "{Unoccupied=1,Occupied=2,Bypass=3,Standby=4}"
        type:
          type: string
          example: "EnumSchedule"
    ScheduleAllResponse:
      type: object
      description: The encoded Schedules.
      properties:
        name:
          type: string
          example: Working Hours
        status:
          type: string
          example: '{ok}'
        id: 
          type: string
          example: z0T4o3eaGHldZCT1SpLIl
        description:
          type: string
          example: "working hours schedule"
    ScheduleStringResponse:
      type: object
      description: The encoded Schedule.
      properties:
        name:
          type: string
          example: My$20Schedule
        displayName:
          type: string
          example: My Schedule
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        nextDataValue:
          type: string
          example: 0
        nextStatusValue:
          type: string
          example: '{ok}'
        nextTime:
          type: string
          example: '2021-08-23T17:00:00+02:00'
        id:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"
        description:
          type: string
          example: My schedule's description
    ScheduleBooleanResponse:
      type: object
      description: The encoded Schedule.
      properties:
        name:
          type: string
          example: My$20Schedule
        displayName:
          type: string
          example: My Schedule
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        nextDataValue:
          type: string
          example: 0
        nextStatusValue:
          type: string
          example: '{ok}'
        nextTime:
          type: string
          example: '2021-08-23T17:00:00+02:00'
        id:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"
        description:
          type: string
          example: My schedule's description
    SingleEvent:
      type: object
      description: The encoded Single Event.
      properties:
        id:
          type: string
          example: "MyId"
        name:
          type: string
          example: My$20Single$20Event
        dataValue:
          type: string
          example: 0
        status:
          type: string
          example: '{ok}'
        startDate:
          type: string
          description: the startDate in UTC
          example: "2021-08-23T07:00:00Z"
        endDate:
          type: string
          description: the endDate in UTC
          example: "2021-08-23T12:00:00Z"
    SingleEvents:
      type: array
      items:
        $ref: '#/components/schemas/SingleEvent'
  parameters:
    additionalFields:
      in: query
      name: additionalFields
      description: fields to encode
      required: false
      explode: true
      schema:
        $ref: '#/components/schemas/Fields'
    aggregatedData:
      name: aggregatedData
      in: query
      description: if set to true, the request will return aggregated data
      required: false
      schema:
        type: boolean
        default: true
    alarmAdditionalFields:
      in: query
      name: additionalFields
      description: alarmData fields to encode
      required: false
      explode: true
      schema:
        type: array
        items:
          type: string
        default: [ ]
    alarmLimit:
      name: limit
      in: query
      description: the maximum number of records to retrieve, this value must be smaller than the "maxAlarmCount" inside the ExploreServlet.
      required: false
      schema:
        type: integer
        default: maxAlarmCount inside the ExploreServlet
    delta:
      name: delta
      in: query
      description: the delta to apply on the query fetching the records
      required: false
      schema:
        type: boolean
    endDate:
      name: endDate
      in: query
      description: If the period is empty, the end of the period on which elements will be retrieved. The value must follow the ISO 8601 format
      required: false
      schema:
        type: string
    historyLimit:
      name: limit
      in: query
      description: the maximum number of records to retrieve, this value must be smaller than the "maxHistoryCount" inside the ExploreServlet.
      required: false
      schema:
        type: integer
        default: maxHistoryCount inside the ExploreServlet
    period:
      name: period
      in: query
      description: The period on which elements will be retrieved
      required: false
      schema:
        type: string
        enum: [ today, last24Hours, yesterday, weekToDate, lastWeek, last7Days, monthToDate, lastMonth, yearToDate, lastYear ]
    rollupInterval:
      name: rollupInterval
      in: query
      description: The rollup to apply on the query fetching the records. Must come with a valid rollupOperator value
      required: false
      schema:
        type: string
        enum: [ none, oneMin, fiveMin, fifteenMin, thirtyMin, hourly, daily, monthly, yearly ]
    rollupOperator:
      name: rollupOperator
      in: query
      description: The field that will be fetched in the data in addition to Timestamp and End Timestamp. Must come with a valid rollupInterval value
      required: false
      schema:
        type: string
        enum: [ avg, count, max, min, sum ]
    retrieveValues:
      name: retrieveValues
      in: query
      description: if set to true, the request will return the records associated to the history
      required: false
      schema:
        type: boolean
        default: false
    startDate:
      name: startDate
      in: query
      description: If the period is empty, the start of the period on which elements will be retrieved. The value must follow the ISO 8601 format
      required: false
      schema:
        type: string
servers:
  # Added by API Auto Mocking Plugin
  - description: SwaggerHub API Auto Mocking
    url: https://virtserver.swaggerhub.com/BTIBDEV/Linksper/1.0.0e fetched in the data in addition to Timestamp and End Timestamp. Must come with a valid rollupInterval value
      required: false
      schema:
        type: string
        enum: [ avg, count, max, min, sum ]
    retrieveValues:
      name: retrieveValues
      in: query
      description: if set to true, the request will return the records associated to the history
      required: false
      schema:
        type: boolean
        default: false
    startDate:
      name: startDate
      in: query
      description: If the period is empty, the start of the period on which elements will be retrieved. The value must follow the ISO 8601 format
      required: false
      schema:
        type: string
servers:
  # Added by API Auto Mocking Plugin
  - description: SwaggerHub API Auto Mocking
    url: https://virtserver.swaggerhub.com/BTIBDEV/Linksper/1.0.0