VayanData can provide you access to a sandbox. Please contact us: https://vayandata.com/contact-us/
---
openapi: 3.0.0
info:
description: This is the specifications for the Linksper Console API
version: "1.0.0"
title: Linksper Console API
contact:
email: [email protected]
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
- name: Authentication
description: Authenticate to the API
- name: Explore
description: Explore the BOS hiearchies and their respectives assets
- name: Manage
description: Create, modify delete data models content
- name: Operate
description: Get information / update for a specific type of assets
- name: Troubleshoot
description: Check BOS status
paths:
/oauth/token:
post:
tags:
- Authentication
summary: Authenticate using jwt
operationId: authenticate
description: Authenticate to the API using JWT.
externalDocs:
description: How to setup a user with JWT in Niagara
url: https://doc.active-framework.com/display/APIDR/Getting+Started+With+JWT+Authenticaion
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: username
password:
type: string
description: password
required:
- username
- password
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
type: object
properties:
result:
type: object
properties:
user:
type: string
description: user
token:
type: string
description: password
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: Internal server error
/v1/explore/hierarchies:
get:
tags:
- Explore
summary: Explore all hierarchies
operationId: exploreHierarchies
description: Retrieve all the hierarchy roots with the lk:exposeOnApi Tag
responses:
'200':
description: all the hierarchy roots
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'500':
description: Internal server error
/v1/explore/hierarchies/{name}:
get:
tags:
- Explore
summary: Explore a single hierarchy
operationId: exploreHierarchy
description: Retrieve the hierarchy that match the given name
parameters:
- in: path
name: name
schema:
type: string
required: true
description: name of the hierarchy to get
- $ref: "#/components/parameters/additionalFields"
- in: query
name: depth
description: maximum depth of descendants
schema:
type: integer
format: int32
minimum: 0
default: 1
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Negative depth value
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the hierarchy with the given name
'500':
description: Internal server error
/v1/explore/assets:
get:
tags:
- Explore
summary: Explore a list of assets
operationId: exploreAsset
description: Retrieve the asset matching the given query or the given assetType, if both parameters are given, only the query will be taken into account
parameters:
- in: query
name: query
description: The full query that will be executed to obtain the assets
schema:
type: string
- in: query
name: assetType
description: The desired assetType
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: Internal server error
/v1/explore/assets/{id}:
get:
tags:
- Explore
summary: Explore an asset
operationId: exploreAssetById
description: Retrieve the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: Internal server error
/v1/explore/assets/{id}/alarms:
get:
tags:
- Explore
summary: Explore the alarms of the given asset
operationId: exploreAssetsAlarms
description: Retrieve the alarms associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/aggregatedData"
- $ref: "#/components/parameters/alarmAdditionalFields"
- $ref: "#/components/parameters/alarmLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Alarm'
'400':
description: |
Bad request
- Negative limit value
- Limit is less than MaxAlarmCount
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: Internal server error
/v1/explore/assets/{id}/devices:
get:
tags:
- Explore
summary: Explore the devices of the given asset
operationId: exploreAssetsDevices
description: Retrieve the devices associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the asset with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/equipment:
get:
tags:
- Explore
summary: Explore the equipment of the given asset
operationId: exploreAssetsEquipment
description: Retrieve the equipment associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the asset with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/histories:
get:
tags:
- Explore
summary: Explore the histories of the given hierarchy
operationId: exploreHierarchyHistories
description: |
Retrieve the histories contained in the hierarchy matching the given id. Will encode
- the id
- the timeZone
- the capacity
- the fullPolicy
- the interval
- the valueFacets
- the tags
parameters:
- in: path
name: id
description: ID of the Asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/rollupInterval"
- $ref: "#/components/parameters/rollupOperator"
- $ref: "#/components/parameters/delta"
- $ref: "#/components/parameters/retrieveValues"
- $ref: "#/components/parameters/historyLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/History'
'400':
description: |
Bad request
- Negative limit value
- Limit is higher than MaxHistoryCount
- Invalid parameter value
- The targeted Node doesn't have the "b:definition" tag
- The targeted InfoSource's parent ControlPoint doesn't have the n:history tag
- The given id targets a source which parent isn't a DeviceNetwork or a Device or a Folder or a Point
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the hierarchy with the given id
- Found no aggregated/raw histories associated to the hierarchy with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/points:
get:
tags:
- Explore
summary: Explore the points of the associated asset
operationId: exploreAssetsPoints
description: Retrieve the points associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/schedules:
get:
tags:
- Explore
summary: Explore the schedules of the associated asset
operationId: exploreAssetsSchedules
description: Retrieve the schedules associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
- in: query
name: retrieveEvents
description: if set to true, the request will retrieve the special and recurring events (if possible) of the schedules
schema:
type: boolean
default: false
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Schedule'
'400':
description: |
Bad request
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/synthesisHistories:
get:
tags:
- Explore
summary: Explore the Synthesis Histories of the associated asset
operationId: exploreAssetsSynthesisHistories
description: Retrieve the Synthesis Histories associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the Asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/rollupInterval"
- $ref: "#/components/parameters/rollupOperator"
- $ref: "#/components/parameters/delta"
- $ref: "#/components/parameters/retrieveValues"
- $ref: "#/components/parameters/historyLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/History'
'400':
description: |
Bad request
- Invalid parameter value
- Negative limit value
- Limit is higher than MaxHistoryCount
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: internal server error
/v1/explore/assets/{id}/synthesisPoints:
get:
tags:
- Explore
summary: Explore the synthesis points of the associated asset
operationId: exploreAssetsSynthesisPoints
description: Retrieve the synthesis points associated to the asset matching the given id
parameters:
- in: path
name: id
description: ID of the asset to get
schema:
type: string
required: true
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Invalid target: The id targets an Asset with incorrect or missing values
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the Asset with the given id
'500':
description: internal server error
/v1/manage/models:
get:
tags:
- Manage
summary: Get all the Nodes associated to a model
operationId: getManageModels
description: Retrieve all the Nodes associated to a model
parameters:
- in: query
name: aspect
description: filter on the parent aspect
required: false
explode: true
schema:
type: string
- in: query
name: nodeDefinition
description: filter on the parent Node Definition
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
- in: query
name: dataModelOnly
description: whether to query only b:dataModels Nodes
required: false
explode: true
schema:
type: boolean
default: true
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: object
properties:
AspectName:
type: object
properties:
NodeDefinitionName:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: |
- Aspect not found
- Node Definition not found
'500':
description: Internal server error
post:
tags:
- Manage
summary: Create models
operationId: postManageModels
description: Create new Nodes
parameters:
- $ref: "#/components/parameters/additionalFields"
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Node"
responses:
'200':
description: two arrays, success with all the successfully created Nodes, failure with all the failed creations
content:
application/json:
schema:
type: object
properties:
success:
type: array
items:
$ref: '#/components/schemas/Component'
failures:
type: object
properties:
nodeID:
type: string
example: "Error message"
'400':
description: |
Bad request
- Invalid parameter value
- Missing parameter value
'403':
description: |
Forbidden
'404':
description: |
- Parent Aspect not found
- Parent NodeDefinition not found
'500':
description: Internal server error
put:
tags:
- Manage
summary: update model
operationId: putManageModels
description: Update a single Node
parameters:
- $ref: "#/components/parameters/additionalFields"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NodeForUpdate"
responses:
'200':
description: the updated Node
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Missing parameter value
'403':
description: |
Forbidden
'404':
description: |
Target node not found
'500':
description: Internal server error
delete:
tags:
- Manage
summary: delete model
operationId: deleteManageModels
description: Delete Nodes
parameters:
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: the deleted Nodes
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
- Missing parameter value
'403':
description: |
Forbidden
'404':
description: |
Target node not found
'500':
description: Internal server error
/v1/operate/alarms:
get:
tags:
- Operate
summary: Get the alarms matching the query
operationId: operateAlarms
description: Retrieve the alarms matching the given query
parameters:
- in: query
name: query
description: filter on the alarms, bql predicate
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/alarmAdditionalFields"
- $ref: "#/components/parameters/alarmLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Alarm'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
post:
tags:
- Operate
summary: ack the alarms matching the uuids
operationId: postOperateAlarms
description: Ack the alarms matching the uuids
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uuid:
type: array
description: filter on the alarms to ack
example: [ "a93baf31-8072-4315-b168-ddca1fa3fd9d" ]
items:
type: string
required:
- uuid
responses:
'200':
description: two arrays, success with all the uuids of the alarms successfully acked, failure with all the uuids of the alarms on which the ack wasn't possible
content:
application/json:
schema:
type: object
properties:
success:
type: array
items:
type: string
failures:
type: array
items:
type: string
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/alarms/{uuid}:
get:
tags:
- Operate
summary: Get the alarm matching the uuid
operationId: operateAlarm
description: Retrieve the alarm matching the given uuid
parameters:
- in: path
name: uuid
description: uuid of the target
required: true
explode: true
schema:
type: string
- $ref: "#/components/parameters/alarmAdditionalFields"
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Alarm'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: |
Resource not found
'500':
description: Internal server error
/v1/operate/components:
get:
tags:
- Operate
summary: Get the components matching the query
operationId: operateComponents
description: Retrieve the components matching the given query
parameters:
- in: query
name: query
description: filter on the devices, can be any query
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/devices:
get:
tags:
- Operate
summary: Get the devices matching the query
operationId: operateDevices
description: Retrieve the devices and the PointFolders (resulting from a propagation) matching the given query
parameters:
- in: query
name: query
description: filter on the devices, neql predicate
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/devices/{id}:
get:
tags:
- Operate
summary: Get the device matching the id
operationId: getOperateDevice
description: Retrieve the device or the PointFolder (resulting from a propagation) matching the given id
parameters:
- in: path
name: id
description: id of the target
required: true
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/equipment:
get:
tags:
- Operate
summary: Get the equipment matching the query
operationId: operateEquipment
description: Retrieve the equipment matching the given query
parameters:
- in: query
name: query
description: filter on the devices, neql predicate
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/equipment/{id}:
get:
tags:
- Operate
summary: Get the equipment matching the id
operationId: getOperateSingleEquipment
description: Retrieve the equipment matching the given id
parameters:
- in: path
name: id
description: id of the target
required: true
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/histories:
get:
tags:
- Operate
summary: Get the histories matching the query.
operationId: operateHistories
description: |
Retrieve the histories contained in the model matching the given query. Will encode
- the id
- the timeZone
- the capacity
- the fullPolicy
- the interval
- the valueFacets
- the tags
parameters:
- in: query
name: query
description: filter on the histories, bql predicate
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/rollupInterval"
- $ref: "#/components/parameters/rollupOperator"
- $ref: "#/components/parameters/delta"
- $ref: "#/components/parameters/retrieveValues"
- $ref: "#/components/parameters/historyLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/History'
'400':
description: |
Bad request
- Empty result
- Start is after end
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/histories/{id}:
get:
tags:
- Operate
summary: Explore the histories of the given source. If the history comes from a NiagaraHistoryimport, it will fetch the latest data.
operationId: getOperateModelHistoriesForId
description: |
Retrieve the histories contained in the model matching the given id. Will encode
- the id
- the timeZone
- the capacity
- the fullPolicy
- the interval
- the valueFacets
- the tags
parameters:
- in: path
name: id
description: ID of the source to get
schema:
type: string
required: true
- $ref: "#/components/parameters/period"
- $ref: "#/components/parameters/startDate"
- $ref: "#/components/parameters/endDate"
- $ref: "#/components/parameters/rollupInterval"
- $ref: "#/components/parameters/rollupOperator"
- $ref: "#/components/parameters/delta"
- $ref: "#/components/parameters/retrieveValues"
- $ref: "#/components/parameters/historyLimit"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/History'
'400':
description: |
Bad request
- Negative limit value
- Limit is less than MaxHistoryCount
- Invalid parameter value
- The targeted Node doesn't have the "b:definition" tag
- The targeted InfoSource's parent ControlPoint doesn't have the n:history tag
- The given id targets a source which parent isn't a DeviceNetwork or a Device or a Folder or a Point
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the model with the given id
- Found no aggregated/raw histories associated to the model with the given id
'500':
description: internal server error
put:
tags:
- Operate
summary: Add a record the the History inside the targeted source.
operationId: putExploreModelHistoriesForId
description: |
Create a History Record matching the record type of the History and append it to the History. As for now, BooleanTrendRecords, EnumTrendRecords, NumericTrendRecords and StringRecords are supported.
parameters:
- in: path
name: id
description: ID of the source to get
schema:
type: string
required: true
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
properties:
date:
type: string
description: the timestamp of the record in ISO 8601 format
example: "2021-05-25T12:00:00.000Z"
value:
type: string
description: the value of the record in a string (example, for a BooleanTrendRecords, you must use "true" instead of true). For an EnumTrendRecord, it is possible to use the ordinal or the tag.
example: "myValue"
status:
type: string
description: the status of the record
enum: [ ok, disabled, fault, down, alarm, stale, overridden, null, unackedAlarm ]
required:
- action
responses:
'200':
description: success message
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Records successfully added
'400':
description: |
Bad request
- Invalid parameter value
- The targeted history record type isn't supported
- Cannot append out-of-order record
- Cannot create a Dynamic enum from the tag value
'403':
description: |
Forbidden
'404':
description: |
Ressource not found
- Cannot find the source with the given id
- The target source has no HistoryExts
'500':
description: internal server error
/v1/operate/points:
get:
tags:
- Operate
summary: Get the points matching the given query
operationId: operatePoints
description: Retrieve the points matching the query
parameters:
- in: query
name: query
description: filter on the points, neql predicate
required: false
schema:
type: string
- in: query
name: status
description: filter on the point status
required: false
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
post:
tags:
- Operate
summary: Invoke an action on targeted points
operationId: postOperatePoints
description: Generate the value, retrieve the action and invoke it on the target points
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: neql filter on the points
example: "n:type = 'control:NumericWritable'"
action:
type: string
description: Name of the action
example: "override"
value:
type: string
description: The Argument of the action. Always a String
example: "10.0"
duration:
type: integer
description: In the case of an override, the duration of the override in milliseconds
example: "10000"
required:
- action
responses:
'200':
description: two arrays, success with all the components on which the action was successfully invoked, failure with all the components on which the action wasn't successfully invoked
content:
application/json:
schema:
type: object
properties:
success:
type: array
items:
$ref: '#/components/schemas/Component'
failures:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Negative duration value
- The given query doesn't target any points
- The action doesn't exist
- Cannot build the argument
- Invalid parameter value
'500':
description: Internal server error
/v1/operate/points/{id}:
get:
tags:
- Operate
summary: Get the point matching the given id
operationId: getOperatePoint
description: Retrieve the point matching the id
parameters:
- in: path
name: id
description: id of the target point
required: true
schema:
type: string
- in: query
name: status
description: filter on the point status
required: false
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: |
Resource not found
'500':
description: Internal server error
post:
tags:
- Operate
summary: Invoke an action
operationId: postOperatePoint
description: Invoke an action on the point matching the id
parameters:
- in: path
name: id
description: id of the target point
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
description: Name of the action
example: "override"
value:
type: string
description: The Argument of the action. Always a String
example: "10.0"
duration:
type: integer
description: In the case of an override, the duration of the override in milliseconds
example: "10000"
required:
- action
responses:
'200':
description: two arrays, success with all the components on which the action was successfully invoked, failure with all the components on which the action wasn't successfully invoked
content:
application/json:
schema:
type: object
properties:
success:
type: array
items:
$ref: '#/components/schemas/Component'
failures:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Negative duration value
- The given query doesn't target any points
- The action doesn't exist
- Cannot build the argument
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/query:
get:
tags:
- Operate
summary: Get the table matching the query
operationId: operateQuery
description: Resolve the query and encode the resulting table
parameters:
- in: query
name: query
description: the query to resolve, must result in a table
required: true
explode: true
schema:
type: string
responses:
'200':
description: search results matching query, the content of the objects will entirely depend on the query
content:
application/json:
schema:
type: array
items:
type: object
'400':
description: |
Bad request
- Invalid query
'500':
description: Internal server error
/v1/operate/reference:
get:
tags:
- Operate
summary: Get the reference matching the query
operationId: operateReference
description: Retrieve the reference matching the given query
parameters:
- in: query
name: query
description: filter on the references, bql predicate
required: false
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'500':
description: Internal server error
/v1/operate/reference/{id}:
get:
tags:
- Operate
summary: Get the reference matching the id
operationId: getOperateSingleReference
description: Retrieve the reference matching the given id
parameters:
- in: path
name: id
description: id of the target
required: true
explode: true
schema:
type: string
- $ref: "#/components/parameters/additionalFields"
responses:
'200':
description: search result matching criteria
content:
application/json:
schema:
$ref: '#/components/schemas/Component'
'400':
description: |
Bad request
- Invalid parameter value
'403':
description: |
Forbidden
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules:
get:
tags:
- Operate
summary: Get information about all the schedules
operationId: getOperateSchedules
description: Gets information about all the existing schedules
parameters: []
responses:
'200':
description: Information about all Schedules.
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleAllResponse'
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{id}:
get:
tags:
- Operate
summary: Get information about a schedule
operationId: getOperateSchedule
description: Gets information about a Schedule matching the id
parameters:
- in: path
name: id
description: id of the target Schedule
required: true
schema:
type: string
responses:
'200':
description: Information about the Schedule. The range field only exists for EnumSchedules and BooleanSchedules and denotes the range of valid values for the schedule
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleEnumResponse'
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/recurringEvents:
get:
tags:
- Operate
summary: Gets a schedule's recurring events
operationId: getOperateScheduleRecurringEvents
parameters:
- in: path
name: scheduleId
description: id of the target schedule
required: true
schema:
type: string
responses:
'200':
description: A list of recurring events
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvents'
'400':
description: |
Bad request
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
post:
tags:
- Operate
summary: Create a recurring event
operationId: postOperateScheduleRecurringEvents
description: Create a special event in the Schedule matching the id
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
day:
type: string
description: The day of the event
enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
eventId:
type: string
description: The id of the event. If it's absent, a unique id will be generated
example: "My Id value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The created recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/recurringEvents/{eventId}:
get:
tags:
- Operate
summary: Get a recurring event
operationId: getOperateSchedulesRecurringEvents
description: Retrieve the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The matching recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
put:
tags:
- Operate
summary: Update a recurring event
operationId: putOperateSchedulesRecurringEvents
description: Update the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
day:
type: string
description: The day of the event
enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The udpated recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
delete:
tags:
- Operate
summary: Delete a recurring event
operationId: deleteOperateSchedulesRecurringEvents
description: Delete the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The deleted recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/specialEvents:
get:
tags:
- Operate
summary: Gets a schedule's special events
operationId: getOperateScheduleSpecialEvents
parameters:
- in: path
name: scheduleId
description: id of the target schedule
required: true
schema:
type: string
responses:
'200':
description: A list of recurring events
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvents'
'400':
description: |
Bad request
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
post:
tags:
- Operate
summary: Create a special event
operationId: postOperateScheduleSpecialEvents
description: Create a special event in the Schedule matching the id
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
eventName:
type: string
description: The name of the event
example: "MyEvent"
startDate:
type: string
description: The start date of the event in ISO 8601
example: "2021-05-25T12:00:00.000Z"
endDate:
type: string
description: The end date of the event in ISO 8601
example: "2021-05-25T13:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
eventId:
type: string
description: The id of the event. If it's absent, a unique id will be generated
example: "My Id value"
required:
- eventName
- startDate
- endDate
- value
responses:
'200':
description: success message
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/specialEvents/{eventId}:
get:
tags:
- Operate
summary: Get a special event
operationId: getOperateSchedulesSpecialEvents
description: Retrieve the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The matching special event
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
put:
tags:
- Operate
summary: Update a special event
operationId: putOperateSchedulesSpecialEvents
description: Update the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The udpated special event
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
delete:
tags:
- Operate
summary: Delete a special event
operationId: deleteOperateSchedulesSpecialEvents
description: Delete the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The deleted special event
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
/v1/troubleshoot/integrationTests:
get:
tags:
- Troubleshoot
summary: Integration tests results
operationId: getTroubleshootIntegrationTests
description: Get the result of each integration tests
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
post:
tags:
- Troubleshoot
summary: Execute Integration tests
operationId: postTroubleshootIntegrationTests
description: Execute all the integration tests
responses:
'200':
description: number of executed tests
content:
application/json:
schema:
type: object
properties:
tests:
type: integer
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
/v1/troubleshoot/integrationTestsReport:
get:
tags:
- Troubleshoot
summary: Integration tests report
operationId: getTroubleshootIntegrationTestsReport
description: Get the report of the integration tests
responses:
'200':
description: the report in markdown
content:
application/json:
schema:
type: object
properties:
report:
type: string
'400':
description: |
Bad request
- Empty report
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
components:
schemas:
Alarm:
type: object
description: The encoded alarm. The fields in the response will depend on the fields in the request
properties:
uuid:
type: string
example: a93baf31-8072-4315-b168-ddca1fa3fd9d
timestamp:
type: string
example: 2021-01-27T17:11:55.542+01:00
alarmClass:
type: string
example: Default Alarm Class
source:
type: string
example: BooleanWritable
sourceState:
type: string
example: Offnormal
priority:
type: integer
example: 255
message:
type: string
example: '{ok}'
ackState:
type: string
example: Unacked
ackBy:
type: string
example: admin
ackDate:
type: string
example: 2021-01-27T17:16:45.542+01:00
id:
type: string
example: H0SN7gEBY9ZvVatAMC2GL
Component:
type: object
description: The encoded component. The fields in the response will depend on the additonalfields in the request. Depending on the endpoints different fields will be encoded by default
properties:
name:
type: string
example: My$20Component
displayName:
type: string
example: My Component
slotPathOrd:
type: string
example: station:|slot:/Drivers/My$20Component
link:
type: string
example: https://192.168.1.4:443/ord/station:|slot:/Drivers/My$20Component
id:
type: string
example: F0SCYW7KHZVkyKmnRENuC
description:
type: string
example: My component's description
status:
type: string
example: '{ok}'
enabled:
type: boolean
example: true
descendants:
type: array
items:
$ref: '#/components/schemas/Component'
DeletedEvent:
type: object
description: The encoded Deleted Event. As the relations with the parent schedules are lost after the deletion, some data is lost
properties:
id:
type: string
example: "MyId"
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
startTime:
type: string
example: "09:00:00+02:00"
endTime:
type: string
example: "17:00:00+02:00"
Fields:
type: array
items:
type: string
enum:
- allRelations
- allTags
- description
- displayName
- enabled
- facets
- id
- link
- mnemonic
- name
- out
- pointValue
- slotPathOrd
- status
- '{tagId}'
- '{relationId}'
description: |
List of the possible components fields to encode. Any missing field in the component will be skipped
- allRelations: An array of all the component's relations
- allTags: An array of all the component's tags. It's possible to include or exclude tags through the tagsInclude and tagsExclude slots in the LinksperV1Servlet. Simply add the names of the tags (without the dictionnary key) you wish to include or exclude. A "*" value will include or exclude all the tags.
- description: The component's description
- displayName: The component's display name
- enabled: The value of the "enabled" slot
- facets: The value of the "facet" slot
- id: The component's id (the value of the "id" slot or the value of the "b:id" tag)
- link: A link to the component
- mnemonic: The value of the "mnemonic" slot
- name: The component's name
- out: The value of the "out" slot (with the status if there is one)
- pointValue: The value of the "out" slot (without the status)
- slotPathOrd: The component's display slot path ord, prefixed with station:|
- status: The component's status encoded to a String
- {tagId}: the relation with the given id
- {relationId}: the tag with the given id
Depending on the endpoint and the component, some field will be added by default.
- Hierarchy: The name, displayName, status, id and description will be encoded and if the component is an point, the pointValue, the status and the facets will also be encoded by default.
- Asset: The name, displayName, status, value, enabled, id and description will be encoded
History:
type: object
description: The encoded history.
properties:
id:
type: string
example: "/deviceName/componentName"
timezone:
type: string
example: Europe/Paris (+1/+2)
capacity:
type: string
example: Unlimited
fullPolicy:
type: string
example: Roll
interval:
type: string
example: 1 minute
data:
type: array
items:
$ref: '#/components/schemas/Record'
Node:
type: object
description: The encoded node.
required: [ displayName ]
properties:
id:
type: string
example: "MyNodeId"
aspect:
type: string
example: "str"
nodeDefinition:
type: string
example: "site"
name:
type: string
example: "MyNodeName"
displayName:
type: string
example: "MyNodeDisplayName"
ascendants:
type: array
items:
type: string
nodeTags:
type: array
items:
$ref: '#/components/schemas/NodeTag'
NodeForUpdate:
type: object
description: The encoded node.
required: [ id ]
properties:
id:
type: string
example: "MyNodeId"
displayName:
type: string
example: "MyNodeDisplayName"
ascendants:
type: array
items:
type: string
nodeTags:
type: array
items:
$ref: '#/components/schemas/NodeTag'
NodeTag:
type: object
description: The encoded node tag.
required: [ tag, slotType, value ]
properties:
tag:
type: string
example: "b:myTag"
slotType:
type: string
example: "baja:String"
value:
type: string
example: "MyValue"
Record:
type: object
description: The encoded record.
properties:
Timestamp:
type: string
example: 25-Jan-21 5:14 PM CET
Trend Flags:
type: integer
example: 0
Status:
type: string
example: '{ok}'
Value:
type: string
example: value
RecurringEvent:
type: object
description: The encoded Single Event.
properties:
id:
type: string
example: "MyId"
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
timeZone:
type: string
example: "Europe/Paris"
startTime:
type: string
example: "09:00:00.000"
endTime:
type: string
example: "17:00:00.000"
day:
type: string
example: "monday"
RecurringEvents:
type: array
items:
$ref: '#/components/schemas/RecurringEvent'
Schedule:
type: object
description: The encoded Schedule.
properties:
name:
type: string
example: My$20Schedule
displayName:
type: string
example: My Schedule
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
nextDataValue:
type: string
example: 0
nextStatusValue:
type: string
example: '{ok}'
nextTime:
type: string
example: '2021-08-23T17:00:00+02:00'
id:
type: string
example: "S0SdbW4sqJyrr51UOgfhb"
description:
type: string
example: My schedule's description
singleEvents:
type: array
items:
$ref: '#/components/schemas/SingleEvent'
recurringEvents:
type: array
items:
$ref: '#/components/schemas/RecurringEvent'
ScheduleEnumResponse:
type: object
description: The encoded Schedule.
properties:
name:
type: string
example: My$20Schedule
displayName:
type: string
example: My Schedule
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
nextDataValue:
type: string
example: 0
nextStatusValue:
type: string
example: '{ok}'
nextTime:
type: string
example: '2021-08-23T17:00:00+02:00'
id:
type: string
example: "S0SdbW4sqJyrr51UOgfhb"
description:
type: string
example: My schedule's description
range:
type: string
example: "{Unoccupied=1,Occupied=2,Bypass=3,Standby=4}"
type:
type: string
example: "EnumSchedule"
ScheduleAllResponse:
type: object
description: The encoded Schedules.
properties:
name:
type: string
example: Working Hours
status:
type: string
example: '{ok}'
id:
type: string
example: z0T4o3eaGHldZCT1SpLIl
description:
type: string
example: "working hours schedule"
ScheduleStringResponse:
type: object
description: The encoded Schedule.
properties:
name:
type: string
example: My$20Schedule
displayName:
type: string
example: My Schedule
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
nextDataValue:
type: string
example: 0
nextStatusValue:
type: string
example: '{ok}'
nextTime:
type: string
example: '2021-08-23T17:00:00+02:00'
id:
type: string
example: "S0SdbW4sqJyrr51UOgfhb"
description:
type: string
example: My schedule's description
ScheduleBooleanResponse:
type: object
description: The encoded Schedule.
properties:
name:
type: string
example: My$20Schedule
displayName:
type: string
example: My Schedule
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
nextDataValue:
type: string
example: 0
nextStatusValue:
type: string
example: '{ok}'
nextTime:
type: string
example: '2021-08-23T17:00:00+02:00'
id:
type: string
example: "S0SdbW4sqJyrr51UOgfhb"
description:
type: string
example: My schedule's description
SingleEvent:
type: object
description: The encoded Single Event.
properties:
id:
type: string
example: "MyId"
name:
type: string
example: My$20Single$20Event
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
startDate:
type: string
description: the startDate in UTC
example: "2021-08-23T07:00:00Z"
endDate:
type: string
description: the endDate in UTC
example: "2021-08-23T12:00:00Z"
SingleEvents:
type: array
items:
$ref: '#/components/schemas/SingleEvent'
parameters:
additionalFields:
in: query
name: additionalFields
description: fields to encode
required: false
explode: true
schema:
$ref: '#/components/schemas/Fields'
aggregatedData:
name: aggregatedData
in: query
description: if set to true, the request will return aggregated data
required: false
schema:
type: boolean
default: true
alarmAdditionalFields:
in: query
name: additionalFields
description: alarmData fields to encode
required: false
explode: true
schema:
type: array
items:
type: string
default: [ ]
alarmLimit:
name: limit
in: query
description: the maximum number of records to retrieve, this value must be smaller than the "maxAlarmCount" inside the ExploreServlet.
required: false
schema:
type: integer
default: maxAlarmCount inside the ExploreServlet
delta:
name: delta
in: query
description: the delta to apply on the query fetching the records
required: false
schema:
type: boolean
endDate:
name: endDate
in: query
description: If the period is empty, the end of the period on which elements will be retrieved. The value must follow the ISO 8601 format
required: false
schema:
type: string
historyLimit:
name: limit
in: query
description: the maximum number of records to retrieve, this value must be smaller than the "maxHistoryCount" inside the ExploreServlet.
required: false
schema:
type: integer
default: maxHistoryCount inside the ExploreServlet
period:
name: period
in: query
description: The period on which elements will be retrieved
required: false
schema:
type: string
enum: [ today, last24Hours, yesterday, weekToDate, lastWeek, last7Days, monthToDate, lastMonth, yearToDate, lastYear ]
rollupInterval:
name: rollupInterval
in: query
description: The rollup to apply on the query fetching the records. Must come with a valid rollupOperator value
required: false
schema:
type: string
enum: [ none, oneMin, fiveMin, fifteenMin, thirtyMin, hourly, daily, monthly, yearly ]
rollupOperator:
name: rollupOperator
in: query
description: The field that will be fetched in the data in addition to Timestamp and End Timestamp. Must come with a valid rollupInterval value
required: false
schema:
type: string
enum: [ avg, count, max, min, sum ]
retrieveValues:
name: retrieveValues
in: query
description: if set to true, the request will return the records associated to the history
required: false
schema:
type: boolean
default: false
startDate:
name: startDate
in: query
description: If the period is empty, the start of the period on which elements will be retrieved. The value must follow the ISO 8601 format
required: false
schema:
type: string
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/BTIBDEV/Linksper/1.0.0