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/{idscheduleId}/recurringEvents:
    postget:
      tags:
        - Operate
      summary: CreateGets a schedule's recurring eventevents
      operationId: postOperateScheduleRecurringEventsgetOperateScheduleRecurringEvents
      description: Create a special event in the Schedule matching the id
      parameters:
        - in: path
          name: idscheduleId
          description: id of the target Scheduleschedule
          required: true
          schema:
            type: string
      requestBodyresponses:
        required'200': true
        content:
  description: A list of     application/json:recurring events
            schemacontent:
              type: objectapplication/json:
              propertiesschema:
                day:$ref: '#/components/schemas/RecurringEvents'
        '400':
          typedescription: string|
            Bad request
     description: The day of the event       - Invalid parameter value
        '404':
          enumdescription: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ] Resource not found
        '500':
          description: Internal server error
   startTime post:
      tags:
        - Operate
    type: string
 summary: Create a recurring event
      operationId: postOperateScheduleRecurringEvents
      description: TheCreate start time of thea special event in ISOthe 8601
Schedule matching the id
      parameters:
        - examplein: "17:00:00.000Z"path
          name: scheduleId
     endTime:
     description: id of the target Schedule
         type required: stringtrue
          schema:
        description: The end time oftype: thestring
 event in ISO 8601
  requestBody:
        required: true
       example: "18:00:00.000Z" content:
          application/json:
        value:
    schema:
              type: stringobject
              properties:
    description: The value of the event. Can be a String, a boolean or a number day:
                  exampletype: "Mystring
 Event value"
                eventIddescription:
 The day of the event
             type: string
    enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday    ]
  description: The id of the event. If it's absent, a unique id will be generatedstartTime:
                  exampletype: "My Id value"string
              required:
    description: The start time of the event in ISO 8601
   - day
                - startTimeexample: "17:00:00.000Z"
                - endTime:
                - value
      responses:type: string
        '200':
          description: The created recurringend time of the event
 in ISO 8601
       content:
            application/json:
example: "18:00:00.000Z"
                schemavalue:
                  $reftype: '#/components/schemas/RecurringEvent'string
        '400':
          description: |
The value of the event. Can be a String, a boolean or Bada requestnumber
            - The source isn't a weekly schedule
example: "My Event value"
         - Invalid parameter value
    eventId:
        - Conflicting events
        '404'type: string
          description: Resource not found
     description: The id '500':
of the event. If it's absent, a unique id will description: Internal server errorbe generated
  /v1/operate/schedules/{scheduleId}/recurringEvents/{eventId}:
    get:
      tags:
      example: "My -Id Operatevalue"
      summary: Get a recurring event
      operationIdrequired: getOperateSchedulesRecurringEvents
      description: Retrieve the recurring event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - in: path- day
          name: scheduleId
          description: id of the target Schedule- startTime
          required: true
          schema:- endTime
            type: string
        - in: path
          name: eventId
          description: id of the target Event
          required: true
          schema:
            type: string- value
      responses:
        '200':
          description: The matchingcreated 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':
    - Conflicting events
    description: Resource not found
  '404':
          description: Resource not found
        '500':
          description: Internal server error
    put/v1/operate/schedules/{scheduleId}/recurringEvents/{eventId}:
    get:
      tags:
        - Operate
      summary: UpdateGet a recurring event
      operationId: putOperateSchedulesRecurringEventsgetOperateSchedulesRecurringEvents
      description: UpdateRetrieve 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
      requestBodyresponses:
        required'200':
 true
         content:description: The matching recurring event
          application/jsoncontent:
            schemaapplication/json:
              typeschema:
 object
               properties:$ref: '#/components/schemas/RecurringEvent'
        '400':
        day  description: |
            Bad request
        type:  string
  - The source isn't a weekly schedule
          description: The day- ofInvalid theparameter eventvalue
        '404':
          enumdescription: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]Resource not found
        '500':
          description: Internal server error
    startTimeput:
      tags:
        - Operate
   type:  string
 summary: Update a recurring event
      operationId: putOperateSchedulesRecurringEvents
      description: TheUpdate startthe timerecurring event ofmatching the given eventeventId in ISO 8601
   the schedule matching the given scheduleId
      parameters:
        - examplein: "17:00:00.000Z"
