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/{id}/recurringEvents:
post:
tags:
- Operate
summary: Create a recurring event
operationId: postOperateScheduleRecurringEvents
description: Create a special event in the Schedule matching the id
parameters:
- in: path
name: id
description: id of the target Schedule
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
day:
type: string
description: The day of the event
enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
eventId:
type: string
description: The id of the event. If it's absent, a unique id will be generated
example: "My Id value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The created recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/recurringEvents/{eventId}:
get:
tags:
- Operate
summary: Get a recurring event
operationId: getOperateSchedulesRecurringEvents
description: Retrieve the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The matching recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
put:
tags:
- Operate
summary: Update a recurring event
operationId: putOperateSchedulesRecurringEvents
description: Update the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
day:
type: string
description: The day of the event
enum: [ monday, tuesday, wednesday, thursday, friday, saturday, sunday ]
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The udpated recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/RecurringEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
delete:
tags:
- Operate
summary: Delete a recurring event
operationId: deleteOperateSchedulesRecurringEvents
description: Delete the recurring event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The deleted recurring event
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{id}/specialEvents:
post:
tags:
- Operate
summary: Create a special event
operationId: postOperateScheduleSpecialEvents
description: Create a special event in the Schedule matching the id
parameters:
- in: path
name: id
description: id of the target Schedule
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
eventName:
type: string
description: The name of the event
example: "MyEvent"
startDate:
type: string
description: The start date of the event in ISO 8601
example: "2021-05-25T12:00:00.000Z"
endDate:
type: string
description: The end date of the event in ISO 8601
example: "2021-05-25T13:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
eventId:
type: string
description: The id of the event. If it's absent, a unique id will be generated
example: "My Id value"
required:
- eventName
- startDate
- endDate
- value
responses:
'200':
description: success message
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
/v1/operate/schedules/{scheduleId}/specialEvents/{eventId}:
get:
tags:
- Operate
summary: Get a special event
operationId: getOperateSchedulesSpecialEvents
description: Retrieve the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The matching special event
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
put:
tags:
- Operate
summary: Update a special event
operationId: putOperateSchedulesSpecialEvents
description: Update the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
startTime:
type: string
description: The start time of the event in ISO 8601
example: "17:00:00.000Z"
endTime:
type: string
description: The end time of the event in ISO 8601
example: "18:00:00.000Z"
value:
type: string
description: The value of the event. Can be a String, a boolean or a number
example: "My Event value"
required:
- day
- startTime
- endTime
- value
responses:
'200':
description: The udpated special event
content:
application/json:
schema:
$ref: '#/components/schemas/SingleEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
- Conflicting events
'404':
description: Resource not found
'500':
description: Internal server error
delete:
tags:
- Operate
summary: Delete a special event
operationId: deleteOperateSchedulesSpecialEvents
description: Delete the special event matching the given eventId in the schedule matching the given scheduleId
parameters:
- in: path
name: scheduleId
description: id of the target Schedule
required: true
schema:
type: string
- in: path
name: eventId
description: id of the target Event
required: true
schema:
type: string
responses:
'200':
description: The deleted special event
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedEvent'
'400':
description: |
Bad request
- The source isn't a weekly schedule
- Invalid parameter value
'404':
description: Resource not found
'500':
description: Internal server error
/v1/troubleshoot/integrationTests:
get:
tags:
- Troubleshoot
summary: Integration tests results
operationId: getTroubleshootIntegrationTests
description: Get the result of each integration tests
responses:
'200':
description: search results matching criteria
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Component'
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
post:
tags:
- Troubleshoot
summary: Execute Integration tests
operationId: postTroubleshootIntegrationTests
description: Execute all the integration tests
responses:
'200':
description: number of executed tests
content:
application/json:
schema:
type: object
properties:
tests:
type: integer
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
/v1/troubleshoot/integrationTestsReport:
get:
tags:
- Troubleshoot
summary: Integration tests report
operationId: getTroubleshootIntegrationTestsReport
description: Get the report of the integration tests
responses:
'200':
description: the report in markdown
content:
application/json:
schema:
type: object
properties:
report:
type: string
'400':
description: |
Bad request
- Empty report
'403':
description: |
Forbidden
'404':
description: Cannot find the test controller
'500':
description: Internal server error
components:
schemas:
Alarm:
type: object
description: The encoded alarm. The fields in the response will depend on the fields in the request
properties:
uuid:
type: string
example: a93baf31-8072-4315-b168-ddca1fa3fd9d
timestamp:
type: string
example: 2021-01-27T17:11:55.542+01:00
alarmClass:
type: string
example: Default Alarm Class
source:
type: string
example: BooleanWritable
sourceState:
type: string
example: Offnormal
priority:
type: integer
example: 255
message:
type: string
example: '{ok}'
ackState:
type: string
example: Unacked
ackBy:
type: string
example: admin
ackDate:
type: string
example: 2021-01-27T17:16:45.542+01:00
id:
type: string
example: H0SN7gEBY9ZvVatAMC2GL
Component:
type: object
description: The encoded component. The fields in the response will depend on the additonalfields in the request. Depending on the endpoints different fields will be encoded by default
properties:
name:
type: string
example: My$20Component
displayName:
type: string
example: My Component
slotPathOrd:
type: string
example: station:|slot:/Drivers/My$20Component
link:
type: string
example: https://192.168.1.4:443/ord/station:|slot:/Drivers/My$20Component
id:
type: string
example: F0SCYW7KHZVkyKmnRENuC
description:
type: string
example: My component's description
status:
type: string
example: '{ok}'
enabled:
type: boolean
example: true
descendants:
type: array
items:
$ref: '#/components/schemas/Component'
DeletedEvent:
type: object
description: The encoded Deleted Event. As the relations with the parent schedules are lost after the deletion, some data is lost
properties:
id:
type: string
example: "MyId"
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
startTime:
type: string
example: "09:00:00+02:00"
endTime:
type: string
example: "17:00:00+02:00"
Fields:
type: array
items:
type: string
enum:
- allRelations
- allTags
- description
- displayName
- enabled
- facets
- id
- link
- mnemonic
- name
- out
- pointValue
- slotPathOrd
- status
- '{tagId}'
- '{relationId}'
description: |
List of the possible components fields to encode. Any missing field in the component will be skipped
- allRelations: An array of all the component's relations
- allTags: An array of all the component's tags
- description: The component's description
- displayName: The component's display name
- enabled: The value of the "enabled" slot
- facets: The value of the "facet" slot
- id: The component's id (the value of the "id" slot or the value of the "b:id" tag)
- link: A link to the component
- mnemonic: The value of the "mnemonic" slot
- name: The component's name
- out: The value of the "out" slot (with the status if there is one)
- pointValue: The value of the "out" slot (without the status)
- slotPathOrd: The component's display slot path ord, prefixed with station:|
- status: The component's status encoded to a String
- {tagId}: the relation with the given id
- {relationId}: the tag with the given id
Depending on the endpoint and the component, some field will be added by default.
- Hierarchy: The name, displayName, status, id and description will be encoded and if the component is an point, the pointValue, the status and the facets will also be encoded by default.
-Asset: The name, displayName, status, value, enabled, id and description will be encoded
History:
type: object
description: The encoded history.
properties:
id:
type: string
example: "/deviceName/componentName"
timezone:
type: string
example: Europe/Paris (+1/+2)
capacity:
type: string
example: Unlimited
fullPolicy:
type: string
example: Roll
interval:
type: string
example: 1 minute
data:
type: array
items:
$ref: '#/components/schemas/Record'
Node:
type: object
description: The encoded node.
required: [ displayName ]
properties:
id:
type: string
example: "MyNodeId"
aspect:
type: string
example: "str"
nodeDefinition:
type: string
example: "site"
name:
type: string
example: "MyNodeName"
displayName:
type: string
example: "MyNodeDisplayName"
ascendants:
type: array
items:
type: string
nodeTags:
type: array
items:
$ref: '#/components/schemas/NodeTag'
NodeForUpdate:
type: object
description: The encoded node.
required: [ id ]
properties:
id:
type: string
example: "MyNodeId"
displayName:
type: string
example: "MyNodeDisplayName"
ascendants:
type: array
items:
type: string
nodeTags:
type: array
items:
$ref: '#/components/schemas/NodeTag'
NodeTag:
type: object
description: The encoded node tag.
required: [ tag, slotType, value ]
properties:
tag:
type: string
example: "b:myTag"
slotType:
type: string
example: "baja:String"
value:
type: string
example: "MyValue"
Record:
type: object
description: The encoded record.
properties:
Timestamp:
type: string
example: 25-Jan-21 5:14 PM CET
Trend Flags:
type: integer
example: 0
Status:
type: string
example: '{ok}'
Value:
type: string
example: value
RecurringEvent:
type: object
description: The encoded Single Event.
properties:
id:
type: string
example: "MyId"
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
timeZone:
type: string
example: "Europe/Paris"
startTime:
type: string
example: "09:00:00.000"
endTime:
type: string
example: "17:00:00.000"
day:
type: string
example: "monday"
Schedule:
type: object
description: The encoded Schedule.
properties:
name:
type: string
example: My$20Schedule
displayName:
type: string
example: My Schedule
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
nextDataValue:
type: string
example: 0
nextStatusValue:
type: string
example: '{ok}'
nextTime:
type: string
example: '2021-08-23T17:00:00+02:00'
id:
type: string
example: "S0SdbW4sqJyrr51UOgfhb"
description:
type: string
example: My schedule's description
singleEvents:
type: array
items:
$ref: '#/components/schemas/SingleEvent'
recurringEvents:
type: array
items:
$ref: '#/components/schemas/RecurringEvent'
SingleEvent:
type: object
description: The encoded Single Event.
properties:
id:
type: string
example: "MyId"
name:
type: string
example: My$20Single$20Event
displayName:
type: string
example: My Single Event
dataValue:
type: string
example: 0
status:
type: string
example: '{ok}'
startDate:
type: string
description: the startDate in UTC
example: "2021-08-23T07:00:00Z"
endDate:
type: string
description: the endDate in UTC
example: "2021-08-23T12:00:00Z"
parameters:
additionalFields:
in: query
name: additionalFields
description: fields to encode
required: false
explode: true
schema:
$ref: '#/components/schemas/Fields'
aggregatedData:
name: aggregatedData
in: query
description: if set to true, the request will return aggregated data
required: false
schema:
type: boolean
default: true
alarmAdditionalFields:
in: query
name: additionalFields
description: alarmData fields to encode
required: false
explode: true
schema:
type: array
items:
type: string
default: [ ]
alarmLimit:
name: limit
in: query
description: the maximum number of records to retrieve, this value must be smaller than the "maxAlarmCount" inside the ExploreServlet.
required: false
schema:
type: integer
default: maxAlarmCount inside the ExploreServlet
delta:
name: delta
in: query
description: the delta to apply on the query fetching the records
required: false
schema:
type: boolean
endDate:
name: endDate
in: query
description: If the period is empty, the end of the period on which elements will be retrieved. The value must follow the ISO 8601 format
required: false
schema:
type: string
historyLimit:
name: limit
in: query
description: the maximum number of records to retrieve, this value must be smaller than the "maxHistoryCount" inside the ExploreServlet.
required: false
schema:
type: integer
default: maxHistoryCount inside the ExploreServlet
period:
name: period
in: query
description: The period on which elements will be retrieved
required: false
schema:
type: string
enum: [ today, last24Hours, yesterday, weekToDate, lastWeek, last7Days, monthToDate, lastMonth, yearToDate, lastYear ]
rollupInterval:
name: rollupInterval
in: query
description: The rollup to apply on the query fetching the records. Must come with a valid rollupOperator value
required: false
schema:
type: string
enum: [ none, oneMin, fiveMin, fifteenMin, thirtyMin, hourly, daily, monthly, yearly ]
rollupOperator:
name: rollupOperator
in: query
description: The field that will be fetched in the data in addition to Timestamp and End Timestamp. Must come with a valid rollupInterval value
required: false
schema:
type: string
enum: [ avg, count, max, min, sum ]
retrieveValues:
name: retrieveValues
in: query
description: if set to true, the request will return the records associated to the history
required: false
schema:
type: boolean
default: false
startDate:
name: startDate
in: query
description: If the period is empty, the start of the period on which elements will be retrieved. The value must follow the ISO 8601 format
required: false
schema:
type: string
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/BTIBDEV/Linksper/1.0.0