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/{id}/recurringEvents:
    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: id
          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/{id}/specialEvents:
    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: id
          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
        - 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"
    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'
    SingleEvent:
      type: object
      description: The encoded Single Event.
      properties:
        id:
          type: string
          example: "MyId"
        name:
          type: string
          example: My$20Single$20Event
        displayName:
          type: string
          example: My Single Event
        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"
  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.0