path
          name: scheduleId
      endTime:
    description: id of the target Schedule
         type required: stringtrue
          schema:
        description: The end time oftype: thestring
 event in ISO 8601
    - in: path
            examplename: "18:00:00.000Z"eventId
          description: id of the target  value:Event
          required: true
       type: string
  schema:
            type: string
   description: The value of the event. Can be a String, a boolean or a number requestBody:
        required: true
        content:
          example: "My Event value"application/json:
              requiredschema:
                - daytype: object
                - startTimeproperties:
                - endTimeday:
                - value
      responses:type: string
        '200':
          description: The udpatedday of recurringthe event
          content:
        enum: [ monday, tuesday,  application/json:
wednesday, thursday, friday, saturday, sunday ]
                schemastartTime:
                $ref  type: '#/components/schemas/RecurringEvent'string
        '400':
          description: |
The start time of the event in ISO 8601
      Bad request
            - The source isn't a weekly schedule
example: "17:00:00.000Z"
                endTime:
  - Invalid parameter value
            - Conflictingtype: eventsstring
        '404':
          description: ResourceThe notend found
time of the event in ISO 8601
  '500':
          description: Internal server error
    delete:
example: "18:00:00.000Z"
       tags:
        - Operatevalue:
        summary: Delete a recurring event
      operationIdtype: deleteOperateSchedulesRecurringEventsstring
        description:  Delete the recurring event matching the given eventId indescription: theThe schedulevalue matchingof the given scheduleId
      parameters:event. Can be a String, a boolean or a number
        -  in: path
       example: "My  name: scheduleIdEvent value"
          description: id of the target Schedule
          required: true
          schema:
            type: string- day
        - in: path
          name: eventId
  - startTime
        description: id of the target Event
          required: true- endTime
          schema:
            type: string- value
      responses:
        '200':
          description: The deletedudpated recurring event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedEventRecurringEvent'
        '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/{id}/specialEvents:
    postdelete:
      tags:
        - Operate
      summary: CreateDelete a specialrecurring event
      operationId: postOperateScheduleSpecialEventsdeleteOperateSchedulesRecurringEvents
      description: CreateDelete athe specialrecurring event matching the given eventId in the Scheduleschedule matching the idgiven scheduleId
      parameters:
        - in: path
          name: idscheduleId
          description: id of the target Schedule
          required: true
          schema:
            type: string
        - requestBodyin: path
        required  name: trueeventId
          content:description: id of the target Event
          application/jsonrequired: true
            schema:
              type: objectstring
      responses:
        properties'200':
          description: The deleted recurring event
   eventName       content:
            application/json:
      type: string
       schema:
           description:  The name of the event$ref: '#/components/schemas/DeletedEvent'
        '400':
          exampledescription: "MyEvent"|
            Bad request
    startDate:
        - The source isn't a weekly schedule
    type: string
       - Invalid parameter value
        description'404':
 The     start date of the eventdescription: inResource ISOnot 8601found
        '500':
          exampledescription: "2021-05-25T12:00:00.000Z"
    Internal server error
  /v1/operate/schedules/{scheduleId}/specialEvents:
    get:
        endDatetags:
        - Operate
      summary: Gets a schedule's type:special stringevents
      operationId: getOperateScheduleSpecialEvents
      parameters:
     description: The end date- of the event in ISO 8601
in: path
          name: scheduleId
          example: "2021-05-25T13:00:00.000Z"description: id of the target schedule
          required: true
     value:
     schema:
             type: string
      responses:
        '200':
     description: The value of the event.description: CanA belist aof String,recurring aevents
 boolean or a number
      content:
            example: "My Event value"application/json:
                eventIdschema:
                  type$ref: string'#/components/schemas/SingleEvents'
        '400':
          description: The|
 id of the event. If it's absent, a unique id will beBad generatedrequest
            - Invalid parameter value
       example: "My Id value"
 '404':
          description: Resource not found
        required'500':
          description: Internal server error
   - eventNamepost:
      tags:
          - startDateOperate
      summary: Create a special event
      -operationId: endDatepostOperateScheduleSpecialEvents
      description: Create a special event in the Schedule matching the - valueid
      responsesparameters:
        '200':- in: path
          descriptionname: success messagescheduleId
          contentdescription:
 id of the target Schedule
       application/json:
   required: true
          schema:
                $reftype: '#/components/schemas/SingleEvent'string
        '400'requestBody:
          descriptionrequired: |true
        content:
    Bad request
     application/json:
       - The source isn't a scheduleschema:
            - Invalid parametertype: valueobject
            - Conflicting eventsproperties:
        '404':
          description: Resource not foundeventName:
        '500':
          descriptiontype: Internalstring
 server error
  /v1/operate/schedules/{scheduleId}/specialEvents/{eventId}:
    get:
      tags:
    description: The name of -the Operateevent
        summary: Get a special event
      operationIdexample: getOperateSchedulesSpecialEvents"MyEvent"
      description: Retrieve the special event matching the given eventId in thestartDate:
 schedule matching the given scheduleId
      parameters:
        - intype: pathstring
          name: scheduleId
          description: idThe start date of the targetevent Schedule
