openapi: 3.0.3
info:
contact:
email: hello@eliona.io
name: Eliona by IoTEC AG
url: https://eliona.io
description: "The Eliona REST API provides unified access to the resources and data\
\ within an Eliona environment.
This documentation corresponds to Eliona\
\ release 14.2. For previous Eliona releases, please refer to the matching REST\
\ API version below:
Eliona v14.2: [2.9.4](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.9.4/openapi.yaml)
\
\ Eliona v14.1: [2.9.4](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.9.4/openapi.yaml)
\
\ Eliona v14.0: [2.8.7](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.8.7/openapi.yaml)
\
\ Eliona v13.2: [2.7.0](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.7.0/openapi.yaml)
\
\ Eliona v13.1: [2.6.12](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.6.12/openapi.yaml)
\
\ Eliona v13.0: [2.6.12](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.6.12/openapi.yaml)
\
\ Eliona v12.1: [2.6.1](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.6.1/openapi.yaml)
\
\ Eliona v12.0: [2.6.1](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/tags/v2.6.1/openapi.yaml)
\
\ [Preview Beta](https://api.eliona.io/?https://raw.githubusercontent.com/eliona-smart-building-assistant/eliona-api/refs/heads/develop/openapi.yaml)
"
license:
name: MIT
title: Eliona REST API
version: 2.9.6
externalDocs:
description: Find out more about Eliona App SDK
url: https://github.com/eliona-smart-building-assistant
servers:
- url: "https://{environment}.eliona.io/v2"
variables:
environment:
default: name
description: Environment name to define the server URL
- url: "https://{environment}.eliona.io/api/v2"
variables:
environment:
default: name
description: Environment name to define the server URL
- url: "https://{server}/v2"
variables:
server:
default: somewhere:3000
description: Server of the API
- url: "http://{server}/v2"
variables:
server:
default: localhost:3000
description: Server of the API
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- description: API version
externalDocs:
url: https://www.eliona.io
name: Version
- description: User information
externalDocs:
url: https://www.eliona.io
name: Users
- description: Project information
externalDocs:
url: https://www.eliona.io
name: Projects
- description: Tag information
externalDocs:
url: https://www.eliona.io
name: Tags
- description: Handle asset types
externalDocs:
url: https://www.eliona.io
name: Asset types
- description: Handle assets
externalDocs:
url: https://www.eliona.io
name: Assets
- description: Handle asset data
externalDocs:
url: https://www.eliona.io
name: Data
- description: Handle calculation rules
externalDocs:
url: https://www.eliona.io
name: Calculation rules
- description: Handle alarms
externalDocs:
url: https://www.eliona.io
name: Alarms
- description: Handle alarm rules
externalDocs:
url: https://www.eliona.io
name: Alarm rules
- description: Handle widgets types for dashboards
externalDocs:
url: https://www.eliona.io
name: Widgets types
- description: Handle widgets for dashboards
externalDocs:
url: https://www.eliona.io
name: Widgets
- description: Handle dashboards
externalDocs:
url: https://www.eliona.io
name: Dashboards
- description: Communicate to peoples
externalDocs:
url: https://www.eliona.io
name: Communication
- description: QR codes for frontend links
externalDocs:
url: https://www.eliona.io
name: QR codes
- description: Handle apps
externalDocs:
url: https://www.eliona.io
name: Apps
- description: Handle nodes
externalDocs:
url: https://www.eliona.io
name: Nodes
- description: Handle agents
externalDocs:
url: https://www.eliona.io
name: Agents
- description: Handle data aggregations
externalDocs:
url: https://www.eliona.io
name: Aggregations
paths:
/version:
get:
description: Gets information about the APIs version.
operationId: getVersion
responses:
"200":
content:
application/json:
schema:
type: object
description: Successfully returned the APIs version.
security: []
summary: Version of the API
tags:
- Version
/version/openapi.json:
get:
description: Gets specification for this API version as an openapi.json file.
operationId: getOpenAPI
responses:
"200":
content:
application/json: {}
description: Successfully returned the openapi.json file.
security: []
summary: OpenAPI specification for this API version
tags:
- Version
/apps/{app-name}:
get:
description: Gets information about an app.
operationId: getAppByName
parameters:
- description: The name of the app
example: weather
in: path
name: app-name
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/App"
description: Successfully returned information about an app.
summary: Information about an app
tags:
- Apps
patch:
description: Update properties of an app.
operationId: patchAppByName
parameters:
- description: The name of the app
example: weather
in: path
name: app-name
required: true
schema:
type: string
- description: "Marks that the app is now initialized and installed. Further\
\ request to get app information returns { \"registered\": true }"
in: query
name: registered
required: false
schema:
type: boolean
responses:
"200":
description: Successfully updated the app
summary: Update an app
tags:
- Apps
/apps/{app-name}/patches/{patch-name}:
get:
description: Gets information about a patch for an app.
operationId: getPatchByName
parameters:
- description: The name of the app
example: weather
in: path
name: app-name
required: true
schema:
type: string
- description: The name of the patch
example: 2.0.0
in: path
name: patch-name
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Patch"
description: Successfully returned information about a patch for an app
summary: Information about a patch for an app
tags:
- Apps
patch:
description: Updates properties of a patch for an app.
operationId: patchPatchByName
parameters:
- description: The name of the app
example: weather
in: path
name: app-name
required: true
schema:
type: string
- description: The name of the patch
example: 2.0.0
in: path
name: patch-name
required: true
schema:
type: string
- description: "Marks that the patch is now applied. Further request to get\
\ patch information returns { \"applied\": true }"
in: query
name: apply
required: false
schema:
type: boolean
responses:
"200":
description: Successfully updated the patch for the app
summary: Updates a patch
tags:
- Apps
/asset-types:
get:
description: Returns a list of asset types
operationId: getAssetTypes
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AssetType"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/AssetType"
description: Successfully returned a list of asset types
summary: List of asset types
tags:
- Asset types
post:
description: Create a new asset type.
operationId: postAssetType
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
description: Successfully created a new asset type
"409":
description: Asset type name already exists
summary: Create an asset type
tags:
- Asset types
put:
description: Create a new asset type or update an asset type if already exists.
Uses the unique asset type name for updating.
operationId: putAssetType
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
description: Successfully created a new or updated an existing asset type
summary: Create or update an asset type
tags:
- Asset types
/asset-types/{asset-type-name}:
delete:
description: Deletes an asset type and the attributes for this asset type.
operationId: deleteAssetTypeByName
parameters:
- description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
responses:
"204":
description: Successfully deleted the asset type
"404":
description: Asset type with name not found
summary: Delete an asset type
tags:
- Asset types
get:
description: Gets information about an asset type.
operationId: getAssetTypeByName
parameters:
- description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
description: Successfully returned an asset type by name.
"404":
description: Asset type with name not found
summary: Information about an asset type
tags:
- Asset types
put:
description: Update an asset type.
operationId: putAssetTypeByName
parameters:
- description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetType"
description: Successfully updated an existing asset type
"404":
description: Asset type with name not found
summary: Update an asset type
tags:
- Asset types
/asset-types/{asset-type-name}/attributes:
post:
description: Create a new asset type attribute.
operationId: postAssetTypeAttribute
parameters:
- description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeAttribute"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeAttribute"
description: Successfully created a new asset type attribute
"409":
description: "Combination of asset type name, subtype and attribute name\
\ already exists"
summary: Create asset type attribute
tags:
- Asset types
put:
description: "Create a new asset type attribute or update an asset type attribute\
\ if already exists. Uses the unique combination of asset type name, subtype\
\ and attribute name for updating."
operationId: putAssetTypeAttribute
parameters:
- description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeAttribute"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeAttribute"
description: Successfully created a new or updated an existing asset type
attribute
summary: Create or update an asset type attribute
tags:
- Asset types
/asset-type-categories:
get:
description: Returns a list of asset type categories
operationId: getAssetTypeCategories
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AssetTypeCategory"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/AssetTypeCategory"
description: Successfully returned a list of asset type categories
summary: List of asset type categories
tags:
- Asset types
put:
description: Create a new asset type categories or update an asset type categories
if already exists. Uses the unique name for updating.
operationId: putAssetTypeCategory
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeCategory"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetTypeCategory"
description: Successfully created a new or updated an existing asset type
category
summary: Create or update an asset type categories
tags:
- Asset types
/asset-type-categories/{asset-type-category-name}:
delete:
description: Deletes an asset type category
operationId: deleteAssetTypeCategoryByName
parameters:
- description: The name of the asset type category
example: location
in: path
name: asset-type-category-name
required: true
schema:
type: string
responses:
"204":
description: Successfully deleted the asset type category
"404":
description: Asset type category with name not found
summary: Delete an asset type category
tags:
- Asset types
/assets:
get:
description: Gets a list of assets
operationId: getAssets
parameters:
- description: Filter the name of the asset type
example: weather_location
in: query
name: assetTypeName
required: false
schema:
type: string
- description: Filter for a specific project
in: query
name: projectId
required: false
schema:
type: string
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Asset"
description: Successfully returned the list of assets
summary: Information about assets
tags:
- Assets
post:
description: |
This process involves creating an asset. The determination if the asset already exists and cannot be
created is done by the 'identifyBy' parameter, which specifies the field used for identification.
operationId: postAsset
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
description: |
Successfully created a new asset
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: |
Issues arisen during the creation or updating process.
summary: Create an asset
tags:
- Assets
put:
description: |
This process involves creating or updating an asset. The choice between updating or creating is determined
by the 'identifyBy' parameter, which specifies the field used for identification.
operationId: putAsset
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
description: Successfully created a new or updated an existing asset
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: Issues arisen during the creation or updating process.
summary: Create or update an asset
tags:
- Assets
/assets/{asset-id}:
delete:
description: Deletes an asset
operationId: deleteAssetById
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
responses:
"204":
description: Successfully deleted the asset
"404":
description: Asset type with id not found
summary: Delete an asset
tags:
- Assets
get:
description: Gets information about an asset.
operationId: getAssetById
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
description: Successfully returned the asset by id.
"404":
description: Asset with id not found
summary: Information about an asset
tags:
- Assets
put:
deprecated: true
description: |
Deprecated: use the 'PUT /asset' method and optionally the 'identifyBy' parameter to update a specific asset.
operationId: putAssetById
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Asset"
description: Successfully updated an existing asset
"404":
description: Asset with id not found
summary: Update an asset
tags:
- Assets
/assets-bulk:
delete:
description: Delete multiple assets based on the identifiers defined by the
'identifyBy' parameter.
operationId: deleteBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Identifier"
type: array
required: true
responses:
"204":
description: The complete list of assets have been successfully deleted.
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: "Issues may arise during the deletion process. If at least\
\ one asset encounters an error and cannot be deleted or is not found,\
\ no changes will be applied to any of the assets in the list."
summary: Delete a list of assets
tags:
- Assets
post:
description: "This process involves creating the assets in the list. The determination\
\ if the asset already exists and cannot be created is done by the 'identifyBy'\
\ parameter, which specifies the field used for identification."
operationId: postBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
required: true
responses:
"201":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
description: "The complete list of assets has been successfully created.\
\ The content displays the list of assets in the same order as the initial\
\ request, along with some generated or default values (e.g. timestamps,\
\ IDs)."
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: "Issues may arise during the creation process when handling\
\ the assets in the list. In such cases, if at least one asset encounters\
\ an error and cannot be created, no changes will be applied to any of\
\ the assets in the list."
summary: Create a list of assets
tags:
- Assets
put:
description: "This process involves creating or updating assets. The choice\
\ between updating or creating an asset is determined by the 'identifyBy'\
\ parameter, which specifies the field used for identification."
operationId: putBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
required: true
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
description: "The complete list of assets has been successfully created\
\ or updated. The content displays the list of assets in the same order\
\ as the initial request, along with some generated or default values\
\ (e.g. timestamps, IDs)."
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: "Issues may arise during the creation or updating process when\
\ handling the assets in the list. In such cases, if at least one asset\
\ encounters an error and cannot be created or updated, no changes will\
\ be applied to any of the assets in the list."
summary: Create or update a list of assets
tags:
- Assets
/assets-bulk/dry-run:
delete:
description: Simulates the process of deleting multiple assets via the 'DELETE
/assets-bulk' without actually persisting any changes.
operationId: dryRunDeleteBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Identifier"
type: array
required: true
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AssetDryRun"
type: array
description: The list of expected results if the request is actually performed.
The content displays the list of expected results in the same order as
the initial request.
summary: Dry-run for deleting a list of assets
tags:
- Assets
post:
description: Simulates the process of creating assets via the 'POST /assets-bulk'
endpoint without actually persisting any changes.
operationId: dryRunPostBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
required: true
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AssetDryRun"
type: array
description: The list of expected results if the request is actually performed.
The content displays the list of expected results in the same order as
the initial request.
summary: Dry-run for creating a list of assets
tags:
- Assets
put:
description: Simulates the process of creating or updating assets via the 'PUT
/assets-bulk' endpoint without actually persisting any changes.
operationId: dryRunPutBulkAssets
parameters:
- description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Asset"
type: array
required: true
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AssetDryRun"
type: array
description: The list of expected results if the request is actually performed.
The content displays the list of expected results in the same order as
the initial request.
summary: Dry-run for creating or updating a list of assets
tags:
- Assets
/asset-listener:
get:
description: "Open a WebSocket connection to get informed when asset is created,\
\ updated or deleted."
operationId: listenAsset
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AssetListen"
description: Successfully opened a connection to asset WebSocket
summary: WebSocket connection for asset changes
tags:
- Assets
/attribute-display:
get:
description: Gets information about how attributes for specific assets are displayed
in frontend.
operationId: getAttributeDisplay
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AttributeDisplay"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/AttributeDisplay"
description: Successfully returned display information for attributes
summary: How attributes are displayed
tags:
- Assets
put:
description: "Create or update how attributes are displayed in frontend. Uses\
\ the unique combination of asset id, subtype and attribute name for updating."
operationId: putAttributeDisplay
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AttributeDisplay"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AttributeDisplay"
description: Successfully updated or created display information for attributes
summary: Create or update how attributes are displayed
tags:
- Assets
/data:
get:
description: Gets information about data for assets.
operationId: getData
parameters:
- description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
- description: Filter for a specific parent asset id
example: 4711
in: query
name: parentAssetId
required: false
schema:
type: integer
- description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
- description: Filter the name of the asset type
example: weather_location
in: query
name: assetTypeName
required: false
schema:
type: string
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Data"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Data"
description: Successfully returned data for assets
summary: Gets all data
tags:
- Data
put:
description: Create new asset data or update data if already exists. Uses the
unique combination of asset id and subtype for updating.
operationId: putData
parameters:
- deprecated: true
description: Executes the operation directly without using other services.
example: true
in: query
name: directMode
required: false
schema:
enum:
- "true"
- "false"
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Data"
required: true
responses:
"201":
description: Successfully created a new or updated existing asset data
summary: Create or update asset data
tags:
- Data
/data-bulk:
put:
description: Create multiple asset data or update data if already exists. Uses
the unique combination of asset id and subtype for updating.
operationId: putBulkData
parameters:
- deprecated: true
description: Executes the operation directly without using other services.
example: true
in: query
name: directMode
required: false
schema:
enum:
- "true"
- "false"
type: string
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Data"
type: array
required: true
responses:
"201":
description: Successfully created multiple asset data
summary: Create or update multiple asset data
tags:
- Data
/data-trend:
put:
description: "This creates or updates historical data. The choice between updating\
\ or creating depends on whether the historical \ndata for assetId, subtype,\
\ parameter and timestamp already exists.\n"
operationId: putDataTrend
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Data"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Data"
description: Successfully created a new or updated historical data
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessage422"
description: Issues arisen during the creation or updating
summary: Create or update historical data
tags:
- Data
/data-trend/{asset-id}:
get:
description: Gets trend information about historical data for an asset
operationId: getDataTrendById
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
- description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
- description: Data attribute name
example: temperature
in: query
name: attributeName
required: false
schema:
type: string
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Data"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Data"
description: Successfully returned historical data for an asset
summary: Get trend of historical data
tags:
- Data
/data-trend-aggregated/{asset-id}:
get:
description: Gets aggregated trend of historical data for a period and time
grid for an asset
operationId: getDataTrendAggregatedById
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
- description: Type of asset data
example: input
in: query
name: dataSubtype
required: true
schema:
enum:
- input
- info
- status
- output
- property
type: string
- description: Data attribute name
example: temperature
in: query
name: attributeName
required: true
schema:
type: string
- description: Aggregation calculation period
examples:
one_day:
summary: One day interval
value: 1d
two_hours_thirty_minutes:
summary: Two hours and thirty minutes
value: 2h30m
one_year_two_months_three_days:
summary: "One year, two months, and three days"
value: 1y2mon3d
in: query
name: aggregationRaster
required: true
schema:
type: string
- description: Method for summarize data
example: sum
in: query
name: sumMethod
required: false
schema:
enum:
- sum
- cusum
type: string
- description: Lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: true
schema:
type: string
- description: Upper date time (RFC3339) limit inclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: true
schema:
type: string
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/DataTrendAggregated"
type: array
description: Successfully returned aggregated data sets for an asset
summary: Get aggregated trend of historical data
tags:
- Data
/data-listener:
get:
description: Open a WebSocket connection to get informed when new asset data
is written or anything changes.
operationId: listenData
parameters:
- description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
- description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/DataListen"
description: Successfully opened a connection to asset data WebSocket
summary: WebSocket connection for asset data changes
tags:
- Data
/data-trends:
get:
deprecated: true
description: |
Deprecated: Use 'GET /data-trend/{asset-id}' instead.
Gets trend information about historical data for assets.
operationId: getDataTrends
parameters:
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
- description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
- description: Filter the name of the asset type
example: weather_location
in: query
name: assetTypeName
required: false
schema:
type: string
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Data"
type: array
description: Successfully returned historical data for assets
summary: Get trend of historical data
tags:
- Data
/data-aggregated:
get:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Gets aggregated data sets which combines a set of data points for a defined periodical raster.
operationId: getDataAggregated
parameters:
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
- description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
- description: Filter the name of the asset type
example: weather_location
in: query
name: assetTypeName
required: false
schema:
type: string
- description: Filter for a specific aggregation id
example: "0815"
in: query
name: aggregationId
required: false
schema:
type: integer
- description: Aggregation calculation interval
example: DAY
in: query
name: aggregationRaster
required: false
schema:
enum:
- S1
- S2
- S3
- S4
- S5
- S6
- S10
- S12
- S15
- S20
- S30
- M1
- M2
- M3
- M4
- M5
- M6
- M10
- M12
- M15
- M20
- M30
- H1
- H2
- H3
- H4
- H6
- H8
- H12
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- DECADE
- CENTURY
type: string
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/DataAggregated"
type: array
description: Successfully returned aggregated data sets
summary: Get aggregated data
tags:
- Data
/aggregations:
get:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Gets a list of aggregations.
operationId: getAggregations
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Aggregation"
type: array
description: Successfully returned the list of aggregations
summary: Information about aggregations
tags:
- Aggregations
post:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Creates a new aggregation.
operationId: postAggregation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
description: Successfully created an aggregation
"409":
description: "Combination of asset id, subtype, attribute and raster already\
\ exists"
summary: Creates an aggregation
tags:
- Aggregations
put:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Creates an aggregation or updates if already exists. Uses the unique combination of asset id, subtype, attribute and raster for updating.
operationId: putAggregation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
description: Successfully created or updated an aggregation
summary: Creates or updates an aggregation
tags:
- Aggregations
/aggregations/{aggregation-id}:
delete:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Deletes an aggregation by the given id.
operationId: deleteAggregationById
parameters:
- description: The id of the aggregation
example: 4711
in: path
name: aggregation-id
required: true
schema:
type: integer
responses:
"204":
description: Successfully deleted the aggregation by id.
"404":
description: Aggregation with id not found
summary: Delete an aggregation
tags:
- Aggregations
get:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Gets information about an aggregation by the given id.
operationId: getAggregationById
parameters:
- description: The id of the aggregation
example: 4711
in: path
name: aggregation-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
description: Successfully returned an aggregation by id.
"404":
description: Aggregation with id not found
summary: Information about an aggregation
tags:
- Aggregations
put:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Updates an aggregation.
operationId: putAggregationById
parameters:
- description: The id of the aggregation
example: 4711
in: path
name: aggregation-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Aggregation"
description: Successfully updated an aggregation
"404":
description: Aggregation with id not found
summary: Updates an aggregation
tags:
- Aggregations
/widget-types:
get:
description: Returns a list of widget types
operationId: getWidgetTypes
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/WidgetType"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/WidgetType"
description: Successfully returned a list of widget types
summary: List of widget types
tags:
- Widgets types
post:
description: Create a new widget type.
operationId: postWidgetType
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
description: Successfully created widget type
"409":
description: Widget type name already exists
summary: Create a widget type
tags:
- Widgets types
put:
description: Create a new widget type or update it if already exists. Uses the
unique widget type name for updating.
operationId: putWidgetType
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
description: Successfully added or updated widget type
summary: Create or update a widget type
tags:
- Widgets types
/widget-types/{widget-type-name}:
delete:
description: Deletes a widget type and the elements for this widget type.
operationId: deleteWidgetTypeByName
parameters:
- description: The name of the widget type
example: weather
in: path
name: widget-type-name
required: true
schema:
type: string
responses:
"204":
description: Successfully deleted the widget type
"404":
description: Widget type with name not found
summary: Delete a widget type
tags:
- Widgets types
get:
description: Gets information about a widget type.
operationId: getWidgetTypeByName
parameters:
- description: The name of the widget type
example: weather
in: path
name: widget-type-name
required: true
schema:
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
description: Successfully returned a widget type by name.
"404":
description: Widget type with name not found
summary: Information about a widget type
tags:
- Widgets types
put:
description: Update a widget type.
operationId: putWidgetTypeByName
parameters:
- description: The name of the widget type
example: weather
in: path
name: widget-type-name
required: true
schema:
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/WidgetType"
description: Successfully updated widget type
"404":
description: Widget type with name not found
summary: Update a widget type
tags:
- Widgets types
/dashboards:
get:
description: Gets a list of dashboards
operationId: getDashboards
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Dashboard"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Dashboard"
description: Successfully returned the list of dashboards
summary: Information about dashboards
tags:
- Dashboards
post:
description: Create a new dashboard for frontend
operationId: postDashboard
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Dashboard"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Dashboard"
description: Successfully added a new Dashboard
summary: Creates a new dashboard
tags:
- Dashboards
/dashboards/{dashboard-id}:
get:
description: Gets information about a dashboard.
operationId: getDashboardById
parameters:
- description: The id of the dashboard
example: 4711
in: path
name: dashboard-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Dashboard"
description: Successfully returned the the dashboard
"404":
description: Dashboard with id not found
summary: Information about a dashboard
tags:
- Dashboards
/dashboards/{dashboard-id}/widgets:
get:
description: Gets information about widgets on a dashboard.
operationId: getDashboardWidgets
parameters:
- description: The id of the dashboard
example: 4711
in: path
name: dashboard-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Widget"
description: Successfully returned the widgets for the dashboard
"404":
description: Dashboard with id not found
summary: Information about widgets on dashboard
tags:
- Widgets
post:
description: Create a new widget and add this to a dashboard
operationId: postDashboardWidget
parameters:
- description: The id of the dashboard
example: 4711
in: path
name: dashboard-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Widget"
required: true
responses:
"201":
description: Successfully added widget
"404":
description: Dashboard with id not found
summary: Adds widget to dashboard
tags:
- Widgets
/alarm-rules:
get:
description: Gets information about alarm rules.
operationId: getAlarmRules
parameters:
- description: List of alarm rule ids for filtering
explode: false
in: query
name: alarmRuleIds
required: false
schema:
items:
type: integer
type: array
style: form
- description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AlarmRule"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/AlarmRule"
description: Successfully returned a list of alarm rules
summary: Information about alarm rules
tags:
- Alarm rules
post:
description: Create a new alarm rule.
operationId: postAlarmRule
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
description: Successfully created a new alarm rule
summary: Create an alarm rule
tags:
- Alarm rules
put:
deprecated: true
description: "Deprecated - Use POST /alarm-rules to create and PUT /alarm-rules/{alarm-rule-id}\
\ to update"
operationId: putAlarmRule
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
description: Successfully created a new or updated an existing alarm rule
summary: Create or update an alarm rule
tags:
- Alarm rules
/alarm-rules/{alarm-rule-id}:
delete:
description: Deletes an alarm rule.
operationId: deleteAlarmRuleById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
responses:
"204":
description: Successfully deleted the alarm rule
"404":
description: Alarm rule with id not found
summary: Delete an alarm rule
tags:
- Alarm rules
get:
description: Gets information about an alarm rule.
operationId: getAlarmRuleById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
description: Successfully returned an alarm rule
"404":
description: Alarm rule with id not found
summary: Information about an alarm rule
tags:
- Alarm rules
put:
description: Update an alarm rule.
operationId: putAlarmRuleById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmRule"
description: Successfully updated an existing alarm rule
"404":
description: Alarm rule with id not found
summary: Update an alarm rule
tags:
- Alarm rules
/calculation-rules:
get:
description: Gets information about calculation rules.
operationId: getCalculationRules
parameters:
- description: List of calculation rule ids for filtering
explode: false
in: query
name: calculationRuleIds
required: false
schema:
items:
type: integer
type: array
style: form
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/CalculationRule"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/CalculationRule"
description: Successfully returned a list of calculation rules
summary: Information about calculation rules
tags:
- Calculation rules
put:
description: Creates a new or updates an existing calculation rule.
operationId: putCalculationRule
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CalculationRule"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/CalculationRule"
description: Successfully created or updated a calculation rule
summary: Creates or updates a calculation rule
tags:
- Calculation rules
/calculation-rules/{calculation-rule-id}:
delete:
description: Deletes a calculation rule.
operationId: deleteCalculationRuleById
parameters:
- description: The id of the calculation rule
example: 4711
in: path
name: calculation-rule-id
required: true
schema:
type: integer
responses:
"204":
description: Successfully deleted the calculation rule
"404":
description: Calculation rule with id not found
summary: Delete a calculation rule
tags:
- Calculation rules
get:
description: Gets information about a calculation rule.
operationId: getCalculationRuleById
parameters:
- description: The id of the calculation rule
example: 4711
in: path
name: calculation-rule-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/CalculationRule"
description: Successfully returned ancalculation rule
"404":
description: Calculation rule with id not found
summary: Information about a calculation rules rule
tags:
- Calculation rules
put:
description: Update a calculation rule.
operationId: putCalculationRuleById
parameters:
- description: The id of the calculation rule
example: 4711
in: path
name: calculation-rule-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CalculationRule"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/CalculationRule"
description: Successfully updated an existing calculation rule
"404":
description: Calculation rule with id not found
summary: Update a calculation rule
tags:
- Calculation rules
/alarms:
get:
description: Gets information about alarms
operationId: getAlarms
parameters:
- description: Filter for a specific project
in: query
name: projectId
required: false
schema:
type: string
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: "A list of defined tags. Result must include all of these tags,\
\ not just some."
explode: false
in: query
name: tags
required: false
schema:
items:
type: string
type: array
style: form
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Alarm"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Alarm"
description: Successfully returned a list of alarms
summary: Information about alarms
tags:
- Alarms
put:
description: Creates or updates an alarm
operationId: putAlarm
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Alarm"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Alarm"
description: Successfully created a new or updated an existing alarm
summary: Create or update an alarm
tags:
- Alarms
/alarms/{alarm-rule-id}:
delete:
description: Marks an alarm as gone
operationId: deleteAlarmById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
responses:
"204":
description: Successfully removes an alarm
"404":
description: Alarm with alarm rule id not found
summary: Removes an alarm
tags:
- Alarms
get:
description: Gets information about alarm.
operationId: getAlarmById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Alarm"
description: Successfully returned an alarm
"404":
description: Alarm with id not found
summary: Information about alarm
tags:
- Alarms
patch:
description: Update properties of alarm for given id.
operationId: patchAlarmById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
- description: Marks the alarm as acknowledged or not acknowledged by setting
the acknowledge timestamp to now or to null.
in: query
name: acknowledged
required: true
schema:
type: boolean
- description: Sets the text for acknowledgement if acknowledged is set to true
in: query
name: acknowledgeText
required: false
schema:
type: string
responses:
"200":
description: Successfully updated the alarm
summary: Update alarm
tags:
- Alarms
/alarms-history:
get:
description: "Gets information about alarms over the entire time. This includes\
\ current alarms and alarms, which are already processed."
operationId: getAlarmsHistory
parameters:
- description: Filter for a specific project
in: query
name: projectId
required: false
schema:
type: string
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: "A list of defined tags. Result must include all of these tags,\
\ not just some."
explode: false
in: query
name: tags
required: false
schema:
items:
type: string
type: array
style: form
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Alarm"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Alarm"
description: Successfully returned a list of alarms
summary: Information about alarms history
tags:
- Alarms
/alarms-history/{alarm-rule-id}:
get:
description: Gets information about alarm over the entire time. This includes
current alarm and history.
operationId: getAlarmHistoryById
parameters:
- description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: "A list of defined tags. Result must include all of these tags,\
\ not just some."
explode: false
in: query
name: tags
required: false
schema:
items:
type: string
type: array
style: form
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Alarm"
type: array
description: Successfully returned a list of alarms
summary: Information about alarm history
tags:
- Alarms
/alarms-highest:
get:
description: Gets information about an alarms with the highest priority for
each asset.
operationId: getHighestAlarms
parameters:
- description: Filter for a specific project
in: query
name: projectId
required: false
schema:
type: string
- description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
- description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
- description: "A list of defined tags. Result must include all of these tags,\
\ not just some."
explode: false
in: query
name: tags
required: false
schema:
items:
type: string
type: array
style: form
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Alarm"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Alarm"
description: Successfully returned a list of most prioritized alarms
summary: Information about most prioritized alarms
tags:
- Alarms
/alarm-listener:
get:
description: Open a WebSocket connection to get informed when new alarm data
is written or anything changes.
operationId: listenAlarm
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmListen"
description: Successfully opened a connection to alarm WebSocket
summary: WebSocket connection for alarm changes
tags:
- Alarms
/nodes:
get:
description: Gets information about nodes.
operationId: getNodes
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Node"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Node"
description: Successfully returned a list of nodes
summary: Information about nodes
tags:
- Nodes
post:
description: Create a new node.
operationId: postNode
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
description: Successfully created a new node
summary: Create a node
tags:
- Nodes
put:
deprecated: true
description: "Deprecated - Use POST /nodes to create PUT /nodes/{node-ident}\
\ to update."
operationId: putNode
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
description: Successfully created a new or updated an existing node
summary: Create or update a node
tags:
- Nodes
/nodes/{node-ident}:
get:
description: Gets information about a node.
operationId: getNodeByIdent
parameters:
- description: The UUID identifier of the node
example: 4711
in: path
name: node-ident
required: true
schema:
example: fef0a0d3-acad-4611-ac03-1fd842d72505
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
description: Successfully returned a node
"404":
description: Node ident not found
summary: Information about a node
tags:
- Nodes
put:
description: Update a node.
operationId: putNodeByIdent
parameters:
- description: The UUID identifier of the node
example: 4711
in: path
name: node-ident
required: true
schema:
example: fef0a0d3-acad-4611-ac03-1fd842d72505
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Node"
description: Successfully updated an existing node
"404":
description: Node ident not found
summary: Update a node
tags:
- Nodes
/agents:
get:
description: Gets information about agents.
operationId: getAgents
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Agent"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Agent"
description: Successfully returned a list of agents
summary: Information about agents
tags:
- Agents
/agents/{agent-class}:
get:
description: Gets information about agents.
operationId: getAgentsByClass
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Agent"
type: array
description: Successfully returned a list of agents
summary: Information about agents for a specific class
tags:
- Agents
post:
description: Create a new agent for a specific class
operationId: postAgentByClass
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
description: Successfully created a new agent
summary: Create an agent
tags:
- Agents
put:
deprecated: true
description: "Deprecated - use POST /agents/{agent-class} for creating and PUT\
\ /agents/{agent-class}/{agent-id} for updating"
operationId: putAgentByClass
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
description: Successfully created a new or updated an existing agent
summary: Create or update an agent
tags:
- Agents
/agents/{agent-class}/{agent-id}:
get:
description: Gets information about an agent.
operationId: getAgentByClassAndId
parameters:
- description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
description: Successfully returned an agent
"404":
description: Agent with id not found
summary: Information about an agent
tags:
- Agents
put:
description: Update an agent.
operationId: putAgentByClassAndId
parameters:
- description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Agent"
description: Successfully updated an existing agent
"404":
description: Agent with id not found
summary: Update an agent
tags:
- Agents
/agents/{agent-class}/{agent-id}/devices:
get:
description: Gets information about agent devices.
operationId: getAgentDevicesByAgentId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AgentDevice"
type: array
description: Successfully returned a list of devices
summary: Information about agent devices
tags:
- Agents
post:
description: Create a new agent device.
operationId: postAgentDeviceByAgentId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
description: Successfully created a new agent device
summary: Create an agent device
tags:
- Agents
put:
deprecated: true
description: "Deprecated - use POST /agents/{agent-class}/{agent-id}/devices\
\ for creating and PUT /agent-devices/{agent-class}/{agent-device-id} for\
\ updating"
operationId: putAgentDeviceByAgentId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
description: Successfully created a new or updated an existing agent device
summary: Create or update an agent device
tags:
- Agents
/agent-devices/{agent-class}/{agent-device-id}:
get:
description: Gets information about agent device.
operationId: getAgentDeviceById
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AgentDevice"
type: array
description: Successfully returned a agent device
summary: Information about agent device
tags:
- Agents
put:
description: Update a new agent device.
operationId: putAgentDeviceById
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDevice"
description: Successfully update a new agent device
summary: Update an agent device
tags:
- Agents
/agent-devices/{agent-class}/{agent-device-id}/mappings:
get:
description: Gets information about mappings between agent and eliona.
operationId: getAgentDeviceMappingsByDeviceId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AgentDeviceMapping"
type: array
description: Successfully returned a mapping
summary: Information about agent device mappings
tags:
- Agents
post:
description: Create a new agent device mapping.
operationId: postAgentDeviceMappingByDeviceId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
description: Successfully created a new agent device mapping
summary: Create an agent device mapping
tags:
- Agents
put:
deprecated: true
description: "Deprecated - Use POST /agent-devices/{agent-class}/{agent-device-id}/mappings\
\ for creating and /agent-device-mappings/{agent-class}/{agent-device-mapping-id}\
\ for updating"
operationId: putAgentDeviceMappingByDeviceId
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
description: Successfully created a new or updated an existing agent device
mapping
summary: Create or update an agent device mapping
tags:
- Agents
/agent-device-mappings/{agent-class}/{agent-device-mapping-id}:
get:
description: Gets information about agent device mapping.
operationId: getAgentDeviceMappingById
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device mapping
example: 4711
in: path
name: agent-device-mapping-id
required: true
schema:
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/AgentDeviceMapping"
type: array
description: Successfully returned a agent device
summary: Information about agent device mapping
tags:
- Agents
put:
description: Update a new agent device mapping.
operationId: putAgentDeviceMappingById
parameters:
- description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
- description: The id of the device mapping
example: 4711
in: path
name: agent-device-mapping-id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/AgentDeviceMapping"
description: Successfully update a new agent device mapping
summary: Update an agent device mapping
tags:
- Agents
/send-mail:
post:
description: Sends an e-mail to recipients
operationId: postMail
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Message"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/MessageReceipt"
description: Successfully accepted the e-mail
summary: Send e-mail
tags:
- Communication
/send-notification:
post:
description: Sends a notification to Eliona users
operationId: postNotification
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Notification"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/MessageReceipt"
description: Successfully accepted the notification
summary: Send notification
tags:
- Communication
/message-receipts/{message-id}:
get:
description: Gets receipt information for a message.
operationId: getMessageReceiptById
parameters:
- description: The id of the message
example: AB0815
in: path
name: message-id
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/MessageReceipt"
description: Successfully returned the receipt
"404":
description: Message with ID not found
summary: Information about a message
tags:
- Communication
/qr-codes/assets/{asset-id}:
get:
description: Generates QR code linking to an asset in the Eliona frontend.
operationId: getQrCodeByAssetId
parameters:
- description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
responses:
"200":
content:
image/png:
schema:
format: binary
type: string
description: Successfully returned QR code
"404":
description: Asset with id not found
summary: QR code for assets
tags:
- QR codes
/users:
get:
description: Gets a list of users
operationId: getUsers
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/User"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/User"
description: Successfully returned the list of users
summary: Information about users
tags:
- Users
put:
description: Creates an user if no user exists or update it if already exists.
Uses the email address for updating.
operationId: putUser
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/User"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/User"
description: Successfully created a new or updated an existing user
summary: Create or update an user
tags:
- Users
/users/{user-id}:
get:
description: Gets information about an user.
operationId: getUserById
parameters:
- description: The id of the user
example: 123
in: path
name: user-id
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/User"
description: Successfully returned the user by id.
"404":
description: User with id not found
summary: Information about an user
tags:
- Users
/projects:
get:
description: Gets a list of projects
operationId: getProjects
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Project"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Project"
description: Successfully returned the list of projects
summary: Information about projects
tags:
- Projects
put:
description: Creates a project if no project exists or update it if already
exists. Uses the id for updating.
operationId: putProject
parameters:
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Project"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Project"
description: Successfully created a new or updated an existing project
summary: Create or update a project
tags:
- Projects
/projects/{project-id}:
get:
description: Gets information about a project.
operationId: getProjectById
parameters:
- description: The id of the project
example: 99
in: path
name: project-id
required: true
schema:
type: string
- description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows\
\ 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Project"
description: Successfully returned the project by id.
"404":
description: Project with id not found
summary: Information about a project
tags:
- Projects
/project-roles:
get:
description: Retrieves a list of roles that can be assigned to users within
projects
operationId: getProjectRoles
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ProjectRole"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/ProjectRole"
description: Successfully returned the list of project roles
summary: Information about project roles
tags:
- Projects
put:
description: "Creates a new project role if none exists, or updates an existing\
\ one by its name"
operationId: putProjectRole
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ProjectRole"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ProjectRole"
description: Successfully created or updated the project role
summary: Create or update a project role
tags:
- Projects
/project-roles/{role-name}:
get:
description: Gets information about a specific project role.
operationId: getProjectRoleByName
parameters:
- description: The name of the role
example: readonly
in: path
name: role-name
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ProjectRole"
description: Successfully returned the project role by name.
"404":
description: Project role with name not found
summary: Information about a project role
tags:
- Projects
/tags:
get:
description: Gets a list of tags
operationId: getTags
parameters:
- description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
- description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/Tag"
type: array
application/x-ndjson:
schema:
$ref: "#/components/schemas/Tag"
description: Successfully returned the list of tags
summary: Information about tags
tags:
- Tags
put:
description: Creates a tag if no tag exists or update it if already exists.
Uses name for updating.
operationId: putTag
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Tag"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Tag"
description: Successfully created a new or updated an existing tag
summary: Create or update a tag
tags:
- Tags
/tags/{tag-name}:
get:
description: Gets information about a tag.
operationId: getTagByName
parameters:
- description: The name of the tag
example: Support
in: path
name: tag-name
required: true
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Tag"
description: Successfully returned the tag by name.
"404":
description: Tag with name not found
summary: Information about a tag
tags:
- Tags
components:
parameters:
app-name:
description: The name of the app
example: weather
in: path
name: app-name
required: true
schema:
type: string
patch-name:
description: The name of the patch
example: 2.0.0
in: path
name: patch-name
required: true
schema:
type: string
offset:
description: |
Specifies the starting point for pagination by indicating the number of items to skip.
example: 3
in: query
name: offset
required: false
schema:
format: int64
nullable: true
type: integer
size:
description: |
Specifies the number of items per page for pagination.
example: 10
in: query
name: size
required: false
schema:
format: int64
nullable: true
type: integer
expansions:
description: "List of referenced data to load, insert or update. Each entry\
\ defines the full qualified name of the field to be expanded as follows 'ObjectName.fieldName'."
explode: false
in: query
name: expansions
required: false
schema:
items:
type: string
type: array
style: form
asset-type-name:
description: The name of the asset type
example: weather_location
in: path
name: asset-type-name
required: true
schema:
type: string
asset-type-category-name:
description: The name of the asset type category
example: location
in: path
name: asset-type-category-name
required: true
schema:
type: string
assetTypeName:
description: Filter the name of the asset type
example: weather_location
in: query
name: assetTypeName
required: false
schema:
type: string
projectId:
description: Filter for a specific project
in: query
name: projectId
required: false
schema:
type: string
assetIdentifyBy:
description: |
Serves the field name send in the request body as a unique identifier for the asset, essential for
operations like updates or deletions. Please refer to the Asset
schema definition for further information about this fields.
In cases where this parameter isn't defined, all field names
are used in the order defined. So if there is no 'resourceId' present in the request body, the 'deviceId' is
used and when there is also no deviceId present the 'id' field (assetId) is used.
example: resourceId
in: query
name: identifyBy
required: false
schema:
enum:
- resourceId
- deviceId
- id
- gai-projId
type: string
asset-id:
description: The id of the asset
example: 4711
in: path
name: asset-id
required: true
schema:
type: integer
assetId:
description: Filter for a specific asset id
example: 4711
in: query
name: assetId
required: false
schema:
type: integer
parentAssetId:
description: Filter for a specific parent asset id
example: 4711
in: query
name: parentAssetId
required: false
schema:
type: integer
dataSubtype:
description: Filter for a specific type of asset data
example: input
in: query
name: dataSubtype
required: false
schema:
enum:
- input
- info
- status
- output
- property
type: string
directMode:
deprecated: true
description: Executes the operation directly without using other services.
example: true
in: query
name: directMode
required: false
schema:
enum:
- "true"
- "false"
type: string
attributeName:
description: Data attribute name
example: temperature
in: query
name: attributeName
required: false
schema:
type: string
fromDate:
description: Filter by lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: false
schema:
type: string
toDate:
description: Filter by upper date time (RFC3339) limit exclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: false
schema:
type: string
dataSubtypeRequired:
description: Type of asset data
example: input
in: query
name: dataSubtype
required: true
schema:
enum:
- input
- info
- status
- output
- property
type: string
attributeNameRequired:
description: Data attribute name
example: temperature
in: query
name: attributeName
required: true
schema:
type: string
aggregationRasterRequired:
description: Aggregation calculation period
examples:
one_day:
summary: One day interval
value: 1d
two_hours_thirty_minutes:
summary: Two hours and thirty minutes
value: 2h30m
one_year_two_months_three_days:
summary: "One year, two months, and three days"
value: 1y2mon3d
in: query
name: aggregationRaster
required: true
schema:
type: string
sumMethod:
description: Method for summarize data
example: sum
in: query
name: sumMethod
required: false
schema:
enum:
- sum
- cusum
type: string
fromDateRequired:
description: Lower date time (RFC3339) limit inclusive
example: 2020-01-01T09:00:00.000Z
in: query
name: fromDate
required: true
schema:
type: string
toDateRequired:
description: Upper date time (RFC3339) limit inclusive
example: 2021-12-31T23:00:00.000Z
in: query
name: toDate
required: true
schema:
type: string
aggregationId:
description: Filter for a specific aggregation id
example: "0815"
in: query
name: aggregationId
required: false
schema:
type: integer
aggregationRaster:
description: Aggregation calculation interval
example: DAY
in: query
name: aggregationRaster
required: false
schema:
enum:
- S1
- S2
- S3
- S4
- S5
- S6
- S10
- S12
- S15
- S20
- S30
- M1
- M2
- M3
- M4
- M5
- M6
- M10
- M12
- M15
- M20
- M30
- H1
- H2
- H3
- H4
- H6
- H8
- H12
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- DECADE
- CENTURY
type: string
aggregation-id:
description: The id of the aggregation
example: 4711
in: path
name: aggregation-id
required: true
schema:
type: integer
widget-type-name:
description: The name of the widget type
example: weather
in: path
name: widget-type-name
required: true
schema:
type: string
dashboard-id:
description: The id of the dashboard
example: 4711
in: path
name: dashboard-id
required: true
schema:
type: integer
alarmRuleIds:
description: List of alarm rule ids for filtering
explode: false
in: query
name: alarmRuleIds
required: false
schema:
items:
type: integer
type: array
style: form
alarm-rule-id:
description: The id of the alarm rule
example: 4711
in: path
name: alarm-rule-id
required: true
schema:
type: integer
calculationRuleIds:
description: List of calculation rule ids for filtering
explode: false
in: query
name: calculationRuleIds
required: false
schema:
items:
type: integer
type: array
style: form
calculation-rule-id:
description: The id of the calculation rule
example: 4711
in: path
name: calculation-rule-id
required: true
schema:
type: integer
tags:
description: "A list of defined tags. Result must include all of these tags,\
\ not just some."
explode: false
in: query
name: tags
required: false
schema:
items:
type: string
type: array
style: form
node-ident:
description: The UUID identifier of the node
example: 4711
in: path
name: node-ident
required: true
schema:
example: fef0a0d3-acad-4611-ac03-1fd842d72505
type: string
agent-class:
description: The class of an agent
example: iosys
in: path
name: agent-class
required: true
schema:
enum:
- iosys
type: string
agent-id:
description: The id of the agent
example: 4711
in: path
name: agent-id
required: true
schema:
type: integer
agent-device-id:
description: The id of the device
example: 4711
in: path
name: agent-device-id
required: true
schema:
type: integer
agent-device-mapping-id:
description: The id of the device mapping
example: 4711
in: path
name: agent-device-mapping-id
required: true
schema:
type: integer
message-id:
description: The id of the message
example: AB0815
in: path
name: message-id
required: true
schema:
type: string
user-id:
description: The id of the user
example: 123
in: path
name: user-id
required: true
schema:
type: string
project-id:
description: The id of the project
example: 99
in: path
name: project-id
required: true
schema:
type: string
role-name:
description: The name of the role
example: readonly
in: path
name: role-name
required: true
schema:
type: string
tag-name:
description: The name of the tag
example: Support
in: path
name: tag-name
required: true
schema:
type: string
schemas:
App:
description: An app
example:
metadata: "{}"
name: weather
active: true
registered: true
version: v3.2.1
properties:
name:
description: Name of the app
example: weather
type: string
active:
description: Is the app active or inactive
nullable: true
type: boolean
registered:
description: Is the app already registered or not
nullable: true
type: boolean
metadata:
description: Delivers the apps metadata to handle it in the app store
nullable: true
type: object
version:
description: the apps version
example: v3.2.1
nullable: true
type: string
required:
- name
type: object
Patch:
description: A patch for an app
example:
applied: true
appName: weather
name: 2.0.0
active: true
properties:
appName:
description: Name of the app
example: weather
type: string
name:
description: Name of the patch
example: 2.0.0
type: string
active:
description: Is the app active or inactive
nullable: true
type: boolean
applied:
description: Is the app already applied or not
nullable: true
type: boolean
required:
- appName
- name
type: object
AssetType:
description: A type of assets
example:
vendor: vendor
allowedInactivity: 0 hours 5 mins
custom: true
name: weather_location
translation: ""
icon: weather
urldoc: urldoc
model: model
attributes:
- viewer: false
virtual: true
isDigital: true
max: 6.027456183070403
assetTypeName: weather_location
precision: 1
scale: 5.962133916683182
type: temperature
categoryName: location
zero: 5.637376656633329
ar: false
sequence: 1
unit: °C
min: 0.8008281904610115
subtype: input
enable: false
name: temperature
translation: ""
formula: "{seconds} * 60"
map:
- "{}"
- "{}"
aggregationMode: avg
aggregationRasters:
- DAY
- DAY
sourcePath:
- sourcePath
- sourcePath
- viewer: false
virtual: true
isDigital: true
max: 6.027456183070403
assetTypeName: weather_location
precision: 1
scale: 5.962133916683182
type: temperature
categoryName: location
zero: 5.637376656633329
ar: false
sequence: 1
unit: °C
min: 0.8008281904610115
subtype: input
enable: false
name: temperature
translation: ""
formula: "{seconds} * 60"
map:
- "{}"
- "{}"
aggregationMode: avg
aggregationRasters:
- DAY
- DAY
sourcePath:
- sourcePath
- sourcePath
payloadFunction: PLS
isTracker: false
properties:
name:
description: The unique name for this asset type
example: weather_location
type: string
custom:
default: true
description: Is this a customer created type or not
type: boolean
vendor:
description: The vendor providing assets of this type
nullable: true
type: string
model:
description: The specific model of assets of this type
nullable: true
type: string
translation:
allOf:
- $ref: "#/components/schemas/Translation"
nullable: true
urldoc:
description: The url describing assets of this type
nullable: true
type: string
icon:
description: "Icon name corresponding to assets of this type: blind, building,\
\ button, closable, elevator, environment, fallback, filling, gateway,\
\ light, mailbox, parking, people, power, rack, storey, trash, ventilation,\
\ vibration, water, weather"
example: weather
nullable: true
type: string
payloadFunction:
description: Asset types payload function
example: PLS
nullable: true
type: string
allowedInactivity:
example: 0 hours 5 mins
format: duration
nullable: true
type: string
isTracker:
default: false
description: Function as a tracker
nullable: true
type: boolean
attributes:
description: List of named attributes
items:
$ref: "#/components/schemas/AssetTypeAttribute"
nullable: true
type: array
required:
- name
type: object
AssetTypeAttribute:
description: Named attribute to store data of assets
example:
viewer: false
virtual: true
isDigital: true
max: 6.027456183070403
assetTypeName: weather_location
precision: 1
scale: 5.962133916683182
type: temperature
categoryName: location
zero: 5.637376656633329
ar: false
sequence: 1
unit: °C
min: 0.8008281904610115
subtype: input
enable: false
name: temperature
translation: ""
formula: "{seconds} * 60"
map:
- "{}"
- "{}"
aggregationMode: avg
aggregationRasters:
- DAY
- DAY
sourcePath:
- sourcePath
- sourcePath
properties:
assetTypeName:
description: The unique name for the asset type
example: weather_location
nullable: true
type: string
name:
description: Unique key of asset data
example: temperature
type: string
subtype:
$ref: "#/components/schemas/DataSubtype"
type:
description: "Name of the type for this attribute: air_quality, battery-voltage,\
\ brightness, co2, current, device-info, device-status, energy, flow,\
\ frequency, humidity, inputs-and-switches, level, motion, operating-status,\
\ people-count, power, presence, pressure, temperature, vehicle-detector,\
\ voltage, weather, voc"
example: temperature
nullable: true
type: string
enable:
default: false
description: Is data active or not
type: boolean
translation:
allOf:
- $ref: "#/components/schemas/Translation"
nullable: true
unit:
description: Physical unit of numeric data
example: °C
nullable: true
type: string
precision:
description: Number of decimal places
example: 1
format: int64
maximum: 20
minimum: -20
nullable: true
type: integer
min:
description: Lower limit
format: double
nullable: true
type: number
example: null
max:
description: Upper limit
format: double
nullable: true
type: number
example: null
aggregationMode:
deprecated: true
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Aggregation calculation mode.
enum:
- avg
- sum
- cusum
- avg-on-change
nullable: true
type: string
aggregationRasters:
deprecated: true
items:
description: |
Deprecated: Use the 'GET /data-trend-aggregated' endpoint to retrieve aggregated data for periodic rasters without defining aggregations.
Aggregation calculation intervals.
enum:
- S1
- S2
- S3
- S4
- S5
- S6
- S10
- S12
- S15
- S20
- S30
- M1
- M2
- M3
- M4
- M5
- M6
- M10
- M12
- M15
- M20
- M30
- H1
- H2
- H3
- H4
- H6
- H8
- H12
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- DECADE
- CENTURY
example: DAY
type: string
type: array
viewer:
default: false
description: Should the attribute be displayed in viewer
nullable: true
type: boolean
ar:
default: false
description: Should the attribute be displayed in AR
nullable: true
type: boolean
sequence:
description: Sequence in AR display
format: int64
nullable: true
type: integer
virtual:
description: Is the attribute virtual or not
nullable: true
type: boolean
formula:
description: calculation rule to calculate the value for this attribute
example: "{seconds} * 60"
nullable: true
type: string
scale:
description: value scale
nullable: true
type: number
zero:
description: value scale
nullable: true
type: number
map:
description: list of mapping between value and custom text
items:
type: object
nullable: true
type: array
sourcePath:
description: source path for attribute value
items:
type: string
nullable: true
type: array
isDigital:
description: is attribute digital
nullable: true
type: boolean
categoryName:
description: a reference to a asset type category
example: location
nullable: true
type: string
required:
- name
- subtype
type: object
AssetTypeCategory:
description: A category for asset types
example:
name: location
translation: ""
properties:
- unit: °C
name: longitude
translation: ""
- unit: °C
name: longitude
translation: ""
properties:
name:
description: The unique name for this asset type category
example: location
type: string
translation:
allOf:
- $ref: "#/components/schemas/Translation"
nullable: true
properties:
description: List of asset type category properties
items:
$ref: "#/components/schemas/AssetTypeCategoryProperty"
nullable: true
type: array
required:
- name
type: object
Asset:
description: An asset
example:
globalAssetIdentifier: zurich_swiss
functionalAssetIdPath:
- 0
- 0
resourceId: 123e4567-e89b-12d3-a456-426655440000
deviceIds:
- XYZ0123
- 13:23:12:34:32
parentLocationalIdentifier: "4712"
attachments:
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
allowedInactivity: 0 hours 5 mins
latitude: 47.3667
description: "Weather station Zurich, Swiss"
parentFunctionalIdentifier: "4712"
childrenInfo:
- null
- null
assetType: assetType
parentLocationalAssetId: 4712
tags:
- weather
- location
locationalAssetIdPath:
- 6
- 6
trackerId: 4711
name: Station Zurich
parentFunctionalAssetId: 4712
id: 4711
isTracker: false
projectId: "99"
longitude: 8.55
properties:
resourceId:
description: "A custom identifier for the resource, which can be utilized\
\ to identify it for various operations such as updates, deletions, and\
\ other related tasks. If this identifier is not provided, the application\
\ will generate a new value for it automatically"
example: 123e4567-e89b-12d3-a456-426655440000
format: uuid
nullable: true
type: string
id:
description: The internal Id of asset
example: 4711
nullable: true
readOnly: true
type: integer
deviceIds:
description: A list of unique device ids
example:
- XYZ0123
- 13:23:12:34:32
items:
type: string
nullable: true
type: array
projectId:
description: ID of the project to which the asset belongs
example: "99"
type: string
globalAssetIdentifier:
description: Unique identifier for the asset
example: zurich_swiss
type: string
name:
description: Alternate text for the asset to display in frontend
example: Station Zurich
nullable: true
type: string
assetType:
description: Reference to asset type by name
type: string
latitude:
description: Latitude coordinate (GPS) of the asset
example: 47.3667
format: double
nullable: true
type: number
longitude:
description: Longitude coordinate (GPS) of the asset
example: 8.55
format: double
nullable: true
type: number
isTracker:
default: false
deprecated: true
description: Does the asset function as a tracker and capture its position
by itself
nullable: true
type: boolean
trackerId:
description: Tracker Asset Id
example: 4711
nullable: true
type: integer
description:
description: Textual description for this asset
example: "Weather station Zurich, Swiss"
nullable: true
type: string
parentFunctionalAssetId:
description: The id of an asset which groups this asset as a functional
child
example: 4712
nullable: true
type: integer
functionalAssetIdPath:
description: The hierarchical path of functional ids of the asset
items:
type: integer
nullable: true
readOnly: true
type: array
parentLocationalAssetId:
description: The id of an asset which groups this asset as a locational
child
example: 4712
nullable: true
type: integer
locationalAssetIdPath:
description: The hierarchical path of locational ids of the asset
items:
type: integer
nullable: true
readOnly: true
type: array
parentFunctionalIdentifier:
description: The identifier specified by the identifiedBy parameter classifies
this asset as a functional child.
example: "4712"
nullable: true
type: string
parentLocationalIdentifier:
description: The identifier specified by the identifiedBy parameter classifies
this asset as a locational child
example: "4712"
nullable: true
type: string
tags:
description: List of associated tags
example:
- weather
- location
items:
type: string
nullable: true
type: array
allowedInactivity:
example: 0 hours 5 mins
format: duration
nullable: true
type: string
childrenInfo:
description: List of children for this asset.
items:
$ref: "#/components/schemas/Asset"
nullable: true
readOnly: true
type: array
attachments:
description: A list of files attached to the asset
items:
$ref: "#/components/schemas/Attachment"
nullable: true
type: array
required:
- assetType
- globalAssetIdentifier
- projectId
type: object
ErrorMessage422:
description: An error message showing the issue occur during the operation.
example: "error: dependent resource not found"
nullable: true
type: string
Identifier:
description: Unique identifier (textual or numeric) of resources
example: "1234"
type: string
AssetDryRun:
allOf:
- $ref: "#/components/schemas/DryRunGeneral"
- description: Specific information for asset dry run
nullable: true
properties:
identifiedBy:
$ref: "#/components/schemas/AssetIdentifyBy"
before:
allOf:
- $ref: "#/components/schemas/Asset"
nullable: true
after:
allOf:
- $ref: "#/components/schemas/Asset"
nullable: true
title: AssetDryRun
type: object
example:
identifier: "1234"
before: ""
errorMessage: "error: dependent resource not found"
after: ""
identifiedBy: resourceId
statusCode: 200
AssetListen:
allOf:
- description: Information about asset listener
nullable: true
properties:
statusCode:
$ref: "#/components/schemas/StatusCode"
type: object
- $ref: "#/components/schemas/Asset"
example:
globalAssetIdentifier: zurich_swiss
functionalAssetIdPath:
- 0
- 0
resourceId: 123e4567-e89b-12d3-a456-426655440000
deviceIds:
- XYZ0123
- 13:23:12:34:32
parentLocationalIdentifier: "4712"
attachments:
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
allowedInactivity: 0 hours 5 mins
latitude: 47.3667
description: "Weather station Zurich, Swiss"
parentFunctionalIdentifier: "4712"
childrenInfo:
- globalAssetIdentifier: zurich_swiss
functionalAssetIdPath:
- 0
- 0
resourceId: 123e4567-e89b-12d3-a456-426655440000
deviceIds:
- XYZ0123
- 13:23:12:34:32
parentLocationalIdentifier: "4712"
attachments:
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
allowedInactivity: 0 hours 5 mins
latitude: 47.3667
description: "Weather station Zurich, Swiss"
parentFunctionalIdentifier: "4712"
childrenInfo:
- null
- null
assetType: assetType
parentLocationalAssetId: 4712
tags:
- weather
- location
locationalAssetIdPath:
- 6
- 6
trackerId: 4711
name: Station Zurich
parentFunctionalAssetId: 4712
id: 4711
isTracker: false
projectId: "99"
longitude: 8.55
- globalAssetIdentifier: zurich_swiss
functionalAssetIdPath:
- 0
- 0
resourceId: 123e4567-e89b-12d3-a456-426655440000
deviceIds:
- XYZ0123
- 13:23:12:34:32
parentLocationalIdentifier: "4712"
attachments:
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
allowedInactivity: 0 hours 5 mins
latitude: 47.3667
description: "Weather station Zurich, Swiss"
parentFunctionalIdentifier: "4712"
childrenInfo:
- null
- null
assetType: assetType
parentLocationalAssetId: 4712
tags:
- weather
- location
locationalAssetIdPath:
- 6
- 6
trackerId: 4711
name: Station Zurich
parentFunctionalAssetId: 4712
id: 4711
isTracker: false
projectId: "99"
longitude: 8.55
assetType: assetType
parentLocationalAssetId: 4712
tags:
- weather
- location
locationalAssetIdPath:
- 6
- 6
trackerId: 4711
name: Station Zurich
parentFunctionalAssetId: 4712
id: 4711
isTracker: false
projectId: "99"
statusCode: 200
longitude: 8.55
AttributeDisplay:
description: How attributes are displayed for specific assets
example:
viewer: false
ar: false
sequence: 1
unit: °C
min: 0.8008281904610115
subtype: input
max: 6.027456183070403
assetId: 4711
precision: 1
attribute: temperature
map:
- "{}"
- "{}"
properties:
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute of the asset type
example: temperature
type: string
unit:
description: Physical unit of numeric data
example: °C
nullable: true
type: string
precision:
description: Number of decimal places
example: 1
format: int64
maximum: 20
minimum: -20
nullable: true
type: integer
min:
description: Lower limit
format: double
nullable: true
type: number
example: null
max:
description: Upper limit
format: double
nullable: true
type: number
example: null
viewer:
default: false
description: Should the attribute be displayed in viewer
nullable: true
type: boolean
ar:
default: false
description: Should the attribute be displayed in AR
nullable: true
type: boolean
sequence:
description: Sequence in AR display
format: int64
nullable: true
type: integer
map:
description: list of mapping between value and custom text
items:
type: object
nullable: true
type: array
required:
- assetId
- attribute
- subtype
type: object
Data:
description: Data for assets
example:
data:
temperature: 42
subtype: input
assetId: 4711
assetTypeName: weather_location
clientReference: ABC123
timestamp: 2000-01-23T04:56:07.000+00:00
properties:
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
timestamp:
description: Timestamp of the latest data change
format: date-time
nullable: true
type: string
data:
description: Asset payload
example:
temperature: 42
type: object
assetTypeName:
deprecated: true
description: The name of the corresponding asset type
example: weather_location
nullable: true
readOnly: true
type: string
clientReference:
description: freely assignable by the client to identify self-created data
example: ABC123
nullable: true
type: string
required:
- assetId
- data
- subtype
type: object
DataTrendAggregated:
description: Aggregated data with multiple data points for a periodical raster
example:
average: 4.3
min: 1.2
last: 3.0
subtype: input
max: 11.4
assetId: 4711
count: 100
sum: 430
attribute: temperature
first: 9.3
timestamp: 2000-01-23T04:56:07.000+00:00
properties:
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute which holds the data points
example: temperature
type: string
timestamp:
description: Timestamp of this aggregated data set. The timestamp when the
timeslot based on raster starts.
format: date-time
nullable: true
type: string
count:
description: Count of data points in this aggregated data set
example: 100
format: double
nullable: true
type: number
average:
description: Average of all data points for this aggregated data set
example: 4.3
format: double
nullable: true
type: number
sum:
description: Sum of all data points for this aggregated data set
example: 430
format: double
nullable: true
type: number
first:
description: First data point in this aggregated data set
example: 9.3
format: double
nullable: true
type: number
min:
description: Data point with the most minimal value in this aggregated data
set
example: 1.2
format: double
nullable: true
type: number
max:
description: Data point with the most maximal value in this aggregated data
set
example: 11.4
format: double
nullable: true
type: number
last:
description: Latest data point in this aggregated data set
example: 3.0
format: double
nullable: true
type: number
required:
- assetId
type: object
DataListen:
allOf:
- description: Information about asset data listener
nullable: true
properties:
statusCode:
$ref: "#/components/schemas/StatusCode"
type: object
- $ref: "#/components/schemas/Data"
example:
data:
temperature: 42
subtype: input
assetId: 4711
assetTypeName: weather_location
clientReference: ABC123
statusCode: 200
timestamp: 2000-01-23T04:56:07.000+00:00
DataAggregated:
deprecated: true
description: Aggregated data combines multiple data points for a periodical
raster
example:
average: 4.3
last: 3.0
max: 11.4
aggregationId: 815
assetTypeName: weather_location
raster: DAY
count: 100
sum: 430
min: 1.2
subtype: input
lastTimestamp: 2000-01-23T04:56:07.000+00:00
assetId: 4711
attribute: temperature
first: 9.3
timestamp: 2000-01-23T04:56:07.000+00:00
properties:
aggregationId:
description: ID of the aggregation
example: 815
type: integer
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute which holds the data points
example: temperature
type: string
raster:
description: Calculation intervals.
enum:
- S1
- S2
- S3
- S4
- S5
- S6
- S10
- S12
- S15
- S20
- S30
- M1
- M2
- M3
- M4
- M5
- M6
- M10
- M12
- M15
- M20
- M30
- H1
- H2
- H3
- H4
- H6
- H8
- H12
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- DECADE
- CENTURY
example: DAY
type: string
timestamp:
description: Timestamp of this aggregated data set. The timestamp when the
timeslot based on raster starts.
format: date-time
nullable: true
type: string
count:
description: Count of data points in this aggregated data set
example: 100
format: double
nullable: true
type: number
average:
description: Average of all data points for this aggregated data set
example: 4.3
format: double
nullable: true
type: number
sum:
description: Sum of all data points for this aggregated data set
example: 430
format: double
nullable: true
type: number
first:
description: First data point in this aggregated data set
example: 9.3
format: double
nullable: true
type: number
min:
description: Data point with the most minimal value in this aggregated data
set
example: 1.2
format: double
nullable: true
type: number
max:
description: Data point with the most maximal value in this aggregated data
set
example: 11.4
format: double
nullable: true
type: number
last:
description: Latest data point in this aggregated data set
example: 3.0
format: double
nullable: true
type: number
lastTimestamp:
description: Timestamp of the latest data point
format: date-time
nullable: true
type: string
assetTypeName:
description: The name of the corresponding asset type
example: weather_location
nullable: true
readOnly: true
type: string
required:
- assetId
- id
- raster
- subtype
type: object
Aggregation:
description: Defines the aggregation of data points
example:
mode: avg
subtype: input
assetId: 4711
raster: DAY
id: 815
attribute: temperature
properties:
id:
description: ID of the aggregation
example: 815
nullable: true
readOnly: true
type: integer
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute which holds the data points
example: temperature
type: string
mode:
description: Calculation mode
enum:
- avg
- sum
- cusum
- avg-on-change
example: avg
type: string
raster:
description: calculation interval
enum:
- S1
- S2
- S3
- S4
- S5
- S6
- S10
- S12
- S15
- S20
- S30
- M1
- M2
- M3
- M4
- M5
- M6
- M10
- M12
- M15
- M20
- M30
- H1
- H2
- H3
- H4
- H6
- H8
- H12
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- DECADE
- CENTURY
example: DAY
nullable: true
type: string
required:
- assetId
- mode
- subtype
type: object
WidgetType:
description: A frontend widget
example:
withTimespan: false
custom: true
withAlarm: false
elements:
- sequence: 1
id: 4711
category: weather
config:
variant: todayAndForecast
- sequence: 1
id: 4711
category: weather
config:
variant: todayAndForecast
name: weather
translation: ""
icon: weather
id: 4711
properties:
id:
description: The internal Id of widget type
example: 4711
nullable: true
readOnly: true
type: integer
name:
description: The unique name for this widget type
example: weather
type: string
custom:
default: true
description: Is this a customer created type or not
type: boolean
translation:
allOf:
- $ref: "#/components/schemas/Translation"
nullable: true
icon:
description: Icon name corresponding to assets used in this widget
example: weather
nullable: true
type: string
withAlarm:
default: false
description: Show alarms in widget
nullable: true
type: boolean
withTimespan:
default: false
description: Show selection for timespan in widget
nullable: true
type: boolean
elements:
description: A list of elements for this widget (order matches the order
of elements for this type)
items:
$ref: "#/components/schemas/WidgetTypeElement"
type: array
required:
- elements
- name
- translation
type: object
Dashboard:
description: A frontend dashboard
example:
sequence: 1
public: false
name: Weather info
id: 4711
widgets:
- sequence: 1
data:
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
assetId: 4711
details: {}
id: 4711
widgetTypeName: Weather
- sequence: 1
data:
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
assetId: 4711
details: {}
id: 4711
widgetTypeName: Weather
projectId: "99"
userId: "42"
properties:
id:
description: The internal Id of dashboard
example: 4711
nullable: true
readOnly: true
type: integer
name:
description: The name for this dashboard
example: Weather info
type: string
projectId:
description: ID of the project to which the dashboard belongs
example: "99"
type: string
userId:
description: ID of the user who owns the dashboard
example: "42"
type: string
sequence:
default: 0
deprecated: true
description: The sequence of the dashboard
example: 1
nullable: true
type: integer
widgets:
description: List of widgets on this dashboard (order matches the order
of widgets on the dashboard)
items:
$ref: "#/components/schemas/Widget"
nullable: true
type: array
public:
default: false
description: Is the dashboard public and not bound to a dedicated user
nullable: true
type: boolean
required:
- name
- projectId
- userId
type: object
Widget:
description: A widget on a frontend dashboard
example:
sequence: 1
data:
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
- elementSequence: 1
data:
subtype: input
attribute: temperature
key: humidity
assetId: 4711
id: 4711
assetId: 4711
details: {}
id: 4711
widgetTypeName: Weather
properties:
id:
description: The internal Id of widget
example: 4711
nullable: true
readOnly: true
type: integer
widgetTypeName:
description: The name for the type of this widget
example: Weather
type: string
details:
description: Detailed configuration depending on the widget type
example: {}
nullable: true
type: object
assetId:
description: The master asset id of this widget
example: 4711
nullable: true
type: integer
sequence:
description: Placement order on dashboard; if not set the index in array
is taken
example: 1
nullable: true
type: integer
data:
description: List of data for the elements of widget
items:
$ref: "#/components/schemas/WidgetData"
nullable: true
type: array
required:
- widgetTypeName
- width
type: object
AlarmRule:
description: Rule for an alarm
example:
checkType: limits
requiresAcknowledge: false
subject: subject
urldoc: urldoc
priority: 2
message:
come:
en: AC fan defect
params: {}
tags:
- tags
- tags
equal: 38.7
high: 38.7
subtype: input
low: 38.7
assetId: 4711
enable: true
notifyOn: R
dontMask: false
id: 123
attribute: temperature
assetInfo: ""
properties:
id:
description: The id of the rule
example: 123
nullable: true
readOnly: true
type: integer
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute of the asset type
example: temperature
type: string
enable:
default: true
description: Rule enabled or not
type: boolean
priority:
$ref: "#/components/schemas/AlarmPriority"
requiresAcknowledge:
default: false
description: Requires the alarm an acknowledgment
type: boolean
equal:
description: Triggers alarm if attribute value equals this value
example: 38.7
format: double
nullable: true
type: number
low:
description: Triggers alarm if attribute value is less than value
example: 38.7
format: double
nullable: true
type: number
high:
description: Triggers alarm if attribute value is greater than value
example: 38.7
format: double
nullable: true
type: number
message:
description: Texts for alarm
example:
come:
en: AC fan defect
nullable: true
type: object
tags:
description: List of associated tags
items:
type: string
nullable: true
type: array
subject:
deprecated: true
description: The subject for the alarm
nullable: true
type: string
urldoc:
description: The url describing the alarm
nullable: true
type: string
params:
description: Parameter for aggregated alarms
example: {}
nullable: true
type: object
notifyOn:
description: Notification
example: R
nullable: true
type: string
dontMask:
default: false
description: Do not mask
nullable: true
type: boolean
checkType:
description: Check type
enum:
- limits
- validity
- custom
- ruleengine
- aggregate
- external
nullable: true
type: string
assetInfo:
allOf:
- $ref: "#/components/schemas/Asset"
nullable: true
required:
- assetId
- attribute
- priority
- subtype
type: object
CalculationRule:
description: Calculation rule to calculate asset attribute data
example:
filter:
type: deadband
params:
tolerance: 123
value_min: 1
value_max: 2
virtual: true
unit: °C
subtype: input
assetId: 4711
formula: "{seconds} * 60"
id: 123
attribute: temperature
properties:
id:
description: The id of the rule
example: 123
nullable: true
readOnly: true
type: integer
assetId:
description: ID of the corresponding asset
example: 4711
type: integer
subtype:
$ref: "#/components/schemas/DataSubtype"
attribute:
description: Name of the attribute of the asset type to be calculated
example: temperature
type: string
virtual:
description: Is the calculation attribute virtual or not
nullable: true
type: boolean
formula:
description: calculation rule to calculate the value for the attribute
example: "{seconds} * 60"
nullable: true
type: string
unit:
description: Physical unit of calculated data
example: °C
nullable: true
type: string
filter:
description: Filter definition for calculation rule
example:
type: deadband
params:
tolerance: 123
value_min: 1
value_max: 2
nullable: true
type: object
required:
- assetId
- attribute
- subtype
type: object
Alarm:
description: An alarm
example:
occurrences: 1
acknowledgeUserInfo: ""
requiresAcknowledge: false
acknowledgeText: acknowledgeText
priority: 1
message: {}
goneTimestamp: 2000-01-23T04:56:07.000+00:00
acknowledgeTimestamp: 2000-01-23T04:56:07.000+00:00
subtype: input
assetId: 4711
ruleInfo: ""
acknowledgeUserId: acknowledgeUserId
attribute: temperature
ruleId: 123
value: 38.7
assetInfo: ""
timestamp: 2000-01-23T04:56:07.000+00:00
properties:
ruleId:
description: The id of the corresponding rule
example: 123
type: integer
assetId:
description: ID of the corresponding asset
example: 4711
nullable: true
readOnly: true
type: integer
subtype:
description: Type of asset data
example: input
nullable: true
readOnly: true
type: string
attribute:
description: Name of the attribute of the asset type
example: temperature
nullable: true
readOnly: true
type: string
priority:
description: The priority of the alarm. The lower this value the higher
the priority.
example: 1
nullable: true
type: integer
requiresAcknowledge:
default: false
description: Requires the alarm an acknowledgment
nullable: true
type: boolean
value:
description: The value which triggers the alarm
example: 38.7
format: double
nullable: true
type: number
timestamp:
description: Timestamp of the latest data change
format: date-time
nullable: true
type: string
goneTimestamp:
description: Timestamp of the latest data change
format: date-time
nullable: true
readOnly: true
type: string
acknowledgeTimestamp:
description: Timestamp of the latest data change
format: date-time
nullable: true
readOnly: true
type: string
occurrences:
description: How often this alarm is triggered
example: 1
nullable: true
readOnly: true
type: integer
acknowledgeText:
description: Text of acknowledgement
nullable: true
readOnly: true
type: string
acknowledgeUserId:
description: User who acknowledged the alarm
format: text
nullable: true
readOnly: true
type: string
message:
description: Message.yaml texts for alarm
example: {}
type: object
acknowledgeUserInfo:
allOf:
- $ref: "#/components/schemas/User"
nullable: true
assetInfo:
allOf:
- $ref: "#/components/schemas/Asset"
nullable: true
ruleInfo:
allOf:
- $ref: "#/components/schemas/AlarmRule"
nullable: true
required:
- message
- ruleId
type: object
AlarmListen:
allOf:
- description: Information about alarm listener
nullable: true
properties:
statusCode:
$ref: "#/components/schemas/StatusCode"
type: object
- $ref: "#/components/schemas/Alarm"
example:
occurrences: 1
acknowledgeUserInfo: ""
requiresAcknowledge: false
acknowledgeText: acknowledgeText
priority: 1
message: {}
goneTimestamp: 2000-01-23T04:56:07.000+00:00
acknowledgeTimestamp: 2000-01-23T04:56:07.000+00:00
subtype: input
assetId: 4711
ruleInfo: ""
acknowledgeUserId: acknowledgeUserId
attribute: temperature
ruleId: 123
value: 38.7
assetInfo: ""
statusCode: 200
timestamp: 2000-01-23T04:56:07.000+00:00
Node:
description: An edge node
example:
password: password
ident: fef0a0d3-acad-4611-ac03-1fd842d72505
assetId: 4711
vendor: vendor
enable: false
description: Node east plant
model: model
id: "1234"
properties:
id:
description: Unique id for the edge node
example: "1234"
nullable: true
readOnly: true
type: string
ident:
description: UUID to identify the edge node
example: fef0a0d3-acad-4611-ac03-1fd842d72505
nullable: true
readOnly: true
type: string
password:
deprecated: true
description: Password with which the node identifies itself
nullable: true
type: string
assetId:
description: ID of the corresponding asset
example: 4711
nullable: true
type: integer
vendor:
description: Vendor name
nullable: true
type: string
model:
description: Model name
nullable: true
type: string
description:
description: Descriptive text for the edge node
example: Node east plant
nullable: true
type: string
enable:
default: false
description: Is the node enabled or not
type: boolean
type: object
Agent:
description: An agent installed on an edge node
example:
assetId: 4711
enable: false
description: IOSYS Agent east plant
id: 4711
nodeId: "1234"
class: ""
config: {}
properties:
id:
description: Unique id for the agent
example: 4711
nullable: true
readOnly: true
type: integer
nodeId:
description: Id of the node where the agent is installed
example: "1234"
nullable: true
type: string
assetId:
description: ID of the corresponding asset
example: 4711
nullable: true
type: integer
class:
allOf:
- $ref: "#/components/schemas/AgentClass"
nullable: true
description:
description: Descriptive text for the agent
example: IOSYS Agent east plant
nullable: true
type: string
enable:
default: false
description: Is the agent enabled or not
type: boolean
config:
description: Individual configuration depending on agent class
example: {}
nullable: true
type: object
type: object
AgentDevice:
$ref: "#/components/schemas/IosysAgentDevice"
AgentDeviceMapping:
$ref: "#/components/schemas/IosysAgentDeviceMapping"
Message:
description: A message
example:
attachments:
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
- name: example.gif
encoding: base64
contentType: image/png
content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
sender: sender@example.com
recipients:
- recipient@example.com
- recipient@example.com
subject: This is a example message
blindCopyRecipients:
- blind-copy-recipient@example.com
- blind-copy-recipient@example.com
copyRecipients:
- copy-recipient@example.com
- copy-recipient@example.com
content: