VILLASweb-backend-go/doc/api/swagger.yaml

2781 lines
72 KiB
YAML

basePath: /api/v2
definitions:
component_configuration.addConfigRequest:
properties:
config:
$ref: '#/definitions/component_configuration.validNewConfig'
type: object
type: object
component_configuration.updateConfigRequest:
properties:
config:
$ref: '#/definitions/component_configuration.validUpdatedConfig'
type: object
type: object
component_configuration.validNewConfig:
properties:
ICID:
type: integer
Name:
type: string
ScenarioID:
type: integer
SelectedFileID:
type: integer
StartParameters:
type: string
required:
- ICID
- Name
- ScenarioID
- StartParameters
type: object
component_configuration.validUpdatedConfig:
properties:
ICID:
type: integer
Name:
type: string
SelectedFileID:
type: integer
StartParameters:
type: string
type: object
dashboard.addDashboardRequest:
properties:
dashboard:
$ref: '#/definitions/dashboard.validNewDashboard'
type: object
type: object
dashboard.updateDashboardRequest:
properties:
dashboard:
$ref: '#/definitions/dashboard.validUpdatedDashboard'
type: object
type: object
dashboard.validNewDashboard:
properties:
Grid:
type: integer
Name:
type: string
ScenarioID:
type: integer
required:
- Grid
- Name
- ScenarioID
type: object
dashboard.validUpdatedDashboard:
properties:
grid:
type: integer
name:
type: string
type: object
database.ComponentConfiguration:
properties:
icID:
description: ID of IC associated with Component Configuration
type: integer
id:
type: integer
inputLength:
description: Number of input signals
type: integer
name:
description: Name of Component Configuration
type: string
outputLength:
description: Number of output signals
type: integer
scenarioID:
description: ID of Scenario to which Component Configuration belongs
type: integer
selectedFileID:
description: Currently selected FileID
type: integer
startParameters:
description: Start parameters of Component Configuration as JSON
type: string
type: object
database.Dashboard:
properties:
grid:
description: Grid of dashboard
type: integer
id:
type: integer
name:
description: Name of dashboard
type: string
scenarioID:
description: ID of scenario to which dashboard belongs
type: integer
type: object
database.File:
properties:
configID:
description: ID of Component Configuration to which file belongs
type: integer
date:
description: Last modification time of file
type: string
id:
type: integer
imageHeight:
description: Height of image (only needed in case of image)
type: integer
imageWidth:
description: Width of image (only needed in case of image)
type: integer
name:
description: Name of file
type: string
size:
description: Size of file (in byte)
type: integer
type:
description: Type of file (MIME type)
type: string
widgetID:
description: ID of widget to which file belongs
type: integer
type: object
database.InfrastructureComponent:
properties:
host:
description: Host if the IC
type: string
id:
type: integer
modelType:
description: Model type supported by the IC
type: string
properties:
description: Properties of IC as JSON string
type: string
rawProperties:
description: Raw properties of IC as JSON string
type: string
state:
description: State of the IC
type: string
stateUpdateAt:
description: Time of last state update
type: string
uptime:
description: Uptime of the IC
type: integer
uuid:
description: UUID of the IC
type: string
type: object
database.Scenario:
properties:
id:
type: integer
name:
description: Name of scenario
type: string
running:
description: Running state of scenario
type: boolean
startParameters:
description: Start parameters of scenario as JSON
type: string
type: object
database.Signal:
properties:
configID:
description: ID of Component Configuration
type: integer
direction:
description: Direction of the signal (in or out)
type: string
id:
type: integer
index:
description: Index of the Signal in the mapping
type: integer
name:
description: Name of Signal
type: string
unit:
description: Unit of Signal
type: string
type: object
database.User:
properties:
active:
description: Indicating status of user (false means user is inactive and should
not be able to login)
type: boolean
id:
type: integer
mail:
description: Mail of user
type: string
role:
description: Role of user
type: string
username:
description: Username of user
type: string
type: object
database.Widget:
properties:
customProperties:
description: Custom properties of widget as JSON string
type: string
dashboardID:
description: ID of dashboard to which widget belongs
type: integer
height:
description: Height of widget
type: integer
id:
type: integer
isLocked:
description: Locked state of widget
type: boolean
minHeight:
description: Minimal height of widget
type: integer
minWidth:
description: Minimal width of widget
type: integer
name:
description: Name of widget
type: string
signalIDs:
description: IDs of signals that widget uses
type: string
type:
description: Type of widget
type: string
width:
description: Width of widget
type: integer
x:
description: X position of widget
type: integer
"y":
description: Y position of widget
type: integer
z:
description: Z position of widget
type: integer
type: object
docs.ResponseAuthenticate:
properties:
message:
type: string
success:
type: boolean
token:
type: string
user:
$ref: '#/definitions/database.User'
type: object
type: object
docs.ResponseConfig:
properties:
config:
$ref: '#/definitions/database.ComponentConfiguration'
type: object
type: object
docs.ResponseConfigs:
properties:
configs:
items:
$ref: '#/definitions/database.ComponentConfiguration'
type: array
type: object
docs.ResponseDashboard:
properties:
dashboard:
$ref: '#/definitions/database.Dashboard'
type: object
type: object
docs.ResponseDashboards:
properties:
dashboards:
items:
$ref: '#/definitions/database.Dashboard'
type: array
type: object
docs.ResponseError:
properties:
message:
type: string
success:
type: boolean
type: object
docs.ResponseFile:
properties:
file:
$ref: '#/definitions/database.File'
type: object
type: object
docs.ResponseFiles:
properties:
files:
items:
$ref: '#/definitions/database.File'
type: array
type: object
docs.ResponseIC:
properties:
ic:
$ref: '#/definitions/database.InfrastructureComponent'
type: object
type: object
docs.ResponseICs:
properties:
ics:
items:
$ref: '#/definitions/database.InfrastructureComponent'
type: array
type: object
docs.ResponseScenario:
properties:
scenario:
$ref: '#/definitions/database.Scenario'
type: object
type: object
docs.ResponseScenarios:
properties:
scenarios:
items:
$ref: '#/definitions/database.Scenario'
type: array
type: object
docs.ResponseSignal:
properties:
signal:
$ref: '#/definitions/database.Signal'
type: object
type: object
docs.ResponseSignals:
properties:
signals:
items:
$ref: '#/definitions/database.Signal'
type: array
type: object
docs.ResponseUser:
properties:
user:
$ref: '#/definitions/database.User'
type: object
type: object
docs.ResponseUsers:
properties:
users:
items:
$ref: '#/definitions/database.User'
type: array
type: object
docs.ResponseWidget:
properties:
widget:
$ref: '#/definitions/database.Widget'
type: object
type: object
docs.ResponseWidgets:
properties:
widgets:
items:
$ref: '#/definitions/database.Widget'
type: array
type: object
infrastructure_component.addICRequest:
properties:
ic:
$ref: '#/definitions/infrastructure_component.validNewIC'
type: object
type: object
infrastructure_component.updateICRequest:
properties:
ic:
$ref: '#/definitions/infrastructure_component.validUpdatedIC'
type: object
type: object
infrastructure_component.validNewIC:
properties:
Host:
type: string
Modeltype:
type: string
Properties:
type: string
State:
type: string
UUID:
type: string
required:
- Host
- Modeltype
- Properties
- UUID
type: object
infrastructure_component.validUpdatedIC:
properties:
Host:
type: string
Modeltype:
type: string
Properties:
type: string
State:
type: string
UUID:
type: string
type: object
scenario.addScenarioRequest:
properties:
scenario:
$ref: '#/definitions/scenario.validNewScenario'
type: object
type: object
scenario.updateScenarioRequest:
properties:
scenario:
$ref: '#/definitions/scenario.validUpdatedScenario'
type: object
type: object
scenario.validNewScenario:
properties:
Name:
type: string
Running:
type: boolean
StartParameters:
type: string
required:
- Name
- StartParameters
type: object
scenario.validUpdatedScenario:
properties:
Name:
type: string
Running:
type: boolean
StartParameters:
type: string
type: object
signal.addSignalRequest:
properties:
signal:
$ref: '#/definitions/signal.validNewSignal'
type: object
type: object
signal.updateSignalRequest:
properties:
signal:
$ref: '#/definitions/signal.validUpdatedSignal'
type: object
type: object
signal.validNewSignal:
properties:
ConfigID:
type: integer
Direction:
type: string
Index:
type: integer
Name:
type: string
Unit:
type: string
required:
- ConfigID
- Direction
- Index
- Name
type: object
signal.validUpdatedSignal:
properties:
Index:
type: integer
Name:
type: string
Unit:
type: string
type: object
user.addUserRequest:
properties:
user:
$ref: '#/definitions/user.validNewUser'
type: object
type: object
user.loginRequest:
properties:
Password:
type: string
Username:
type: string
required:
- Password
- Username
type: object
user.updateUserRequest:
properties:
user:
$ref: '#/definitions/user.validUpdatedRequest'
type: object
type: object
user.validNewUser:
properties:
Mail:
type: string
Password:
type: string
Role:
type: string
Username:
type: string
required:
- Mail
- Password
- Role
- Username
type: object
user.validUpdatedRequest:
properties:
Active:
type: string
Mail:
type: string
OldPassword:
type: string
Password:
type: string
Role:
type: string
Username:
type: string
type: object
widget.addWidgetRequest:
properties:
widget:
$ref: '#/definitions/widget.validNewWidget'
type: object
type: object
widget.updateWidgetRequest:
properties:
widget:
$ref: '#/definitions/widget.validUpdatedWidget'
type: object
type: object
widget.validNewWidget:
properties:
CustomProperties:
type: string
DashboardID:
type: integer
Height:
type: integer
IsLocked:
type: boolean
MinHeight:
type: integer
MinWidth:
type: integer
Name:
type: string
SignalIDs:
items:
type: integer
type: array
Type:
type: string
Width:
type: integer
X:
type: integer
"Y":
type: integer
Z:
type: integer
required:
- DashboardID
- Height
- Name
- Type
- Width
type: object
widget.validUpdatedWidget:
properties:
CustomProperties:
type: string
Height:
type: integer
IsLocked:
type: boolean
MinHeight:
type: integer
MinWidth:
type: integer
Name:
type: string
SignalIDs:
items:
type: integer
type: array
Type:
type: string
Width:
type: integer
X:
type: integer
"Y":
type: integer
Z:
type: integer
type: object
host: '{{.Host}}'
info:
contact:
email: sonja.happ@eonerc.rwth-aachen.de
name: Sonja Happ
description: |-
This is the VILLASweb Backend API v2.0.
Parts of this API are still in development. Please check the [VILLASweb-backend-go repository](https://git.rwth-aachen.de/acs/public/villas/web-backend-go) for more information.
This documentation is auto-generated based on the API documentation in the code. The tool [swag](https://github.com/swaggo/swag) is used to auto-generate API docs for the [gin-gonic](https://github.com/gin-gonic/gin) framework.
license:
name: GNU GPL 3.0
url: http://www.gnu.de/documents/gpl-3.0.en.html
title: VILLASweb Backend API
version: "2.0"
paths:
/authenticate:
post:
consumes:
- application/json
operationId: authenticate
parameters:
- description: loginRequest of user
in: body
name: inputUser
required: true
schema:
$ref: '#/definitions/user.loginRequest'
type: object
produces:
- application/json
responses:
"200":
description: JSON web token, success status, message and authenticated user
object
schema:
$ref: '#/definitions/docs.ResponseAuthenticate'
type: object
"401":
description: Unauthorized
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error.
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Authentication for user
tags:
- authentication
/configs:
get:
operationId: getConfigs
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: query
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Component configurations which belong to scenario
schema:
$ref: '#/definitions/docs.ResponseConfigs'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all component configurations of scenario
tags:
- component-configurations
post:
consumes:
- application/json
operationId: addConfig
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: component configuration to be added incl. IDs of scenario and
IC
in: body
name: inputConfig
required: true
schema:
$ref: '#/definitions/component_configuration.addConfigRequest'
type: object
produces:
- application/json
responses:
"200":
description: Component configuration that was added
schema:
$ref: '#/definitions/docs.ResponseConfig'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a component configuration to a scenario
tags:
- component-configurations
/configs/{configID}:
delete:
operationId: deleteConfig
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Config ID
in: path
name: configID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: component configuration that was deleted
schema:
$ref: '#/definitions/docs.ResponseConfig'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a component configuration
tags:
- component-configurations
get:
operationId: getConfig
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Config ID
in: path
name: configID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: component configuration that was requested
schema:
$ref: '#/definitions/docs.ResponseConfig'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get a component configuration
tags:
- component-configurations
put:
consumes:
- application/json
operationId: updateConfig
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: component configuration to be updated
in: body
name: inputConfig
required: true
schema:
$ref: '#/definitions/component_configuration.updateConfigRequest'
type: object
- description: Config ID
in: path
name: configID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Component configuration that was added
schema:
$ref: '#/definitions/docs.ResponseConfig'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a component configuration
tags:
- component-configurations
/dashboards:
get:
operationId: getDashboards
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: query
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Dashboards which belong to scenario
schema:
$ref: '#/definitions/docs.ResponseDashboards'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all dashboards of scenario
tags:
- dashboards
post:
consumes:
- application/json
operationId: addDashboard
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Dashboard to be added incl. ID of Scenario
in: body
name: inputDab
required: true
schema:
$ref: '#/definitions/dashboard.addDashboardRequest'
type: object
produces:
- application/json
responses:
"200":
description: Dashboard that was added
schema:
$ref: '#/definitions/docs.ResponseDashboard'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a dashboard to a scenario
tags:
- dashboards
/dashboards/{dashboardID}:
delete:
operationId: deleteDashboard
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Dashboard ID
in: path
name: dashboardID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Dashboard that was deleted
schema:
$ref: '#/definitions/docs.ResponseDashboard'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a dashboard
tags:
- dashboards
get:
operationId: getDashboard
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Dashboard ID
in: path
name: dashboardID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Dashboard that was requested
schema:
$ref: '#/definitions/docs.ResponseDashboard'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get a dashboard
tags:
- dashboards
put:
consumes:
- application/json
operationId: updateDashboard
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Dashboard to be updated
in: body
name: inputDab
required: true
schema:
$ref: '#/definitions/dashboard.updateDashboardRequest'
type: object
- description: Dashboard ID
in: path
name: dashboardID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Dashboard that was updated
schema:
$ref: '#/definitions/docs.ResponseDashboard'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a dashboard
tags:
- dashboards
/files:
get:
operationId: getFiles
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Set to config for files of component configuration, set to widget
for files of widget
in: query
name: objectType
required: true
type: string
- description: ID of either config or widget of which files are requested
in: query
name: objectID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Files which belong to config or widget
schema:
$ref: '#/definitions/docs.ResponseFiles'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all files of a specific component configuration or widget
tags:
- files
post:
consumes:
- text/plain
- image/png
- image/jpeg
- image/gif
- model/x-cim
- model/x-cim.zip
operationId: addFile
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: File to be uploaded
in: formData
name: inputFile
required: true
type: file
- description: Set to config for files of component config, set to widget for
files of widget
in: query
name: objectType
required: true
type: string
- description: ID of either config or widget of which files are requested
in: query
name: objectID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: File that was added
schema:
$ref: '#/definitions/docs.ResponseFile'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a file to a specific component config or widget
tags:
- files
/files/{fileID}:
delete:
operationId: deleteFile
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: ID of the file to update
in: path
name: fileID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: File that was deleted
schema:
$ref: '#/definitions/docs.ResponseFile'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a file
tags:
- files
get:
operationId: getFile
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: ID of the file to download
in: path
name: fileID
required: true
type: integer
produces:
- text/plain
- image/png
- image/jpeg
- image/gif
- model/x-cim
- model/x-cim.zip
responses:
"200":
description: File that was requested
schema:
$ref: '#/definitions/docs.ResponseFile'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Download a file
tags:
- files
put:
consumes:
- text/plain
- image/png
- image/jpeg
- image/gif
- model/x-cim
- model/x-cim.zip
operationId: updateFile
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: File to be uploaded
in: formData
name: inputFile
required: true
type: file
- description: ID of the file to update
in: path
name: fileID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: File that was updated
schema:
$ref: '#/definitions/docs.ResponseFile'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a file
tags:
- files
/healthz:
get:
operationId: getHealth
produces:
- application/json
responses:
"200":
description: Backend is healthy, database and AMQP broker connections are
alive
"500":
description: Backend is NOT healthy
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get health status of backend
tags:
- healthz
/ic:
get:
operationId: getICs
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: ICs requested
schema:
$ref: '#/definitions/docs.ResponseICs'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all infrastructure components
tags:
- infrastructure-components
post:
consumes:
- application/json
operationId: addIC
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Infrastructure Component to be added
in: body
name: inputIC
required: true
schema:
$ref: '#/definitions/infrastructure_component.addICRequest'
type: object
produces:
- application/json
responses:
"200":
description: Infrastructure Component that was added
schema:
$ref: '#/definitions/docs.ResponseIC'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add an infrastructure component
tags:
- infrastructure-components
/ic/{ICID}:
delete:
operationId: deleteIC
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Infrastructure Component ID
in: path
name: ICID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Infrastructure Component that was deleted
schema:
$ref: '#/definitions/docs.ResponseIC'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete an infrastructure component
tags:
- infrastructure-components
get:
operationId: getIC
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Infrastructure Component ID
in: path
name: ICID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Infrastructure Component that was requested
schema:
$ref: '#/definitions/docs.ResponseIC'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get infrastructure component
tags:
- infrastructure-components
put:
consumes:
- application/json
operationId: updateIC
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: InfrastructureComponent to be updated
in: body
name: inputIC
required: true
schema:
$ref: '#/definitions/infrastructure_component.updateICRequest'
type: object
- description: InfrastructureComponent ID
in: path
name: ICID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Infrastructure Component that was updated
schema:
$ref: '#/definitions/docs.ResponseIC'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update an infrastructure component
tags:
- infrastructure-components
/ic/{ICID}/action:
post:
operationId: sendActionToIC
parameters:
- description: Action for IC
in: query
name: inputAction
required: true
type: string
- description: InfrastructureComponent ID
in: path
name: ICID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Action sent successfully
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Send an action to IC (only available if backend server is started with
-amqp parameter)
tags:
- AMQP
/ic/{ICID}/configs:
get:
operationId: getConfigsOfIC
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Infrastructure Component ID
in: path
name: ICID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Configs requested by user
schema:
$ref: '#/definitions/docs.ResponseConfigs'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all configurations of the infrastructure component
tags:
- infrastructure-components
/metrics:
get:
operationId: getMetrics
produces:
- application/json
responses:
"200":
description: Returns Prometheus metrics
summary: Prometheus metrics endpoint
tags:
- metrics
/scenarios:
get:
operationId: getScenarios
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: Scenarios to which user has access
schema:
$ref: '#/definitions/docs.ResponseScenarios'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all scenarios of requesting user
tags:
- scenarios
post:
consumes:
- application/json
operationId: addScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario to be added
in: body
name: inputScenario
required: true
schema:
$ref: '#/definitions/scenario.addScenarioRequest'
type: object
produces:
- application/json
responses:
"200":
description: scenario that was added
schema:
$ref: '#/definitions/docs.ResponseScenario'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a scenario
tags:
- scenarios
/scenarios/{scenarioID}:
delete:
operationId: deleteScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Deleted scenario
schema:
$ref: '#/definitions/docs.ResponseScenario'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a scenario
tags:
- scenarios
get:
operationId: getScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Scenario requested by user
schema:
$ref: '#/definitions/docs.ResponseScenario'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get scenario
tags:
- scenarios
put:
consumes:
- application/json
operationId: updateScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario to be updated
in: body
name: inputScenario
required: true
schema:
$ref: '#/definitions/scenario.updateScenarioRequest'
type: object
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Updated scenario.
schema:
$ref: '#/definitions/docs.ResponseScenario'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a scenario
tags:
- scenarios
/scenarios/{scenarioID}/user:
delete:
operationId: deleteUserFromScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
- description: User name
in: query
name: username
required: true
type: string
produces:
- application/json
responses:
"200":
description: User that was deleted from scenario
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a user from a scenario
tags:
- scenarios
put:
operationId: addUserToScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
- description: User name
in: query
name: username
required: true
type: string
produces:
- application/json
responses:
"200":
description: User that was added to scenario
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a user to a a scenario
tags:
- scenarios
/scenarios/{scenarioID}/users/:
get:
operationId: getUsersOfScenario
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Scenario ID
in: path
name: scenarioID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Array of users that have access to the scenario
schema:
$ref: '#/definitions/docs.ResponseUsers'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get users of a scenario
tags:
- scenarios
/signals:
get:
operationId: getSignals
parameters:
- description: Direction of signal (in or out)
in: query
name: direction
required: true
type: string
- description: Config ID of signals to be obtained
in: query
name: configID
required: true
type: string
- description: Authorization token
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: Signals which belong to component configuration
schema:
$ref: '#/definitions/docs.ResponseSignals'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all signals of one direction
tags:
- signals
post:
consumes:
- application/json
operationId: AddSignal
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: A signal to be added to the component configuration incl. direction
and config ID to which signal shall be added
in: body
name: inputSignal
required: true
schema:
$ref: '#/definitions/signal.addSignalRequest'
type: object
produces:
- application/json
responses:
"200":
description: Signal that was added
schema:
$ref: '#/definitions/docs.ResponseSignal'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a signal to a signal mapping of a component configuration
tags:
- signals
/signals/{signalID}:
delete:
operationId: deleteSignal
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: ID of signal to be deleted
in: path
name: signalID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Signal that was deleted
schema:
$ref: '#/definitions/docs.ResponseSignal'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a signal
tags:
- signals
get:
operationId: getSignal
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: ID of signal to be obtained
in: path
name: signalID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Signal that was requested
schema:
$ref: '#/definitions/docs.ResponseSignal'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get a signal
tags:
- signals
put:
operationId: updateSignal
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: A signal to be updated
in: body
name: inputSignal
required: true
schema:
$ref: '#/definitions/signal.updateSignalRequest'
type: object
- description: ID of signal to be updated
in: path
name: signalID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Signal that was updated
schema:
$ref: '#/definitions/docs.ResponseSignal'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a signal
tags:
- signals
/users:
get:
operationId: GetUsers
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: Array of users
schema:
$ref: '#/definitions/docs.ResponseUsers'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all users
tags:
- users
post:
consumes:
- application/json
operationId: AddUser
parameters:
- description: User to be added
in: body
name: inputUser
required: true
schema:
$ref: '#/definitions/user.addUserRequest'
type: object
- description: Authorization token
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: Contains added user object
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a user
tags:
- users
/users/{userID}:
delete:
operationId: DeleteUser
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: User ID
in: path
name: userID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: deleted user
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a user
tags:
- users
get:
operationId: GetUser
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: User ID
in: path
name: userID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: requested user
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"403":
description: Access forbidden.
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get user
tags:
- users
put:
consumes:
- application/json
operationId: UpdateUser
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: User to be updated (anything except for ID can be changed, role
can only be change by admin)
in: body
name: inputUser
required: true
schema:
$ref: '#/definitions/user.updateUserRequest'
type: object
- description: User ID
in: path
name: userID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Contains updated user
schema:
$ref: '#/definitions/docs.ResponseUser'
type: object
"400":
description: Bad request.
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"403":
description: Access forbidden.
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a user
tags:
- users
/widgets:
get:
operationId: getWidgets
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Dashboard ID
in: query
name: dashboardID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Widgets to which belong to dashboard
schema:
$ref: '#/definitions/docs.ResponseWidgets'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get all widgets of dashboard
tags:
- widgets
post:
consumes:
- application/json
operationId: addWidget
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Widget to be added incl. ID of dashboard
in: body
name: inputWidget
required: true
schema:
$ref: '#/definitions/widget.addWidgetRequest'
type: object
produces:
- application/json
responses:
"200":
description: Widget that was added
schema:
$ref: '#/definitions/docs.ResponseWidget'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Add a widget to a dashboard
tags:
- widgets
/widgets/{widgetID}:
delete:
operationId: deleteWidget
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Widget ID
in: path
name: widgetID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Widget that was deleted
schema:
$ref: '#/definitions/docs.ResponseWidget'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Delete a widget
tags:
- widgets
get:
operationId: getWidget
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Widget ID
in: path
name: widgetID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Widget that was requested
schema:
$ref: '#/definitions/docs.ResponseWidget'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Get a widget
tags:
- widgets
put:
consumes:
- application/json
operationId: updateWidget
parameters:
- description: Authorization token
in: header
name: Authorization
required: true
type: string
- description: Widget to be updated
in: body
name: inputWidget
required: true
schema:
$ref: '#/definitions/widget.updateWidgetRequest'
type: object
- description: Widget ID
in: path
name: widgetID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: Widget that was updated
schema:
$ref: '#/definitions/docs.ResponseWidget'
type: object
"400":
description: Bad request
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"404":
description: Not found
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"422":
description: Unprocessable entity
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
"500":
description: Internal server error
schema:
$ref: '#/definitions/docs.ResponseError'
type: object
summary: Update a widget
tags:
- widgets
swagger: "2.0"