in ISO 8601
        required: true
          schema:example: "2021-05-25T12:00:00.000Z"
            type:  string
  endDate:
      - in: path
          nametype: eventIdstring
                  description: The idend date of the targetevent Event
in ISO 8601
        required: true
          schema:
example: "2021-05-25T13:00:00.000Z"
                typevalue:
 string
         responses:
        '200'type: string
          description: The matching special event
    description: The value of the event. content:
Can be a String, a boolean or a number
    application/json:
              schema:example: "My Event value"
                $ref: '#/components/schemas/SingleEvent'eventId:
        '400':
          descriptiontype: |string
            Bad  request
    description: The id of the event. If it's -absent, Thea sourceunique isn'tid awill weeklybe schedulegenerated
            - Invalid parameter value
   example: "My Id value"
  '404':
          description: Resource not foundrequired:
        '500':
          description: Internal server error- eventName
    put:
      tags:
        - OperatestartDate
      summary: Update a special event
      operationId:- putOperateSchedulesSpecialEventsendDate
      description: Update the special event matching the given eventId in the schedule matching the given scheduleId- value
      parametersresponses:
        - in: path'200':
          namedescription: scheduleIdsuccess message
          descriptioncontent:
 id of the target Schedule
       application/json:
   required: true
          schema:
              type  $ref: string'#/components/schemas/SingleEvent'
        - in: path'400':
          namedescription: eventId|
          description: id of the target EventBad request
          required: true
 - The source isn't a schedule
    schema:
        - Invalid parameter  type: stringvalue
      requestBody:
      - Conflicting required: trueevents
        content'404':
          application/jsondescription:
 Resource not found
         schema'500':
          description: Internal server error
  type: object/v1/operate/schedules/{scheduleId}/specialEvents/{eventId}:
    get:
      tags:
        - properties:Operate
      summary: Get a special event
      startTimeoperationId: getOperateSchedulesSpecialEvents
      description: Retrieve the special event matching the given eventId in the schedule matching the type:given stringscheduleId
      parameters:
        - in: path
  description: The start time of the event in ISOname: 8601scheduleId
          description: id of the target Schedule
    example: "17:00:00.000Z"
     required: true
          endTimeschema:
            type: string
        - typein: stringpath
          name: eventId
          description: The endid time of the eventtarget inEvent
 ISO 8601
        required: true
         example: "18:00:00.000Z" schema:
            type: string
   value   responses:
        '200':
          typedescription: string
The matching special event
          content:
     description: The value of the event. Can beapplication/json:
 a String, a boolean or a number
       schema:
           example: "My Event value"
  $ref: '#/components/schemas/SingleEvent'
        '400':
   required:
       description: |
        - day
   Bad request
            - startTime
The source isn't a weekly schedule
            - endTime
Invalid parameter value
        '404':
      - value
   description: Resource not responses:found
        '200500':
          description: TheInternal udpatedserver special eventerror
    put:
      contenttags:
        - Operate
   application/json:
   summary: Update a special event
      operationId: schema:putOperateSchedulesSpecialEvents
      description: Update the special event matching the given eventId in the schedule $ref: '#/components/schemas/SingleEvent'
  matching the given scheduleId
      '400'parameters:
        -  descriptionin: |path
          name: scheduleId
  Bad request
       description: id of the target -Schedule
 The source isn't a weekly schedule
    required: true
       - Invalid parameter valueschema:
            - Conflicting eventstype: string
        '404':- in: path
          descriptionname: ResourceeventId
 not found
        '500':description: id of the target Event
          descriptionrequired: Internal server errortrue
    delete:
      tagsschema:
        - Operate
   type: string
  summary: Delete a special eventrequestBody:
      operationId  required: deleteOperateSchedulesSpecialEventstrue
      description: Delete thecontent:
 special event matching the given eventId in the schedule matching the given scheduleId application/json:
      parameters:
      schema:
  - in: path
          nametype: scheduleIdobject
          description: id of the targetproperties:
 Schedule
          required: true
    startTime:
      schema:
            type: string
        - in: path
        description: The name:start eventId
time of the event in ISO 8601
    description: id of the target Event
          required: true
example: "17:00:00.000Z"
                schemaendTime:
            type: string
     type: responses:string
        '200':
          description: The deleted specialend time of the event
 in ISO 8601
       content:
            application/json:
