// Package api GENERATED BY SWAG; DO NOT EDIT
// This file was generated by swaggo/swag
package api

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {
            "name": "Institute for Automation of Complex Power Systems, RWTH Aachen University"
        },
        "license": {
            "name": "GNU GPL 3.0",
            "url": "http://www.gnu.de/documents/gpl-3.0.en.html"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/authenticate": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "authentication"
                ],
                "summary": "Check if user is authenticated and provide details on how the user can authenticate",
                "operationId": "authenticated",
                "responses": {
                    "200": {
                        "description": "JSON web token, success status, message and authenticated user object",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseAuthenticate"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/authenticate/{mechanism}": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "authentication"
                ],
                "summary": "Authentication for user",
                "operationId": "authenticate",
                "parameters": [
                    {
                        "description": "loginRequest of user",
                        "name": "inputUser",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.loginRequest"
                        }
                    },
                    {
                        "enum": [
                            "internal",
                            "external"
                        ],
                        "type": "string",
                        "description": "Login mechanism",
                        "name": "mechanism",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "JSON web token, success status, message and authenticated user object",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseAuthenticate"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/config": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Get config VILLASweb to be used by frontend",
                "operationId": "config",
                "responses": {
                    "200": {
                        "description": "The configuration",
                        "schema": {
                            "$ref": "#/definitions/config.Config"
                        }
                    }
                }
            }
        },
        "/configs": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "component-configurations"
                ],
                "summary": "Get all component configurations of scenario",
                "operationId": "getConfigs",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Component configurations which belong to scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfigs"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "component-configurations"
                ],
                "summary": "Add a component configuration to a scenario",
                "operationId": "addConfig",
                "parameters": [
                    {
                        "description": "component configuration to be added incl. IDs of scenario and IC",
                        "name": "inputConfig",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/component_configuration.addConfigRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Component configuration that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfig"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/configs/{configID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "component-configurations"
                ],
                "summary": "Get a component configuration",
                "operationId": "getConfig",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Config ID",
                        "name": "configID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "component configuration that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfig"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "component-configurations"
                ],
                "summary": "Update a component configuration",
                "operationId": "updateConfig",
                "parameters": [
                    {
                        "description": "component configuration to be updated",
                        "name": "inputConfig",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/component_configuration.updateConfigRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "Config ID",
                        "name": "configID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Component configuration that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfig"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "component-configurations"
                ],
                "summary": "Delete a component configuration",
                "operationId": "deleteConfig",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Config ID",
                        "name": "configID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "component configuration that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfig"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/dashboards": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "dashboards"
                ],
                "summary": "Get all dashboards of scenario",
                "operationId": "getDashboards",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboards which belong to scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseDashboards"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "dashboards"
                ],
                "summary": "Add a dashboard to a scenario",
                "operationId": "addDashboard",
                "parameters": [
                    {
                        "description": "Dashboard to be added incl. ID of Scenario",
                        "name": "inputDab",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dashboard.addDashboardRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboard that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseDashboard"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/dashboards/{dashboardID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "dashboards"
                ],
                "summary": "Get a dashboard",
                "operationId": "getDashboard",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Dashboard ID",
                        "name": "dashboardID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboard that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseDashboard"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "dashboards"
                ],
                "summary": "Update a dashboard",
                "operationId": "updateDashboard",
                "parameters": [
                    {
                        "description": "Dashboard to be updated",
                        "name": "inputDab",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/dashboard.updateDashboardRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "Dashboard ID",
                        "name": "dashboardID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboard that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseDashboard"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "dashboards"
                ],
                "summary": "Delete a dashboard",
                "operationId": "deleteDashboard",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Dashboard ID",
                        "name": "dashboardID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboard that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseDashboard"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/files": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "files"
                ],
                "summary": "Get all files of a specific scenario",
                "operationId": "getFiles",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Files which belong to scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseFiles"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "text/plain",
                    "image/png",
                    "image/jpeg",
                    "image/gif",
                    "model/x-cim",
                    "model/x-cim.zip",
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "files"
                ],
                "summary": "Add a file to a specific scenario",
                "operationId": "addFile",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File to be uploaded",
                        "name": "inputFile",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "ID of scenario to which file shall be added",
                        "name": "scenarioID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseFile"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/files/{fileID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "text/plain",
                    "text/csv",
                    "application/gzip",
                    "application/x-gtar",
                    "application/x-tar",
                    "application/x-ustar",
                    "application/zip",
                    "application/msexcel",
                    "application/xml",
                    "application/x-bag",
                    "image/png",
                    "image/jpeg",
                    "image/gif",
                    "model/x-cim",
                    "model/x-cim.zip"
                ],
                "tags": [
                    "files"
                ],
                "summary": "Download a file",
                "operationId": "getFile",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID of the file to download",
                        "name": "fileID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseFile"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "text/plain",
                    "image/png",
                    "image/jpeg",
                    "image/gif",
                    "model/x-cim",
                    "model/x-cim.zip",
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "files"
                ],
                "summary": "Update a file",
                "operationId": "updateFile",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File to be uploaded",
                        "name": "inputFile",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "ID of the file to update",
                        "name": "fileID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseFile"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "files"
                ],
                "summary": "Delete a file",
                "operationId": "deleteFile",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID of the file to update",
                        "name": "fileID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseFile"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/healthz": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "healthz"
                ],
                "summary": "Get health status of backend",
                "operationId": "getHealth",
                "responses": {
                    "204": {
                        "description": "Backend is healthy, database and AMQP broker connections are alive",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "500": {
                        "description": "Backend is NOT healthy",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/ic": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Get all infrastructure components",
                "operationId": "getICs",
                "responses": {
                    "200": {
                        "description": "ICs requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseICs"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Add an infrastructure component",
                "operationId": "addIC",
                "parameters": [
                    {
                        "description": "Infrastructure Component to be added",
                        "name": "inputIC",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/infrastructure_component.AddICRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Infrastructure Component that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseIC"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/ic/{ICID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Get infrastructure component",
                "operationId": "getIC",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Infrastructure Component ID",
                        "name": "ICID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Infrastructure Component that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseIC"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Update an infrastructure component",
                "operationId": "updateIC",
                "parameters": [
                    {
                        "description": "InfrastructureComponent to be updated",
                        "name": "inputIC",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/infrastructure_component.UpdateICRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "InfrastructureComponent ID",
                        "name": "ICID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Infrastructure Component that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseIC"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Delete an infrastructure component",
                "operationId": "deleteIC",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Infrastructure Component ID",
                        "name": "ICID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Infrastructure Component that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseIC"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/ic/{ICID}/action": {
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Send an action to IC (only available if backend server is started with -amqp parameter)",
                "operationId": "sendActionToIC",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Action for IC",
                        "name": "inputAction",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "InfrastructureComponent ID",
                        "name": "ICID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Action sent successfully",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/ic/{ICID}/configs": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "infrastructure-components"
                ],
                "summary": "Get all configurations of the infrastructure component",
                "operationId": "getConfigsOfIC",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Infrastructure Component ID",
                        "name": "ICID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Configs requested by user",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseConfigs"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/metrics": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "metrics"
                ],
                "summary": "Prometheus metrics endpoint",
                "operationId": "getMetrics",
                "responses": {
                    "200": {
                        "description": "Returns Prometheus metrics",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/openapi": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "openapi"
                ],
                "summary": "Get OpenAPI 2.0 spec of API",
                "operationId": "getOpenAPI",
                "responses": {
                    "200": {
                        "description": "A OpenAPI 2.0 specification of the API",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/results": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Get all results of scenario",
                "operationId": "getResults",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Results which belong to scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResults"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Add a result to a scenario",
                "operationId": "addResult",
                "parameters": [
                    {
                        "description": "Result to be added incl. ID of Scenario",
                        "name": "inputResult",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/result.addResultRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/results/{resultID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Get a Result",
                "operationId": "getResult",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Result ID",
                        "name": "resultID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Update a result",
                "operationId": "updateResult",
                "parameters": [
                    {
                        "description": "Result to be updated",
                        "name": "inputResult",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/result.updateResultRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "Result ID",
                        "name": "resultID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Delete a Result incl. all result files",
                "operationId": "deleteResult",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Result ID",
                        "name": "resultID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/results/{resultID}/file": {
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "text/plain",
                    "text/csv",
                    "application/gzip",
                    "application/x-gtar",
                    "application/x-tar",
                    "application/x-ustar",
                    "application/zip",
                    "application/msexcel",
                    "application/xml",
                    "application/x-bag",
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Upload a result file to the DB and associate it with scenario and result",
                "operationId": "addResultFile",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File to be uploaded",
                        "name": "inputFile",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Result ID",
                        "name": "resultID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/results/{resultID}/file/{fileID}": {
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "results"
                ],
                "summary": "Delete a result file",
                "operationId": "deleteResultFile",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Result ID",
                        "name": "resultID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "ID of the file to delete",
                        "name": "fileID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result for which file was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseResult"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/scenarios": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Get all scenarios of requesting user",
                "operationId": "getScenarios",
                "responses": {
                    "200": {
                        "description": "Scenarios to which user has access",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseScenarios"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Add a scenario",
                "operationId": "addScenario",
                "parameters": [
                    {
                        "description": "Scenario to be added",
                        "name": "inputScenario",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/scenario.addScenarioRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "scenario that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseScenario"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/scenarios/{scenarioID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Get scenario",
                "operationId": "getScenario",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Scenario requested by user",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseScenario"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Update a scenario",
                "operationId": "updateScenario",
                "parameters": [
                    {
                        "description": "Scenario to be updated",
                        "name": "inputScenario",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/scenario.updateScenarioRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated scenario.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseScenario"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Delete a scenario",
                "operationId": "deleteScenario",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Deleted scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseScenario"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/scenarios/{scenarioID}/user": {
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Add a user to a a scenario",
                "operationId": "addUserToScenario",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "User name",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User that was added to scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Delete a user from a scenario",
                "operationId": "deleteUserFromScenario",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "User name",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User that was deleted from scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/scenarios/{scenarioID}/users/": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "scenarios"
                ],
                "summary": "Get users of a scenario",
                "operationId": "getUsersOfScenario",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Scenario ID",
                        "name": "scenarioID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of users that have access to the scenario",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUsers"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/signals": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "signals"
                ],
                "summary": "Get all signals of one direction",
                "operationId": "getSignals",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Direction of signal (in or out)",
                        "name": "direction",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Config ID of signals to be obtained",
                        "name": "configID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Signals which belong to component configuration",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseSignals"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "signals"
                ],
                "summary": "Add a signal to a signal mapping of a component configuration",
                "operationId": "AddSignal",
                "parameters": [
                    {
                        "description": "A signal to be added to the component configuration incl. direction and config ID to which signal shall be added",
                        "name": "inputSignal",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/signal.addSignalRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Signal that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseSignal"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/signals/{signalID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "signals"
                ],
                "summary": "Get a signal",
                "operationId": "getSignal",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID of signal to be obtained",
                        "name": "signalID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Signal that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseSignal"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "signals"
                ],
                "summary": "Update a signal",
                "operationId": "updateSignal",
                "parameters": [
                    {
                        "description": "A signal to be updated",
                        "name": "inputSignal",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/signal.updateSignalRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "ID of signal to be updated",
                        "name": "signalID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Signal that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseSignal"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "signals"
                ],
                "summary": "Delete a signal",
                "operationId": "deleteSignal",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "ID of signal to be deleted",
                        "name": "signalID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Signal that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseSignal"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/users": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "users"
                ],
                "summary": "Get all users",
                "operationId": "GetUsers",
                "responses": {
                    "200": {
                        "description": "Array of users",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUsers"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "users"
                ],
                "summary": "Add a user",
                "operationId": "AddUser",
                "parameters": [
                    {
                        "description": "User to be added",
                        "name": "inputUser",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.addUserRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Contains added user object",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/users/{userID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "users"
                ],
                "summary": "Get user",
                "operationId": "GetUser",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "User ID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "requested user",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "403": {
                        "description": "Access forbidden.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "users"
                ],
                "summary": "Update a user",
                "operationId": "UpdateUser",
                "parameters": [
                    {
                        "description": "User to be updated (anything except for ID can be changed, role can only be change by admin)",
                        "name": "inputUser",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.updateUserRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "User ID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Contains updated user",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "400": {
                        "description": "Bad request.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "403": {
                        "description": "Access forbidden.",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "users"
                ],
                "summary": "Delete a user",
                "operationId": "DeleteUser",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "User ID",
                        "name": "userID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "deleted user",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseUser"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/widgets": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "widgets"
                ],
                "summary": "Get all widgets of dashboard",
                "operationId": "getWidgets",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Dashboard ID",
                        "name": "dashboardID",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Widgets to which belong to dashboard",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseWidgets"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "widgets"
                ],
                "summary": "Add a widget to a dashboard",
                "operationId": "addWidget",
                "parameters": [
                    {
                        "description": "Widget to be added incl. ID of dashboard",
                        "name": "inputWidget",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/widget.addWidgetRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Widget that was added",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseWidget"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        },
        "/widgets/{widgetID}": {
            "get": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "widgets"
                ],
                "summary": "Get a widget",
                "operationId": "getWidget",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Widget ID",
                        "name": "widgetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Widget that was requested",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseWidget"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "widgets"
                ],
                "summary": "Update a widget",
                "operationId": "updateWidget",
                "parameters": [
                    {
                        "description": "Widget to be updated",
                        "name": "inputWidget",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/widget.updateWidgetRequest"
                        }
                    },
                    {
                        "type": "integer",
                        "description": "Widget ID",
                        "name": "widgetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Widget that was updated",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseWidget"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Bearer": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "widgets"
                ],
                "summary": "Delete a widget",
                "operationId": "deleteWidget",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Widget ID",
                        "name": "widgetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Widget that was deleted",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseWidget"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "404": {
                        "description": "Not found",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "422": {
                        "description": "Unprocessable entity",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/api.ResponseError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.ResponseAuthenticate": {
            "type": "object"
        },
        "api.ResponseConfig": {
            "type": "object"
        },
        "api.ResponseConfigs": {
            "type": "object"
        },
        "api.ResponseDashboard": {
            "type": "object"
        },
        "api.ResponseDashboards": {
            "type": "object"
        },
        "api.ResponseError": {
            "type": "object"
        },
        "api.ResponseFile": {
            "type": "object"
        },
        "api.ResponseFiles": {
            "type": "object"
        },
        "api.ResponseIC": {
            "type": "object"
        },
        "api.ResponseICs": {
            "type": "object"
        },
        "api.ResponseResult": {
            "type": "object"
        },
        "api.ResponseResults": {
            "type": "object"
        },
        "api.ResponseScenario": {
            "type": "object"
        },
        "api.ResponseScenarios": {
            "type": "object"
        },
        "api.ResponseSignal": {
            "type": "object"
        },
        "api.ResponseSignals": {
            "type": "object"
        },
        "api.ResponseUser": {
            "type": "object"
        },
        "api.ResponseUsers": {
            "type": "object"
        },
        "api.ResponseWidget": {
            "type": "object"
        },
        "api.ResponseWidgets": {
            "type": "object"
        },
        "component_configuration.addConfigRequest": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/component_configuration.validNewConfig"
                }
            }
        },
        "component_configuration.updateConfigRequest": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/component_configuration.validUpdatedConfig"
                }
            }
        },
        "component_configuration.validNewConfig": {
            "type": "object",
            "required": [
                "Name",
                "ScenarioID",
                "StartParameters"
            ],
            "properties": {
                "FileIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "ICID": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "ScenarioID": {
                    "type": "integer"
                },
                "StartParameters": {
                    "$ref": "#/definitions/postgres.Jsonb"
                }
            }
        },
        "component_configuration.validUpdatedConfig": {
            "type": "object",
            "properties": {
                "FileIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "ICID": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "StartParameters": {
                    "$ref": "#/definitions/postgres.Jsonb"
                }
            }
        },
        "config.Authentication": {
            "type": "object",
            "properties": {
                "external": {
                    "$ref": "#/definitions/config.AuthenticationExternal"
                },
                "logout_url": {
                    "type": "string"
                }
            }
        },
        "config.AuthenticationExternal": {
            "type": "object",
            "properties": {
                "authorize_url": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "provider_name": {
                    "type": "string"
                }
            }
        },
        "config.Config": {
            "type": "object",
            "properties": {
                "authentication": {
                    "$ref": "#/definitions/config.Authentication"
                },
                "contact": {
                    "$ref": "#/definitions/config.Contact"
                },
                "kubernetes": {
                    "$ref": "#/definitions/config.Kubernetes"
                },
                "mode": {
                    "type": "string"
                },
                "sub_title": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "webrtc": {
                    "$ref": "#/definitions/config.WebRTC"
                }
            }
        },
        "config.Contact": {
            "type": "object",
            "properties": {
                "mail": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "config.ICEServer": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "config.Kubernetes": {
            "type": "object",
            "properties": {
                "cluster_name": {
                    "type": "string"
                },
                "rancher_url": {
                    "type": "string"
                }
            }
        },
        "config.WebRTC": {
            "type": "object",
            "properties": {
                "ice_servers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/config.ICEServer"
                    }
                }
            }
        },
        "dashboard.addDashboardRequest": {
            "type": "object",
            "properties": {
                "dashboard": {
                    "$ref": "#/definitions/dashboard.validNewDashboard"
                }
            }
        },
        "dashboard.updateDashboardRequest": {
            "type": "object",
            "properties": {
                "dashboard": {
                    "$ref": "#/definitions/dashboard.validUpdatedDashboard"
                }
            }
        },
        "dashboard.validNewDashboard": {
            "type": "object",
            "required": [
                "Grid",
                "Name",
                "ScenarioID"
            ],
            "properties": {
                "Grid": {
                    "type": "integer"
                },
                "Height": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "ScenarioID": {
                    "type": "integer"
                }
            }
        },
        "dashboard.validUpdatedDashboard": {
            "type": "object",
            "properties": {
                "grid": {
                    "type": "integer"
                },
                "height": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "infrastructure_component.AddICRequest": {
            "type": "object",
            "properties": {
                "ic": {
                    "$ref": "#/definitions/infrastructure_component.validNewIC"
                }
            }
        },
        "infrastructure_component.UpdateICRequest": {
            "type": "object",
            "properties": {
                "ic": {
                    "$ref": "#/definitions/infrastructure_component.validUpdatedIC"
                }
            }
        },
        "infrastructure_component.validNewIC": {
            "type": "object",
            "required": [
                "Category",
                "ManagedExternally",
                "Name",
                "Type"
            ],
            "properties": {
                "APIURL": {
                    "type": "string"
                },
                "Category": {
                    "type": "string"
                },
                "CreateParameterSchema": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Description": {
                    "type": "string"
                },
                "Location": {
                    "type": "string"
                },
                "ManagedExternally": {
                    "type": "boolean"
                },
                "Manager": {
                    "type": "string"
                },
                "Name": {
                    "type": "string"
                },
                "StartParameterSchema": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "State": {
                    "type": "string"
                },
                "StatusUpdateRaw": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Type": {
                    "type": "string"
                },
                "UUID": {
                    "type": "string"
                },
                "Uptime": {
                    "type": "number"
                },
                "WebsocketURL": {
                    "type": "string"
                }
            }
        },
        "infrastructure_component.validUpdatedIC": {
            "type": "object",
            "properties": {
                "APIURL": {
                    "type": "string"
                },
                "Category": {
                    "type": "string"
                },
                "CreateParameterSchema": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Description": {
                    "type": "string"
                },
                "Location": {
                    "type": "string"
                },
                "Manager": {
                    "type": "string"
                },
                "Name": {
                    "type": "string"
                },
                "StartParameterSchema": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "State": {
                    "type": "string"
                },
                "StatusUpdateRaw": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Type": {
                    "type": "string"
                },
                "UUID": {
                    "type": "string"
                },
                "Uptime": {
                    "type": "number"
                },
                "WebsocketURL": {
                    "type": "string"
                }
            }
        },
        "postgres.Jsonb": {
            "type": "object",
            "properties": {
                "json.RawMessage": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "result.addResultRequest": {
            "type": "object",
            "properties": {
                "result": {
                    "$ref": "#/definitions/result.validNewResult"
                }
            }
        },
        "result.updateResultRequest": {
            "type": "object",
            "properties": {
                "result": {
                    "$ref": "#/definitions/result.validUpdatedResult"
                }
            }
        },
        "result.validNewResult": {
            "type": "object",
            "required": [
                "ConfigSnapshots",
                "ScenarioID"
            ],
            "properties": {
                "ConfigSnapshots": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Description": {
                    "type": "string"
                },
                "ResultFileIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "ScenarioID": {
                    "type": "integer"
                }
            }
        },
        "result.validUpdatedResult": {
            "type": "object",
            "properties": {
                "configSnapshots": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "description": {
                    "type": "string"
                },
                "resultFileIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "scenario.addScenarioRequest": {
            "type": "object",
            "properties": {
                "scenario": {
                    "$ref": "#/definitions/scenario.validNewScenario"
                }
            }
        },
        "scenario.updateScenarioRequest": {
            "type": "object",
            "properties": {
                "scenario": {
                    "$ref": "#/definitions/scenario.validUpdatedScenario"
                }
            }
        },
        "scenario.validNewScenario": {
            "type": "object",
            "required": [
                "Name",
                "StartParameters"
            ],
            "properties": {
                "Name": {
                    "type": "string"
                },
                "StartParameters": {
                    "$ref": "#/definitions/postgres.Jsonb"
                }
            }
        },
        "scenario.validUpdatedScenario": {
            "type": "object",
            "properties": {
                "IsLocked": {
                    "type": "boolean"
                },
                "Name": {
                    "type": "string"
                },
                "StartParameters": {
                    "$ref": "#/definitions/postgres.Jsonb"
                }
            }
        },
        "signal.addSignalRequest": {
            "type": "object",
            "properties": {
                "signal": {
                    "$ref": "#/definitions/signal.validNewSignal"
                }
            }
        },
        "signal.updateSignalRequest": {
            "type": "object",
            "properties": {
                "signal": {
                    "$ref": "#/definitions/signal.validUpdatedSignal"
                }
            }
        },
        "signal.validNewSignal": {
            "type": "object",
            "required": [
                "ConfigID",
                "Direction",
                "Index",
                "Name"
            ],
            "properties": {
                "ConfigID": {
                    "type": "integer"
                },
                "Direction": {
                    "type": "string",
                    "enum": [
                        "in",
                        "out"
                    ]
                },
                "Index": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "ScalingFactor": {
                    "type": "number"
                },
                "Unit": {
                    "type": "string"
                }
            }
        },
        "signal.validUpdatedSignal": {
            "type": "object",
            "properties": {
                "Index": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "ScalingFactor": {
                    "type": "number"
                },
                "Unit": {
                    "type": "string"
                }
            }
        },
        "user.addUserRequest": {
            "type": "object",
            "properties": {
                "user": {
                    "$ref": "#/definitions/user.validNewUser"
                }
            }
        },
        "user.loginRequest": {
            "type": "object",
            "required": [
                "Password",
                "Username"
            ],
            "properties": {
                "Password": {
                    "type": "string"
                },
                "Username": {
                    "type": "string"
                }
            }
        },
        "user.updateUserRequest": {
            "type": "object",
            "properties": {
                "user": {
                    "$ref": "#/definitions/user.validUpdatedRequest"
                }
            }
        },
        "user.validNewUser": {
            "type": "object",
            "required": [
                "Mail",
                "Password",
                "Role",
                "Username"
            ],
            "properties": {
                "Mail": {
                    "type": "string"
                },
                "Password": {
                    "type": "string",
                    "minLength": 6
                },
                "Role": {
                    "type": "string",
                    "enum": [
                        "Admin",
                        "User",
                        "Guest"
                    ]
                },
                "Username": {
                    "type": "string",
                    "minLength": 3
                }
            }
        },
        "user.validUpdatedRequest": {
            "type": "object",
            "properties": {
                "Active": {
                    "type": "string",
                    "enum": [
                        "yes",
                        "no"
                    ]
                },
                "Mail": {
                    "type": "string"
                },
                "OldPassword": {
                    "type": "string",
                    "minLength": 6
                },
                "Password": {
                    "type": "string",
                    "minLength": 6
                },
                "Role": {
                    "type": "string",
                    "enum": [
                        "Admin",
                        "User",
                        "Guest"
                    ]
                },
                "Username": {
                    "type": "string",
                    "minLength": 3
                }
            }
        },
        "widget.addWidgetRequest": {
            "type": "object",
            "properties": {
                "widget": {
                    "$ref": "#/definitions/widget.validNewWidget"
                }
            }
        },
        "widget.updateWidgetRequest": {
            "type": "object",
            "properties": {
                "widget": {
                    "$ref": "#/definitions/widget.validUpdatedWidget"
                }
            }
        },
        "widget.validNewWidget": {
            "type": "object",
            "required": [
                "DashboardID",
                "Height",
                "Type",
                "Width"
            ],
            "properties": {
                "CustomProperties": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "DashboardID": {
                    "type": "integer"
                },
                "Height": {
                    "type": "integer"
                },
                "IsLocked": {
                    "type": "boolean"
                },
                "MinHeight": {
                    "type": "integer"
                },
                "MinWidth": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "SignalIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "Type": {
                    "type": "string"
                },
                "Width": {
                    "type": "integer"
                },
                "X": {
                    "type": "integer"
                },
                "Y": {
                    "type": "integer"
                },
                "Z": {
                    "type": "integer"
                }
            }
        },
        "widget.validUpdatedWidget": {
            "type": "object",
            "properties": {
                "CustomProperties": {
                    "$ref": "#/definitions/postgres.Jsonb"
                },
                "Height": {
                    "type": "integer"
                },
                "IsLocked": {
                    "type": "boolean"
                },
                "MinHeight": {
                    "type": "integer"
                },
                "MinWidth": {
                    "type": "integer"
                },
                "Name": {
                    "type": "string"
                },
                "SignalIDs": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "Type": {
                    "type": "string"
                },
                "Width": {
                    "type": "integer"
                },
                "X": {
                    "type": "integer"
                },
                "Y": {
                    "type": "integer"
                },
                "Z": {
                    "type": "integer"
                }
            }
        }
    },
    "securityDefinitions": {
        "Bearer": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "2.0",
	Host:             "",
	BasePath:         "/api/v2",
	Schemes:          []string{},
	Title:            "VILLASweb Backend API",
	Description:      "This is the [VILLASweb Backend](https://git.rwth-aachen.de/acs/public/villas/web-backend-go) API v2.0.\nThis 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.\nAuthentication: Use the authenticate endpoint below to obtain a token for your user account, copy the token into to the value field of the dialog showing up for the green Authorize button below and confirm with Done.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