example: "18:00:00.000Z"
               schema value:
                $ref  type: '#/components/schemas/DeletedEvent'string
        '400':
          description: |
The value of the event. Can be a String, a boolean or Bada requestnumber
            - The source isn't a weekly schedule
example: "My Event value"
         - Invalid parameter value
        '404'required:
          description: Resource not found
   - day
    '500':
          description: Internal server- error
  /v1/troubleshoot/integrationTests:
    get:
startTime
        tags:
        - Troubleshoot
      summary: Integration tests results
 endTime
     operationId: getTroubleshootIntegrationTests
      description: Get the result of each- integration testsvalue
      responses:
        '200':
          description: searchThe resultsudpated matchingspecial criteriaevent
          content:
            application/json:
              schema:
                type$ref: array
'#/components/schemas/SingleEvent'
        '400':
          itemsdescription: |
            Bad request
     $ref: '#/components/schemas/Component'
      - The '403':source isn't a weekly schedule
          description: |
  - Invalid parameter value
            - Conflicting Forbiddenevents
        '404':
          description: CannotResource find the test controllernot found
        '500':
          description: Internal server error
    postdelete:
      tags:
        - TroubleshootOperate
      summary: Delete Executea Integrationspecial testsevent
      operationId: postTroubleshootIntegrationTestsdeleteOperateSchedulesSpecialEvents
      description: Execute all the integration tests
Delete the special event matching the given eventId in the schedule matching the given scheduleId
      parameters:
        - responsesin: path
        '200':  name: scheduleId
          description: numberid of the executedtarget testsSchedule
          contentrequired: true
          schema:
   application/json:
         type: string
    schema:
    - in: path
          typename: objecteventId
          description: id of the target Event
   properties:
       required: true
          testsschema:
            type: string
       typeresponses: integer
        '403200':
          description: |
 The deleted special event
          content:
    Forbidden
        '404'application/json:
          description: Cannot find the test controllerschema:
        '500':
          description: Internal server error
  /v1/troubleshoot/integrationTestsReport$ref: '#/components/schemas/DeletedEvent'
        '400':
    get:
      tagsdescription: |
         -  Troubleshoot
 Bad request
    summary: Integration tests report
     - operationId:The getTroubleshootIntegrationTestsReport
source isn't a weekly schedule
  description: Get the report of the integration tests
   - Invalid parameter responses:value
        '200404':
          description: theResource reportnot in markdownfound
          content'500':
          description:  application/jsonInternal server error
  /v1/troubleshoot/integrationTests:
    get:
          schematags:
        - Troubleshoot
       type: objectsummary: Integration tests results
      operationId: getTroubleshootIntegrationTests
      description: Get the properties:
result of each integration tests
      responses:
        report'200':
          description: search results matching criteria
      type: string
   content:
     '400':
       application/json:
   description: |
          schema:
  Bad request
            - Emptytype: reportarray
        '403':
          descriptionitems: |
                  $ref: '#/components/schemas/Component'
        '403':
          description: |
            Forbidden
        '404':
          description: Cannot find the test controller
        '500':
          description: Internal server error
components    post:
  schemas:
    Alarmtags:
      type: object  - Troubleshoot
      descriptionsummary: The encoded alarm. The fields in the response will depend on the fields in the request Execute Integration tests
      operationId: postTroubleshootIntegrationTests
      description: Execute all the integration tests
      propertiesresponses:
        uuid'200':
          typedescription: stringnumber of executed tests
          examplecontent: a93baf31-8072-4315-b168-ddca1fa3fd9d

            timestampapplication/json:
          type: string
   schema:
       example: 2021-01-27T17:11:55.542+01:00
        alarmClasstype: object
            type: string
   properties:
       example: Default Alarm Class
        sourcetests:
          type: string
          exampletype: BooleanWritableinteger
        sourceState'403':
          typedescription: string|
          example:  OffnormalForbidden
        priority'404':
          typedescription: integer
   Cannot find the test controller
        example'500':
 255
         messagedescription:
 Internal server error
  /v1/troubleshoot/integrationTestsReport:
    get:
 type: string
    tags:
      example: '{ok}'
 - Troubleshoot
      ackStatesummary:
 Integration tests report
       typeoperationId: stringgetTroubleshootIntegrationTestsReport
      description: Get the report example:of Unacked
the integration tests
      ackByresponses:
        '200':
  type: string
       description: the report example:in adminmarkdown
         ackDate content:
            type: string
application/json:
             example: 2021-01-27T17:16:45.542+01:00 schema:
        id:
          type: stringobject
           example: H0SN7gEBY9ZvVatAMC2GL
    Componentproperties:
      type:  object
      description: The encoded component. Thereport:
 fields in the response will depend on the additonalfields in the request. Depending on the endpoints different fields will betype: encodedstring
 by default
      properties'400':
        name  description: |
            type:Bad stringrequest
          example: My$20Component  - Empty report
        displayName'403':
          typedescription: string|
          example: My ComponentForbidden
        slotPathOrd'404':
          typedescription: string Cannot find the test controller
        '500':
          exampledescription: station:|slot:/Drivers/My$20Component Internal server error
components:
  schemas:
    Alarm:
      linktype: object
      description: The encoded  type: string
     alarm. The fields in the response will depend on the fields in the request
     example: https://192.168.1.4:443/ord/station:|slot:/Drivers/My$20Component properties:
        iduuid:
          type: string
          example: F0SCYW7KHZVkyKmnRENuCa93baf31-8072-4315-b168-ddca1fa3fd9d
        descriptiontimestamp:
          type: string
          example: My component's description2021-01-27T17:11:55.542+01:00
        statusalarmClass:
          type: string
          example: '{ok}'Default Alarm Class
        enabledsource:
          type: booleanstring
          example: trueBooleanWritable
        descendantssourceState:
          type: arraystring
          itemsexample: Offnormal
            $ref: '#/components/schemas/Component'priority:
    DeletedEvent:
      type: objectinteger
      description: The encoded Deleted Event. As the relations with the parent schedules are lost after the deletion, some data is lostexample: 255
      properties:
        idmessage:
          type: string
          example: "MyId"'{ok}'
        dataValueackState:
          type: string
          example: 0Unacked
        statusackBy:
          type: string
          example: '{ok}'admin
        startTimeackDate:
          type: string
          example: "09:00:00+02:00"2021-01-27T17:16:45.542+01:00
        endTimeid:
          type: string
          example: "17:00:00+02:00"H0SN7gEBY9ZvVatAMC2GL
    FieldsComponent:
      type: arrayobject
      items:
        type: string
        enum:
          - allRelations
   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:
       - allTagsname:
          -type: descriptionstring
          -example: displayNameMy$20Component
          - enableddisplayName:
          -type: facetsstring
          - idexample: My Component
          - linkslotPathOrd:
          -type: mnemonicstring
          - nameexample: station:|slot:/Drivers/My$20Component
          - outlink:
          -type: pointValuestring
          - slotPathOrdexample: https://192.168.1.4:443/ord/station:|slot:/Drivers/My$20Component
          - statusid:
          - '{tagId}'type: string
          - '{relationId}'example: F0SCYW7KHZVkyKmnRENuC
        description: |
        List of thetype: possiblestring
 components fields to encode. Any missing field in the componentexample: willMy be skippedcomponent's description
  
      status:
  - allRelations: An array of all the component's relationstype: string
        -  allTagsexample: 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.
'{ok}'
        enabled:
          type: boolean
          example: true
        descendants:
          type: array
         - descriptionitems:
 The component's description
        - displayName$ref: The component's display name 
   '#/components/schemas/Component'
    DeletedEvent:
      type: object
     - enableddescription: The value ofencoded Deleted Event. As the relations "enabled"with slotthe 
parent schedules are lost after the deletion, some -data facets:is Thelost
 value of the "facet" slot properties:
        - id:
 The component's id (the value of the "id" slot ortype: thestring
 value of the "b:id" tag)
     example: "MyId"
  - link: A link to the componentdataValue:
         - mnemonictype: Thestring
 value of the "mnemonic" slot  
   example: 0
    - name: The component's name 
 status:
         - outtype: Thestring
 value of the "out" slot (with the status if there is one)      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.
        - pointValueAsset: The name, displayName, status, value of the "out" slot (without the status), enabled, id and description will be encoded
    History:
      type:  - slotPathOrd: The component's display slot path ord, prefixed with station:|object
      description: The encoded history.
      properties:
        id:
          type: string
          example: "/deviceName/componentName"
        timezone:
        -  statustype: The component's status encoded to a String
 string
          example: Europe/Paris (+1/+2)
        capacity:
    - {tagId}: the relation with the giventype: idstring
         - {relationId}example: theUnlimited
   tag with the given id fullPolicy:
        
  type: string
     Depending on the endpoint and the component, some field will be added by default. example: Roll
        interval:
        -  Hierarchytype: 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.string
          example: 1 minute
        data:
          type: array
        -  Assetitems:
 The  name, displayName, status, value, enabled, id and description will be encoded$ref: '#/components/schemas/Record'
    HistoryNode:
      type: object
      description: The encoded historynode.
      propertiesrequired:
 [       id:displayName ]
          type: string
          example: "/deviceName/componentName"properties:
        timezoneid:
          type: string
          example: Europe/Paris (+1/+2) "MyNodeId"
        capacityaspect:
          type: string
          example: Unlimited"str"
        fullPolicynodeDefinition:
          type: string
          example: Roll"site"
        intervalname:
          type: string
          example: 1 minute"MyNodeName"
        datadisplayName:
          type: arraystring
          itemsexample: "MyNodeDisplayName"
            $ref: '#/components/schemas/Record'ascendants:
    Node:
      type: objectarray
      description:  The encoded node.items:
      required: [ displayName ]
      properties:type: string
        idnodeTags:
          type: stringarray
          exampleitems: "MyNodeId"
        aspect:
    $ref: '#/components/schemas/NodeTag'
     typeNodeForUpdate: string
          exampletype: "str"object
        nodeDefinitiondescription:
 The encoded node.
       typerequired: string
[ id ]
        example: "site"properties:
        nameid:
          type: string
          example: "MyNodeNameMyNodeId"
        displayName:
          type: string
          example: "MyNodeDisplayName"
        ascendants:
          type: array
          items:
            type: string
        nodeTags:
          type: array
          items:
            $ref: '#/components/schemas/NodeTag'
    NodeForUpdateNodeTag:
      type: object
      description: The encoded node tag.
      required: [ id ]
: [ tag, slotType, value ]
      properties:
        tag:
          type: string
          example: properties"b:myTag"
        idslotType:
          type: string
          example: "MyNodeIdbaja:String"
        displayNamevalue:
          type: string
          example: "MyNodeDisplayNameMyValue"
    Record:
      ascendantstype: object
      description: The encoded record.
      typeproperties: array
        Timestamp:
          itemstype: string
          example: 25-Jan-21 type5:14 stringPM CET
        Trend nodeTagsFlags:
          type: arrayinteger
          itemsexample: 0
            $ref: '#/components/schemas/NodeTag'Status:
    NodeTag:
      type: objectstring
      description:  The encoded node tag.
example: '{ok}'
       required Value:
 [ tag, slotType, value ]
      propertiestype: string
        tag  example: value
    RecurringEvent:
      type: stringobject
      description: The encoded Single Event.
     example: "bproperties:myTag"
        slotTypeid:
          type: string
          example: "baja:StringMyId"
        valuedataValue:
          type: string
          example: "MyValue"
0
        Recordstatus:
      type: object
   type: string
  description: The encoded record.
      properties:example: '{ok}'
        TimestamptimeZone:
          type: string
          example: 25-Jan-21 5:14 PM CET"Europe/Paris"
        Trend FlagsstartTime:
          type: integerstring
          example: 0"09:00:00.000"
        StatusendTime:
          type: string
          example: '{ok}'"17:00:00.000"
        Valueday:
          type: string
          example: value"monday"
    RecurringEventRecurringEvents:
      type: objectarray
      descriptionitems:
 The encoded Single Event.
      properties:$ref: '#/components/schemas/RecurringEvent'
    Schedule:
    id:
   type: object
      typedescription: string
The encoded Schedule.
        example: "MyId"properties:
        dataValuename:
          type: string
          example: 0My$20Schedule
        statusdisplayName:
          type: string
          example: '{ok}'My Schedule
        timeZonedataValue:
          type: string
          example: "Europe/Paris"0
        startTimestatus:
          type: string
          example: "09:00:00.000"'{ok}'
        endTimenextDataValue:
          type: string
          example: "17:00:00.000"0
        daynextStatusValue:
          type: string
          example: "monday"'{ok}'
    Schedule    nextTime:
          type: objectstring
      description: The encoded Schedule.
      properties:example: '2021-08-23T17:00:00+02:00'
        nameid:
          type: string
          example: My$20Schedule"S0SdbW4sqJyrr51UOgfhb"
        displayNamedescription:
          type: string
          example: My Scheduleschedule's description
        dataValuesingleEvents:
          type: string
 array
          items:
           example $ref: 0'#/components/schemas/SingleEvent'
        statusrecurringEvents:
          type: stringarray
          exampleitems: '{ok}'

            nextDataValue:$ref: '#/components/schemas/RecurringEvent'
    ScheduleEnumResponse:
      type: stringobject
      description: The encoded Schedule.
      exampleproperties: 0
        nextStatusValuename:
          type: string
          example: '{ok}'My$20Schedule
        nextTimedisplayName:
          type: string
          example: '2021-08-23T17:00:00+02:00'My Schedule
        iddataValue:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"0
        descriptionstatus:
          type: string
          example: My schedule's description'{ok}'
        singleEventsnextDataValue:
          type: arraystring
          itemsexample:
            $ref: '#/components/schemas/SingleEvent' 0
        recurringEventsnextStatusValue:
          type: arraystring
          items:
            $ref: '#/components/schemas/RecurringEvent'
example: '{ok}'
        ScheduleEnumResponsenextTime:
      type: object
   type: string
  description: The encoded Schedule.
      properties:example: '2021-08-23T17:00:00+02:00'
        nameid:
          type: string
          example: My$20Schedule"S0SdbW4sqJyrr51UOgfhb"
        displayNamedescription:
          type: string
          example: My Scheduleschedule's description
        dataValuerange:
          type: string
          example: 0"{Unoccupied=1,Occupied=2,Bypass=3,Standby=4}"
        statustype:
          type: string
          example: '{ok}'"EnumSchedule"
    ScheduleAllResponse:
    nextDataValue:
  type: object
       typedescription: string
The encoded Schedules.
        exampleproperties: 0
        nextStatusValuename:
          type: string
          example: '{ok}'Working Hours
        nextTimestatus:
          type: string
          example: '2021-08-23T17:00:00+02:00{ok}'
        id: 
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"z0T4o3eaGHldZCT1SpLIl
        description:
          type: string
          example: "working Myhours schedule's description
"
    ScheduleStringResponse:
      rangetype: object
      description: The encoded Schedule.
   type: string
  properties:
        examplename: "{Unoccupied=1,Occupied=2,Bypass=3,Standby=4}"

          type: string
          typeexample: stringMy$20Schedule
          exampledisplayName: "EnumSchedule"
    ScheduleAllResponse:
      type: objectstring
      description: The encoded Schedules.
 example: My    properties:Schedule
        namedataValue:
          type: string
          example: Working Hours0
        status:
          type: string
          example: '{ok}'
        idnextDataValue: 
          type: string
          example: z0T4o3eaGHldZCT1SpLIl0
        descriptionnextStatusValue:
          type: string
          example: "working hours schedule"
'{ok}'
        ScheduleStringResponsenextTime:
      type: object
   type: string
  description: The encoded Schedule.
      properties:example: '2021-08-23T17:00:00+02:00'
        nameid:
          type: string
          example: My$20Schedule"S0SdbW4sqJyrr51UOgfhb"
        displayNamedescription:
          type: string
          example: My Scheduleschedule's description
    ScheduleBooleanResponse:
    dataValue:
  type: object
       typedescription: string
The encoded Schedule.
        exampleproperties: 0
        statusname:
          type: string
          example: '{ok}'My$20Schedule
        nextDataValuedisplayName:
          type: string
          example: 0My Schedule
        nextStatusValuedataValue:
          type: string
          example: '{ok}'0
        nextTimestatus:
          type: string
          example: '2021-08-23T17:00:00+02:00{ok}'
        idnextDataValue:
          type: string
          example: "S0SdbW4sqJyrr51UOgfhb"0
        descriptionnextStatusValue:
          type: string
          example: My schedule's description
 '{ok}'
        ScheduleBooleanResponsenextTime:
      type: object
   type: string
  description: The encoded Schedule.
      properties:example: '2021-08-23T17:00:00+02:00'
        nameid:
          type: string
          example: My$20Schedule"S0SdbW4sqJyrr51UOgfhb"
        displayNamedescription:
          type: string
          example: My schedule's Scheduledescription
    SingleEvent:
    dataValue:
  type: object
       typedescription: string
The encoded Single Event.
       exampleproperties: 0
        statusid:
          type: string
          example: '{ok}'"MyId"
        nextDataValuename:
          type: string
          example: 0My$20Single$20Event
        nextStatusValuedataValue:
          type: string
          example: '{ok}'0
        nextTimestatus:
          type: string
          example: '2021-08-23T17:00:00+02:00{ok}'
        idstartDate:
          type: string
          description: the startDate in UTC
          example: "S0SdbW4sqJyrr51UOgfhb2021-08-23T07:00:00Z"
        descriptionendDate:
          type: string
          exampledescription: the MyendDate schedule'sin descriptionUTC
    SingleEvent:
      typeexample: object"2021-08-23T12:00:00Z"
    SingleEvents:
  description:  The encoded Singletype: Event.array
      propertiesitems:
        id:$ref: '#/components/schemas/SingleEvent'
  parameters:
        type: stringadditionalFields:
      in: query
   example: "MyId"
     name: additionalFields
      namedescription:
 fields to encode
       typerequired: stringfalse
      explode: true
   example: My$20Single$20Event   schema:
        displayName:$ref: '#/components/schemas/Fields'
    aggregatedData:
      typename: stringaggregatedData
      in: query
    example  description: Myif Singleset Event
to true, the request will return aggregated  dataValue:data
      required: false
   type: string
  schema:
        exampletype: 0boolean
        statusdefault: true
    alarmAdditionalFields:
      typein: stringquery
          examplename: '{ok}'additionalFields
        startDatedescription:
 alarmData fields to encode
      typerequired: stringfalse
      explode: true
   description: the startDate in UTCschema:
          exampletype: "2021-08-23T07:00:00Z"array
        endDateitems:
          type: string
          descriptiondefault: the endDate in UTC[ ]
    alarmLimit:
      examplename: "2021-08-23T12:00:00Z"limit
  parameters:
    additionalFieldsin: query
      indescription: the query
maximum number of records to retrieve, name:this additionalFields
value must be smaller than the description: fields to encode"maxAlarmCount" inside the ExploreServlet.
      required: false
      explodeschema:
 true
       schematype: integer
        $ref: '#/components/schemas/Fields'default: maxAlarmCount inside the ExploreServlet
    aggregatedDatadelta:
      name: aggregatedDatadelta
      in: query
      description: ifthe setdelta to apply true,on the requestquery willfetching returnthe aggregated datarecords
      required: false
      schema:
        type: boolean
        default: true
    alarmAdditionalFieldsendDate:
      inname: queryendDate
      namein: additionalFieldsquery
      description: alarmDataIf fieldsthe toperiod encode
is empty, the end of the required:period false
on which elements will be retrieved. explode:The true
value must follow the ISO 8601 schema:format
        typerequired: arrayfalse
        itemsschema:
          type: string
        default: [ ]
    alarmLimithistoryLimit:
      name: limit
      in: query
      description: the maximum number of records to retrieve, this value must be smaller than the "maxAlarmCountmaxHistoryCount" inside the ExploreServlet.
      required: false
      schema:
        type: integer
        default: maxAlarmCountmaxHistoryCount inside the ExploreServlet
    deltaperiod:
      name: deltaperiod
      in: query
      description: the delta to apply on the query fetching the records
 The period on which elements will be retrieved
      required: false
      schema:
        requiredtype: falsestring
        schemaenum:
 [ today, last24Hours, yesterday, weekToDate, lastWeek, last7Days,  type: booleanmonthToDate, lastMonth, yearToDate, lastYear ]
    endDaterollupInterval:
      name: endDaterollupInterval
      in: query
      description: IfThe therollup periodto isapply empty,on the endquery offetching the periodrecords. onMust whichcome elementswith willa bevalid retrieved.rollupOperator Thevalue
 value must follow the ISO 8601required: formatfalse
      requiredschema:
  false
      schematype: string
        type: stringenum: [ none, oneMin, fiveMin, fifteenMin, thirtyMin, hourly, daily, monthly, yearly ]
    historyLimitrollupOperator:
      name: limitrollupOperator
      in: query
      description: The field that will be fetched in the maximumdata numberin of recordsaddition to retrieve,Timestamp thisand valueEnd mustTimestamp. beMust smallercome thanwith thea "maxHistoryCount"valid inside the ExploreServlet.rollupInterval value
      required: false
      schema:
        type: integerstring
        defaultenum: maxHistoryCount inside the ExploreServlet[ avg, count, max, min, sum ]
    periodretrieveValues:
      name: periodretrieveValues
      in: query
      description: if Theset periodto ontrue, whichthe elementsrequest will be retrievedreturn the records associated to the history
      required: false
      schema:
        type: stringboolean
        enum: [ today, last24Hours, yesterday, weekToDate, lastWeek, last7Days, monthToDate, lastMonth, yearToDate, lastYear ]default: false
    rollupIntervalstartDate:
      name: rollupIntervalstartDate
      in: query
      description: TheIf rollupthe toperiod applyis onempty, the querystart fetchingof the records. Must come with a valid rollupOperator value period on which elements will be retrieved. The value must follow the ISO 8601 format
      required: false
      schema:
        type: string
        enum: [ none, oneMin, fiveMin, fifteenMin, thirtyMin, hourly, daily, monthly, yearly ]
    rollupOperator:
      name: rollupOperatorservers:
  # Added by API Auto Mocking Plugin
  - description: SwaggerHub API Auto Mocking
      inurl: query
      description: The field that will behttps://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

...