{
    "schemes": ["https","http"],
    "swagger": "2.0",
    "info": {
        "description": "",
        "title": "icom Router Management API",
        "contact": {
            "name": "API Support",
            "url": "https://www.insys-icom.de",
            "email": "info@insys-icom.de"
        },
        "license": {
            "name": "closed"
        },
        "version": "1.0"
    },
    "host": "api.insys-tec.net",
    "basePath": "/api",
    "paths": {
        "/admin/access-tokens": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Find all AccessTokens configured",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Find all AccessTokens configured",
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.accessTokenResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Access-Token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Create a new Access Token",
                "parameters": [
                    {
                        "description": "Access Token to be added",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createAccessTokenResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.accessTokenResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/admin/access-tokens/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Find the AccessTokens for the given uuid",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Find a AccessToken",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the AccessToken",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.accessTokenResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Update the AccessTokens for the given uuid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Update a AccessToken",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the AccessToken",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Access Token to be added",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createAccessTokenResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.accessTokenResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the AccessTokens for the given uuid",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Deletes a AccessToken",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the AccessToken",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.accessTokenResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/admin/settings": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all SettingDefinitions for the namespace of the token.\nThe response will be a JSON object with a key called members, that contains all found SettingDefinitions.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "List all SettingDefinitions for the namespace",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.settingMapResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing SettingDefinition with given attributes for the namespace of the token.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Update SettingDefinitions",
                "parameters": [
                    {
                        "description": "Map of Keys and Values of SettingDefinitions to be updated",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.settingMapResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.settingMapResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/admin/settings/features": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing FeatureFlag with given attributes for the namespace of the token.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Update FeatureFlags",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.settingMapResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/admin/software-version": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get the running software version",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Retrieve the running software version",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.settingMapResource"
                        }
                    }
                }
            }
        },
        "/api/admin/software/firmware": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieves all releases along with their associated update packets",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin",
                    "software",
                    "firmware."
                ],
                "summary": "Retrieve all releases with their update packets",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/handler.releaseWithUpdatePacketsResource"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Adds metadata about a release to the storage",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Add a new release",
                "parameters": [
                    {
                        "description": "release info",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.releaseAdd"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/api/admin/software/firmware/smartupdate": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Stores smart update version",
                "parameters": [
                    {
                        "description": "Smart update version with optional timestamp",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.smartUpdateVersionWithTimestamp"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "412": {
                        "description": "Precondition Failed",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Revokes smart update version",
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/api/admin/software/firmware/{versionOrID}/release": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Publishes or unpublishes the release",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Release version or ID",
                        "name": "versionOrID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Publish flag and release notes URL",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.releasePublish"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/api/admin/software/firmware/{versionOrID}/update-packets": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Uploads an update packet file for a specific firmware version\nThe file name must match the name of the update packet in the release metadata, otherwise it will be rejected.",
                "consumes": [
                    "multipart/form-data"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Store an update packet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Version or ID of the release the update packet belongs to",
                        "name": "versionOrID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "Update packet file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/api/software/firmware": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieves all enabled releases along with their associated update packets",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Retrieve all enabled releases with their update packets",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/handler.releaseWithUpdatePackets"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/api/software/firmware/smartupdate": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "software firmware."
                ],
                "summary": "Returns the current smart update version",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.smartUpdateVersions"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/audit/logs": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Logs inside the audit service.\nThe response will be a JSON object with a key called members, that contains the found Logs.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "List all Logs",
                "parameters": [
                    {
                        "type": "boolean",
                        "description": "Get a reduced set of data",
                        "name": "datatable",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Get the first \u003climit\u003e rows; Only works in conjunction with the query param 'datatable'",
                        "name": "limit",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.logListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/audit/logs/archived": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all archived Logs inside the audit service.\nResponse will be array of ObjectInfo",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "List all archived Logs",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/audit.ObjectInfo"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/audit/logs/archived/{filename}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a csv of archived Log\nResponse will be csv file",
                "produces": [
                    "text/csv"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Retrieve archived audit log by filename",
                "parameters": [
                    {
                        "type": "string",
                        "description": "filename of archived log",
                        "name": "filename",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "file"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/autoupdate/resources": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Resources inside autoupdate service, like firmware images, ASCII configuration, licenses, containers.\nThe response will be a JSON object with a key called members, that contains all found Resources.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "List all Resources",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Resource with given attributes inside autoupdate service.\nFor resources of type \"ASCII_CONFIG\" or \"STORED_ASCII_CONFIG\" it is possible to add the attribute content.\nIf the attribute content is given, the resource file is created and an Update Packet will be built, that includes the resource that has been defined with the attribute \"content\"\nIf the attribute content is not given in the body or the file type is not \"ASCII_CONFIG\" or \"STORED_ASCII_CONFIG\", a Resource with status UPLOADING is created and the actual file has to be uploaded subsequently.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Create a new Resource",
                "parameters": [
                    {
                        "description": "Resource to be added to the autoupdate service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createResourceResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/autoupdate/resources/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Resource inside the autoupdate service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Retrieve an existing Resource",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Resource with given attributes inside the autoupdate service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Update a Resource",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Resource to be updated inside the autoupdate service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createResourceResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Resource from autoupdate service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Delete a Resource",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/autoupdate/resources/{uuid}/download": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Downloads the Resource from autoupdate service.",
                "produces": [
                    "text/plain",
                    " application/octet-stream"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Download a Resource",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/autoupdate/resources/{uuid}/upload": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Upload a Resource file to autoupdate service",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Upload a Resource (firmware, licence, configurations, ...)",
                "parameters": [
                    {
                        "type": "file",
                        "description": "Resource file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "uuid of resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceResource"
                        }
                    },
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.ResourceResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/autoupdate/update-packets": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Update Packets inside autoupdate service.\nThe response will be a JSON object with a key called members, that contains all found Update Packets.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "List all Update Packets",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Update Packet with given attributes inside autoupdate service.\nIf the attribute content is not given in the body, an Update Packet with status UPLOADING is created and the Update Packet file must be uploaded subsequently.\nIf the attribute fileName within the content is given, the resources file name within the Update Packet will be renamed to that one.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Create a new Update Packet",
                "parameters": [
                    {
                        "description": "Update Packet to be added to the autoupdate service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createUpdatePacketResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/autoupdate/update-packets/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Update Packet inside the autoupdate service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Retrieve an existing Update Packet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the UpdatePacket",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Update Packet with given attributes inside the autoupdate service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Update an Update Packet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Update Packet",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update Packet to be updated inside the autoupdate service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createUpdatePacketResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Update Packet from autoupdate service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Delete a Update Packet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Update Packet",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/autoupdate/update-packets/{uuid}/download": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Downloads the Resource from autoupdate service.",
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Download an update packet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Resource",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/autoupdate/update-packets/{uuid}/upload": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Upload an Update Packet file to autoupdate service\nThe Update Packet must already exist as an entry, before the file can be uploaded",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Upload an Update Packet",
                "parameters": [
                    {
                        "type": "file",
                        "description": "Update Packet file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "uuid of Update Packet",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketResource"
                        }
                    },
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.updatePacketResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/account": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get account, organization and licensing data based on the given JWT token",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Fetch account data",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.AccountListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/accounts": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Display all accounts which can be found\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: accounts with the same organisation and accounts which the user has memberships of",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Find Accounts",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.AccountListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Create a new account in this scope\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: no access",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Create Account",
                "parameters": [
                    {
                        "description": "Account to be added to the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.CreateAccountResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.AccountResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/accounts/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Account inside the identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: accounts with the same organisation and accounts which the user has memberships of",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Retrieve an existing Account",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Account",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.AccountResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an account with given attributes inside identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: accounts with the same organisation and accounts which the user has memberships of",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Updates an account",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the account",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Changeable account attributes",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateAccountResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.AccountResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes an account with given uuid, with an special query parameter the deletion will be more thorough.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: accounts with the same organisation and accounts which the user has memberships of",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Deletes an account",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the account",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/accounts/{uuid}/members": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Link User to account and set home account\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: accounts with the same organisation and its subordinate organisations and accounts which the user has memberships of\nCUSTOMER: accounts with the same organisation and accounts which the user has memberships of",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Link User to Account",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the account",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Linked user of an account to be added to the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.newAccountUserResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/identity.AccountMembership"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/accounts/{uuid}/traversal": {
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes an account with given uuid, with an special query parameter the deletion will also delete accounts with an active license.\nDeletes an account completely from the database, the storage bucket and the gateway\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER, CUSTOMER: no access",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Deletes an account completely from the database, the storage bucket and the gateway",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the account",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "boolean",
                        "description": "Force to delete the account, even though it has an active license",
                        "name": "force",
                        "in": "query"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/organisations": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Organisations inside the identity service.\nThe response will be a JSON object with a key called members, that contains the found Organisations.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: itself and every subordinate organisation\nCUSTOMER: only itself",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "List all Organisations",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.organisationListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Organisation with given attributes inside identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: itself and every subordinate organisation\nCUSTOMER: no access",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Create a new Organisation",
                "parameters": [
                    {
                        "description": "Organisation to be added to the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.CreateOrganisationResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.OrganisationResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/organisations/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Organisation inside the identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: itself and every subordinate organisation\nCUSTOMER: only itself",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Retrieve an existing Organisation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Organisation",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.OrganisationResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Organisation with given attributes inside the identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: itself and every subordinate organisation\nCUSTOMER: only itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Update an existing Organisation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the organisation",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Organisation to be updated inside the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateOrganisationResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.OrganisationResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes an existing Organisation with given attributes inside the identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: itself and every subordinate organisation\nCUSTOMER: only itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Delete an existing Organisation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the organisation",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Organisation to be updated inside the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateOrganisationResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.OrganisationResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/user-profile": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get the user profile of the current logged in user by access-token.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: user profile of the user associated\nSUPPLIER, RESELLER, BROKER: user profile of the user associated\nCUSTOMER: user profile of the user associated",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Retrieve the user profile of the current logged in user by access-token",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Users inside the identity service.\nThe response will be a JSON object with a key called members, that contains the found Users.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: users of itself",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "List all Users",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new User with given attributes inside identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: users of itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Create a new User",
                "parameters": [
                    {
                        "description": "User to be added to the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createUserResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing User inside the identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: user of itself",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Retrieve an existing User",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the User",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates a User with given attributes inside identity service.\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: user of itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Updates a User",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "User to be updated inside the identity service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateUserResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes an existing user with given UUID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Delete an existing user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "NoContent"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}/lock": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Locked user cannot login or use the API",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Lock the user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}/password": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Checks old password and changes the password for the user to the given value\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: user of itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Changes the Password",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "new password",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.changePasswordResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}/password-reset": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Resets the password for the user with the given value\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: user of itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Resets the Password",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "new password",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.resetPasswordResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}/unlock": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Unlocked user can login and use the API",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Unlock the user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/identity/users/{uuid}/username": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "changes only the username for the user with the given value\nOn consumption of this endpoint the Organisation and its Role as well as the User and its AccountMemberships associated to the token will determine the level of access\nPLATFORM_OPERATOR: unlimited access\nSUPPLIER, RESELLER, BROKER: users of itself and every subordinate organisation\nCUSTOMER: user of itself",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "identity"
                ],
                "summary": "Changes only the username",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the user",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "new username",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.changeUsernameResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.userResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/cli-templates": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all CLI Templates inside the inventory service.\nThe response will be a JSON object with a key called members, that contains the found CLI Templates.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "List all CLI Templates",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.cliTemplateListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Creates a new CLI-Template with the keys configuration",
                "parameters": [
                    {
                        "description": "Values to create the CLI-Template",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateCLITemplateResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.cliTemplateResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/cli-templates/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing CLI Template inside the inventory service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Retrieve an existing CLI Template",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the CLI Template",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.cliTemplateResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates the name or content of a CLI Template, on an update the keys configuration\nwill be validated.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Update a CLI Template",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the CLI Template",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Values to update the CLI-Template",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateCLITemplateResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.cliTemplateResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the CLI Template from inventory service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Delete a CLI Template",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the CLI Template",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/inventory/cli-templates/{uuid}/apply": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Applies the CLI-Template with the values to a device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "ID of the CLI-Template",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the device",
                        "name": "deviceUuid",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Serial Number of the device",
                        "name": "serialNumber",
                        "in": "query"
                    },
                    {
                        "description": "Values applied to the CLI-Template for the device",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.deviceValues"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/device-groups": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Device Groups inside the inventory service.\nThe response will be a JSON object with a key called members, that contains the found Device Groups.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "List all Device Groups",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeviceGroupListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Device Group with given attributes inside the inventory service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Create a new Device Group",
                "parameters": [
                    {
                        "description": "Device Group to be added to the inventory service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateDeviceGroupResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.DeviceGroupResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/device-groups/move-devices": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates the group of multiple devices with the given device UUIDs and group UUID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Update the group of multiple devices",
                "parameters": [
                    {
                        "description": "Device UUIDs and Group UUID",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateDevicesGroupRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/device-groups/move-group": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Move all devices from one device group to another",
                "parameters": [
                    {
                        "description": "Device UUIDs and Group UUID",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.moveDevicesRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/device-groups/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Device Group inside the inventory service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Retrieve an existing Device Group",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Device Group",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeviceGroupResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Device Group with given attributes inside the inventory service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Update a Device Group",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Device Group",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Device Group to be updated inside the inventory service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateDeviceGroupResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeviceGroupResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Device Group from inventory service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Delete a Device Group",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Device Group",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Managed Devices inside the inventory service.\nThe response will be a JSON object with a key called members, that contains the found Managed Devices.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "List all Managed Devices",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Managed Device with given attributes inside the inventory service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Create a new Managed Device",
                "parameters": [
                    {
                        "description": "Managed Device to be added to the inventory service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createManagedDeviceResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/bulk-import": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates new Managed Devices inside the inventory service from a CSV file.\nFirst line (header) of the CSV file:\nname;groupName;serialNumber;location;connectionSessionTimeout;connectionPingInterval;connectionPongTimeout\nExample for data (following lines):\nMRX1;group1;123456789;Regensburg;120,104;16\nMandatory header elements are name, groupName and serialNumber\nOptional header elements are\nlocation, connectionSessionTimeout, connectionPingInterval, connectionPongTimeout, locationLatitude and locationLongitude",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Import new Managed Devices from CSV file",
                "parameters": [
                    {
                        "type": "file",
                        "description": "CSV file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceListResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/delete": {
            "patch": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Managed Devices from inventory service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Delete Managed Devices",
                "parameters": [
                    {
                        "description": "UUIDs of the Managed Devices",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/set-smart-update": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates the smartUpdate (firmwareAutoUpdate) flag for a list of devices in one request.\nThe payload must contain an array of device UUIDs and the desired value for firmwareAutoUpdate.\nThis endpoint is designed for efficient bulk updates and avoids fetching full device objects for each device.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Bulk update firmwareAutoUpdate flag for multiple devices",
                "parameters": [
                    {
                        "description": "Array of device UUIDs and firmwareAutoUpdate value",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.setSmartUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Managed Device inside the inventory service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Retrieve an existing Managed Device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Managed Device with given attributes inside the inventory service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Update a Managed Device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Managed Device to be updated inside the inventory service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateManagedDeviceResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Managed Device from inventory service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Delete a Managed Device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}/cli": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Send a icom OS CLI command to a connected router and get the response output",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Run a CLI command on a connected router",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "CLI command to run",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceRunCLICommandRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceRunCLICommandResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}/connection-profile": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get the configuration for a device, so it can connect to remote management\nThree different output formats can be chosen by the Query parameter\n- no query parameter: the device config comes a usual JSON\n- \"cli\": the device config comes as text/plain; it is the format of the ASCII configuration (profile)\n- \"update-packet\": An Update Packet can be downloaded, which contains an ASCII configuration file",
                "produces": [
                    "application/json",
                    " application/octet-stream"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Get device configuration info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Format of the result (optional): 'cli' or 'update-packet'",
                        "name": "format",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.connectionProfileResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}/event-logs": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "It returns all the device logs which occurred for the device, unfiltered",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Get device event logs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceEventLogListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}/refresh": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Refresh metrics data for the given device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.metricsResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    },
                    "502": {
                        "description": "Bad Gateway",
                        "schema": {
                            "$ref": "#/definitions/handler.metricsResource"
                        }
                    },
                    "504": {
                        "description": "Gateway Timeout",
                        "schema": {
                            "$ref": "#/definitions/handler.metricsResource"
                        }
                    }
                }
            }
        },
        "/inventory/managed-devices/{uuid}/reset": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "It resets a managed device",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "inventory"
                ],
                "summary": "Resets managed device",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Managed Device",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.managedDeviceEventLogListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/pki/certificate-authorities": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Certificate Authorities inside pki service.\nThe response will be a JSON object with a key called members, that contains all found Certificate Authorities.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "List all Certificate Authorities",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.CertificateAuthorityListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Certificate Authority with given attributes inside pki service",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Create a new Certificate Authority",
                "parameters": [
                    {
                        "description": "Certificate Authority to be added to the pki service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createCertificateAuthorityResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.getCertificateAuthorityResourceWithCert"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/pki/certificate-authorities/import": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Imports the Certificate Authority to the PKI.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Import a Certificate Authority",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name for the certificate",
                        "name": "name",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "Certificate Authority with Private Key in a PKCS12 Format",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Password to the PKCS12 file",
                        "name": "password",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificate-authorities/import-external": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Imports the external Certificate Authority to the PKI.",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Import a external Certificate Authority",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name for the certificate",
                        "name": "name",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "Certificate Authority without Private Key in a PEM Format",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificate-authorities/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Certificate Authority inside the pki service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Retrieve an existing Certificate Authority",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate Authority",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.getCertificateAuthorityResourceWithCert"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Patches a Certificate Authority\nThe response will be a JSON object, that contains the patched Certificate Authoritiy.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Update Certificate Authoritiy",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate Authority",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.CertificateAuthorityResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Certificate Authority from pki service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Delete a Certificate Authority",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate Authority",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificate-authorities/{uuid}/download": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Downloads the Certificate Authority from pki service.",
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Download a Certificate Authority",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate Authority",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "If given the CRL of the Certificate Authority will be downloaded (value is optional)",
                        "name": "crl",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificates": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Certificates inside pki service.\nThe response will be a JSON object with a key called members, that contains all found Certificates.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "List all Certificates",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.certificateListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Certificate with given attributes inside pki service",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Create a new Certificate",
                "parameters": [
                    {
                        "description": "Certificate to be added to the pki service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createCertificateResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.getCertificateResourceWithCert"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/pki/certificates/import": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Imports the external Certificate of the given file into the system.\nIt will also import the chain of trust inside the file, if one is available",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "text/plain"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Import a external Certificate",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name for the certificate",
                        "name": "name",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Password for a PKCS12 container",
                        "name": "password",
                        "in": "formData"
                    },
                    {
                        "type": "file",
                        "description": "Certificate with Private Key in PKCS12 or PEM file format",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "CREATED"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificates/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Certificate inside the pki service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Retrieve an existing Certificate",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.getCertificateResourceWithCert"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Patches a Certificates\nThe response will be a JSON object, that contains the patched Certificate.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Update Certificates",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.CertificateResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Certificate from pki service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Delete a Certificate",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/pki/certificates/{uuid}/download": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Downloads the Certificate from pki service.\nThe Query parameter 'format' defines the format of the certificate\n- \"pem\" or no query parameter: the certificate comes in PEM format\n- \"pkcs12\": the certificate and its private key can be downloaded as PKCS12 container\nThe Query parameter 'password' is optional. When the format 'pkcs12' has been set, the container will be encrypted with that password",
                "produces": [
                    "text/plain",
                    " application/octet-stream"
                ],
                "tags": [
                    "pki"
                ],
                "summary": "Download a Certificate",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Certificate",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Format of the result (optional): 'pem' (default) or 'pkcs12'",
                        "name": "format",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Optionally encrypt the PKCS12 container with this password",
                        "name": "password",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/deployments": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retrieve a list of all Deployments inside the rollout service.\nThe response will be a JSON object with a key called members, that contains the found Device Groups.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "List all Deployments",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeploymentListResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Creates a new Deployment with given attributes inside the rollout service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Create a new Deployment",
                "parameters": [
                    {
                        "description": "Deployment to be added to the rollout service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateDeploymentResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.DeploymentResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/rollout/deployments/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get details of an existing Deployment inside the rollout service.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Retrieve an existing Deployment",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Deployment",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeploymentResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Updates an existing Deployment with given attributes inside the rollout service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Update a Deployment",
                "parameters": [
                    {
                        "description": "Deployment to be updated inside the rollout service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrUpdateDeploymentResource"
                        }
                    },
                    {
                        "type": "string",
                        "description": "UUID of the Deployment",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.DeploymentResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the Deployment from rollout service.\nThe response status will be of HTTP status code 204. This indicates a successful request with no response body.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Delete a Deployment",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Deployment",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/update-jobs": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get information about the execution UpdateJob",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Get the UpdateJob",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updateJobListResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/update-jobs/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Get information about the execution UpdateJob",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Get the UpdateJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the UpdateJob",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updateJobResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/update-jobs/{uuid}/retry": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Retries the UpdateJob on all Devices which failed the last execution",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Retry the UpdateJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the UpdateJob",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updateJobResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/update-jobs/{uuid}/run": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "If the UpdateJob is unscheduled we can run it.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Run the UpdateJob",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the UpdateJob",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.updateJobResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    }
                }
            }
        },
        "/rollout/update-report": {
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Generate a comprehensive update report with device statistics, firmware versions, and update events",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "rollout"
                ],
                "summary": "Generate Update Report",
                "parameters": [
                    {
                        "description": "Generate report parameters",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/apimodels.GenerateReportRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/apimodels.UpdateJobReport"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/businesserror.BusinessError"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/technicalerror.technicalError"
                        }
                    }
                }
            }
        },
        "/smart-update/settings": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "smartupdate"
                ],
                "summary": "Get Smart Update Settings for the current namespace",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.SettingsReply"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "smartupdate"
                ],
                "summary": "Update smart update settings for the current namespace",
                "parameters": [
                    {
                        "description": "Data to be updated",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.SettingsPut"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.CQRSNamespaceReply"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "List all autoupdate servers for the current logged-in user.",
                "parameters": [
                    {
                        "type": "string",
                        "name": "orderBy",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "orderDesc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "resourceId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "targetId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/handler.ServerV2"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Create a new Server",
                "parameters": [
                    {
                        "description": "Server to be added to the autoupdate service",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.commandV2ServerResource"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/alias/{alias}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Fetch one server by its alias for the current logged-in user.",
                "parameters": [
                    {
                        "type": "string",
                        "name": "orderBy",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "orderDesc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "resourceId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "targetId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Alias of the Server",
                        "name": "alias",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ServerV2"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/delete": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes autoupdate servers.",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Delete servers",
                "parameters": [
                    {
                        "description": "IDs of the servers to be deleted",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.deleteServerResource"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{serverID}/params/{type}/{targetID}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Fetch global params for the given autoupdate server and target",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "serverID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target type (device or group)",
                        "name": "type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "UUID of the Target",
                        "name": "targetID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.TargetParamsV2Resource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Modify target params for the given autoupdate server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "serverID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target type (device or group)",
                        "name": "type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "UUID of the Target",
                        "name": "targetID",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Target params to be patched",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.GlobalParamsPatchV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Fetch one server by its ID for the current logged-in user.",
                "parameters": [
                    {
                        "type": "string",
                        "name": "orderBy",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "name": "orderDesc",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "pageSize",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "resourceId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "targetId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.ServerV2"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Update an existing Server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Data to be updated",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.commandV2ServerResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}/discard": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Discard Server draft",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}/global-params": {
            "get": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Fetch global params for the given autoupdate server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.GlobalParamsV2Resource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Modify global params for the given autoupdate server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Global params to be patched",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.GlobalParamsPatchV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}/remove-targets": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Deletes the targets from an autoupdate server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Delete targets from a Server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Targets to be removed from server",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.deleteTargetsResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}/save": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Save Server draft",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        },
        "/v2/autoupdate/server/{uuid}/targets": {
            "put": {
                "security": [
                    {
                        "AccessTokenAuth": []
                    }
                ],
                "description": "Sets the targets for an autoupdate server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "autoupdate"
                ],
                "summary": "Set targets for a Server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "UUID of the Server",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Targets to be assigned to server",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.putTargetsResource"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/shared.CQRSIDResource"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/shared.ErrorResource"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "admin.Release": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "releaseDate": {
                    "type": "string"
                },
                "releaseNotesUrl": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "apimodels.GenerateReportRequest": {
            "type": "object",
            "properties": {
                "endTime": {
                    "type": "string"
                },
                "groupIDs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "startTime": {
                    "type": "string"
                }
            }
        },
        "apimodels.UpdateJobReport": {
            "type": "object",
            "properties": {
                "currentTime": {
                    "type": "string"
                },
                "deviceNumber": {
                    "type": "integer"
                },
                "endTime": {
                    "type": "string"
                },
                "failedNonSmartUpdates": {
                    "type": "integer"
                },
                "failedSmartUpdates": {
                    "type": "integer"
                },
                "firmwareVersions": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    }
                },
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entities.GroupUpdateJobHistory"
                    }
                },
                "startTime": {
                    "type": "string"
                },
                "successfulNonSmartUpdates": {
                    "type": "integer"
                },
                "successfulSmartUpdates": {
                    "type": "integer"
                }
            }
        },
        "audit.LogAffectedResource": {
            "type": "object",
            "properties": {
                "operation": {
                    "type": "integer"
                },
                "urn": {
                    "type": "string"
                }
            }
        },
        "audit.LogCredentials": {
            "type": "object",
            "properties": {
                "organizationCountry": {
                    "type": "string"
                },
                "organizationName": {
                    "type": "string"
                },
                "tokenName": {
                    "type": "string"
                },
                "tokenType": {
                    "type": "integer"
                },
                "userUUID": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "audit.ObjectInfo": {
            "type": "object",
            "properties": {
                "fileName": {
                    "type": "string"
                },
                "fileSize": {
                    "type": "integer"
                },
                "hashSum": {
                    "type": "string"
                },
                "objectPrefix": {
                    "type": "string"
                },
                "type": {
                    "type": "integer"
                }
            }
        },
        "autoupdate.ResourceMetaData": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string",
                    "example": "----"
                },
                "requiredSoftware": {
                    "type": "string",
                    "example": "3.0"
                },
                "version": {
                    "type": "string",
                    "example": "3.7"
                }
            }
        },
        "autoupdate.UpdatePacketDeployment": {
            "type": "object",
            "properties": {
                "deploymentMethod": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "autoupdate.UpdatePacketManifestEntry": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "fileName": {
                    "type": "string"
                },
                "fileSize": {
                    "type": "integer"
                },
                "fileType": {
                    "type": "string",
                    "enum": [
                        "ASCII_CONFIG",
                        "STORED_ASCII_CONFIG",
                        "BINARY_CONFIGURATION",
                        "FULL_SOFTWARE_UPDATE",
                        "INCREMENTAL_SOFTWARE_UPDATE",
                        "CONTAINER_CONFIGURATION",
                        "CONTAINER",
                        "LICENCE"
                    ],
                    "example": "ASCII_CONFIG"
                },
                "md5Sum": {
                    "type": "string"
                },
                "metaData": {
                    "$ref": "#/definitions/autoupdate.ResourceMetaData"
                },
                "orderIndex": {
                    "type": "integer"
                }
            }
        },
        "businesserror.BusinessError": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer",
                    "example": 3000001
                },
                "message": {
                    "type": "string",
                    "example": "'name' is required"
                },
                "source": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "entities.DeviceUpdateEvent": {
            "type": "object",
            "properties": {
                "dateTime": {
                    "type": "string"
                },
                "fromVersion": {
                    "$ref": "#/definitions/legacy.FWVersion"
                },
                "smartUpdate": {
                    "type": "boolean"
                },
                "success": {
                    "type": "boolean"
                },
                "toVersion": {
                    "$ref": "#/definitions/legacy.FWVersion"
                }
            }
        },
        "entities.DeviceUpdateJobHistory": {
            "type": "object",
            "properties": {
                "firmwareVersion": {
                    "$ref": "#/definitions/legacy.FWVersion"
                },
                "isSmartUpdate": {
                    "type": "boolean"
                },
                "location": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "serialNumber": {
                    "type": "string"
                },
                "updateEvents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entities.DeviceUpdateEvent"
                    }
                }
            }
        },
        "entities.GroupUpdateJobHistory": {
            "type": "object",
            "properties": {
                "devices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entities.DeviceUpdateJobHistory"
                    }
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "entities.UpdatePacket": {
            "type": "object",
            "properties": {
                "architecture": {
                    "type": "string"
                },
                "autoupdate": {
                    "type": "boolean"
                },
                "createdAt": {
                    "type": "string"
                },
                "incremental": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "releaseID": {
                    "type": "string"
                },
                "sha256": {
                    "type": "string"
                },
                "signed": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string"
                },
                "uploaded": {
                    "type": "boolean"
                }
            }
        },
        "handler.AccountListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.AccountWithLicenseTierResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.AccountResource": {
            "type": "object",
            "required": [
                "name",
                "organisationUuid"
            ],
            "properties": {
                "accountMemberships": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/identity.AccountMembership"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "internal": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "userFields": {
                    "type": "object",
                    "additionalProperties": true
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.AccountWithLicenseTierResource": {
            "type": "object",
            "required": [
                "name",
                "organisationUuid"
            ],
            "properties": {
                "accountMemberships": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/identity.AccountMembership"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "internal": {
                    "type": "boolean"
                },
                "licenseTier": {
                    "type": "string",
                    "example": "1"
                },
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "userFields": {
                    "type": "object",
                    "additionalProperties": true
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.CQRSNamespaceReply": {
            "type": "object",
            "properties": {
                "namespace": {
                    "type": "string",
                    "example": "default"
                }
            }
        },
        "handler.CertificateAuthorityListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.CertificateAuthorityResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.CertificateAuthorityResource": {
            "type": "object",
            "properties": {
                "certificateAuthorityType": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "external": {
                    "type": "boolean"
                },
                "issuerUuid": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "notAfter": {
                    "type": "string"
                },
                "notBefore": {
                    "type": "string"
                },
                "serialNumber": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.CertificateResource": {
            "type": "object",
            "properties": {
                "certificateAuthorities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.CertificateAuthorityResource"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "external": {
                    "type": "boolean"
                },
                "issuerType": {
                    "type": "integer"
                },
                "issuerUuid": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "notAfter": {
                    "type": "string"
                },
                "notBefore": {
                    "type": "string"
                },
                "serialNumber": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.CreateAccountResource": {
            "type": "object",
            "required": [
                "name",
                "organisationUuid"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "handler.CreateOrganisationResource": {
            "type": "object",
            "required": [
                "city",
                "countryCode",
                "name",
                "roles"
            ],
            "properties": {
                "address1": {
                    "type": "string",
                    "example": "Hermann-Köhl-Str. 22"
                },
                "address2": {
                    "type": "string",
                    "example": "Floor 2"
                },
                "city": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "countryCode": {
                    "type": "string",
                    "example": "DE"
                },
                "customerNumber": {
                    "type": "string",
                    "example": "123456"
                },
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "name": {
                    "type": "string",
                    "example": "INSYS MICROELECTRONICS GmbH"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-0"
                },
                "postalCode": {
                    "type": "string",
                    "example": "93049"
                },
                "registrationURL": {
                    "type": "string"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "PLATFORM_OPERATOR",
                            "CUSTOMER",
                            "SUPPLIER",
                            "RESELLER",
                            "BROKER"
                        ]
                    },
                    "example": [
                        "PLATFORM_OPERATOR",
                        "SUPPLIER"
                    ]
                },
                "state": {
                    "type": "string",
                    "example": "Bayern"
                },
                "supplierUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "f32a6192-9df2-4a50-bf57-3c3b37f8c10c"
                },
                "vatNumber": {
                    "type": "string",
                    "example": "DE123456789"
                }
            }
        },
        "handler.DeploymentListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.DeploymentResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.DeploymentResource": {
            "type": "object",
            "properties": {
                "autoUpdate": {
                    "description": "~~~ Methods:",
                    "$ref": "#/definitions/rollout.DeploymentAutoUpdate"
                },
                "cliTemplate": {
                    "description": "~~~ Subjects:",
                    "$ref": "#/definitions/rollout.DeploymentCLITemplate"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "description": {
                    "type": "string",
                    "example": "Deploy cli template to all devices with an auto update."
                },
                "firmwareID": {
                    "type": "string"
                },
                "method": {
                    "type": "string",
                    "enum": [
                        "AUTO_UPDATE",
                        "UPDATE_JOB"
                    ],
                    "example": "AUTO_UPDATE"
                },
                "name": {
                    "type": "string",
                    "example": "My first rollout deployment"
                },
                "subject": {
                    "type": "string",
                    "enum": [
                        "CLI_TEMPLATE",
                        "UPDATE_PACKET",
                        "FIRMWARE"
                    ],
                    "example": "CLI_TEMPLATE"
                },
                "target": {
                    "description": "~~~ Targets:",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "targetType": {
                    "type": "string",
                    "enum": [
                        "ALL",
                        "DEVICE_GROUPS",
                        "MANAGED_DEVICES"
                    ],
                    "example": "MANAGED_DEVICES"
                },
                "updateJob": {
                    "$ref": "#/definitions/rollout.DeploymentUpdateJob"
                },
                "updatePacket": {
                    "$ref": "#/definitions/rollout.DeploymentUpdatePacket"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.DeviceGroupListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.DeviceGroupResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.DeviceGroupResource": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "managedDevices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.managedDeviceResource"
                    }
                },
                "managedDevicesCount": {
                    "type": "integer"
                },
                "name": {
                    "type": "string",
                    "example": "My first device group"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.GlobalParamPatchV2": {
            "type": "object",
            "properties": {
                "inheritValue": {
                    "type": "boolean"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "handler.GlobalParamV2Resource": {
            "type": "object",
            "properties": {
                "asciiTemplateNames": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "identifier": {
                    "type": "string"
                },
                "inheritValue": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "handler.GlobalParamsPatchV2": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/handler.GlobalParamPatchV2"
            }
        },
        "handler.GlobalParamsV2Resource": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/handler.GlobalParamV2Resource"
            }
        },
        "handler.GroupSettings": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "example": "Standardgruppe"
                },
                "timezone": {
                    "type": "string",
                    "example": "Europe/Berlin"
                },
                "updateTime": {
                    "type": "string",
                    "example": "02:00"
                },
                "uuid": {
                    "type": "string",
                    "example": "25c32fb1-f2ea-4501-83e0-e078dd23621a"
                }
            }
        },
        "handler.GroupSettingsPut": {
            "type": "object",
            "properties": {
                "timezone": {
                    "type": "string",
                    "example": "Europe/Berlin"
                },
                "updateTime": {
                    "type": "string",
                    "example": "02:00"
                },
                "uuid": {
                    "type": "string",
                    "example": "25c32fb1-f2ea-4501-83e0-e078dd23621a"
                }
            }
        },
        "handler.OrganisationResource": {
            "type": "object",
            "required": [
                "address1",
                "address2",
                "city",
                "countryCode",
                "customerNumber",
                "emailAddress",
                "name",
                "phoneNumber",
                "postalCode",
                "roles",
                "state",
                "supplierUuid",
                "totpEnforced",
                "validated",
                "vatNumber"
            ],
            "properties": {
                "address1": {
                    "type": "string",
                    "example": "Hermann-Köhl-Str. 22"
                },
                "address2": {
                    "type": "string",
                    "example": "Floor 2"
                },
                "city": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "countryCode": {
                    "type": "string",
                    "example": "DE"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "customerNumber": {
                    "type": "string",
                    "example": "123456"
                },
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "info@insys-tec.de"
                },
                "name": {
                    "type": "string",
                    "example": "INSYS MICROELECTRONICS GmbH"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-0"
                },
                "postalCode": {
                    "type": "string",
                    "example": "93049"
                },
                "registrationUrl": {
                    "type": "string"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "PLATFORM_OPERATOR",
                            "CUSTOMER",
                            "SUPPLIER",
                            "RESELLER",
                            "BROKER"
                        ]
                    },
                    "example": [
                        "PLATFORM_OPERATOR"
                    ]
                },
                "state": {
                    "type": "string",
                    "example": "Bayern"
                },
                "supplierName": {
                    "type": "string"
                },
                "supplierUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "f32a6192-9df2-4a50-bf57-3c3b37f8c10c"
                },
                "totpEnforced": {
                    "type": "boolean",
                    "example": true
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                },
                "validated": {
                    "type": "boolean",
                    "example": true
                },
                "vatNumber": {
                    "type": "string",
                    "example": "DE123456789"
                }
            }
        },
        "handler.ResourceListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.ResourceResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.ResourceResource": {
            "type": "object",
            "required": [
                "fileName",
                "fileType",
                "objectPrefix"
            ],
            "properties": {
                "checksumAlgorithm": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "description": {
                    "type": "string",
                    "example": "Configuration to change hostname to router123"
                },
                "fileName": {
                    "type": "string",
                    "example": "change_hostname_config.txt"
                },
                "fileType": {
                    "type": "string",
                    "enum": [
                        "ASCII_CONFIG",
                        "STORED_ASCII_CONFIG"
                    ],
                    "example": "ASCII_CONFIG"
                },
                "hashSum": {
                    "type": "string"
                },
                "md5HashSum": {
                    "type": "string"
                },
                "metaData": {
                    "$ref": "#/definitions/autoupdate.ResourceMetaData"
                },
                "objectPrefix": {
                    "type": "string",
                    "default": "/",
                    "example": "/"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "AVAILABLE",
                        "UPLOADING",
                        "LINKED"
                    ],
                    "example": "AVAILABLE"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.ServerV2": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string",
                    "example": "some-alias"
                },
                "createdAt": {
                    "type": "string",
                    "example": "2006-01-02T15:04:05.000Z07:00"
                },
                "draftUpdatedAt": {
                    "type": "string",
                    "example": "2006-01-02T15:04:05.000Z07:00"
                },
                "namespace": {
                    "type": "string",
                    "example": "xav0pb2n"
                },
                "targets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.TargetV2"
                    }
                },
                "totalTargets": {
                    "type": "integer",
                    "example": 100
                },
                "updatedAt": {
                    "type": "string",
                    "example": "2006-01-02T15:04:05.000Z07:00"
                },
                "url": {
                    "type": "string",
                    "example": "/autoupdate/default/alias/list.txt"
                },
                "uuid": {
                    "type": "string",
                    "example": "c765bbfd-584a-4e44-8d4f-b35f39a520af"
                }
            }
        },
        "handler.SettingsPut": {
            "type": "object",
            "properties": {
                "defaultTimezone": {
                    "type": "string",
                    "example": "Europe/Berlin"
                },
                "defaultUpdateTime": {
                    "type": "string",
                    "example": "02:00"
                },
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.GroupSettingsPut"
                    }
                },
                "smartUpdateDefault": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "handler.SettingsReply": {
            "type": "object",
            "properties": {
                "defaultTimezone": {
                    "type": "string",
                    "example": "Europe/Berlin"
                },
                "defaultUpdateTime": {
                    "type": "string",
                    "example": "02:00"
                },
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.GroupSettings"
                    }
                },
                "namespace": {
                    "type": "string",
                    "example": "default"
                },
                "smartUpdateDefault": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "handler.TargetParamsV2Resource": {
            "type": "object",
            "properties": {
                "params": {
                    "$ref": "#/definitions/handler.GlobalParamsV2Resource"
                },
                "serverID": {
                    "type": "string"
                },
                "targetID": {
                    "type": "string"
                },
                "targetType": {
                    "type": "string"
                }
            }
        },
        "handler.TargetV2": {
            "type": "object",
            "properties": {
                "resourceId": {
                    "type": "string",
                    "example": "c765bbfd-584a-4e44-8d4f-b35f39a520af"
                },
                "resourceName": {
                    "type": "string",
                    "example": "some-resource"
                },
                "resourceType": {
                    "type": "string",
                    "example": "UPDATE_PACKET"
                },
                "targetName": {
                    "type": "string",
                    "example": "some-target"
                },
                "targetType": {
                    "type": "string",
                    "example": "DEVICE"
                },
                "uuid": {
                    "type": "string",
                    "example": "c765bbfd-584a-4e44-8d4f-b35f39a520af"
                }
            }
        },
        "handler.accessTokenResource": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "expiresAt": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "scopes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "token": {
                    "type": "string"
                },
                "tokenType": {
                    "type": "integer"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "username": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.accountUserResource": {
            "type": "object",
            "required": [
                "userUuid"
            ],
            "properties": {
                "homeAccount": {
                    "type": "boolean"
                },
                "userUuid": {
                    "type": "string",
                    "format": "uuid"
                }
            }
        },
        "handler.certificateListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.CertificateResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.changePasswordResource": {
            "type": "object",
            "required": [
                "oldPassword",
                "password"
            ],
            "properties": {
                "oldPassword": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                }
            }
        },
        "handler.changeUsernameResource": {
            "type": "object",
            "required": [
                "username"
            ],
            "properties": {
                "username": {
                    "type": "string"
                }
            }
        },
        "handler.cliTemplateKeys": {
            "type": "object",
            "required": [
                "valueType"
            ],
            "properties": {
                "arrayType": {
                    "$ref": "#/definitions/inventory.CLITemplateKey"
                },
                "description": {
                    "type": "string"
                },
                "internalProperties": {
                    "$ref": "#/definitions/inventory.InternalKey"
                },
                "key": {
                    "type": "string"
                },
                "objectProperties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inventory.CLITemplateKey"
                    }
                },
                "valueType": {
                    "type": "string",
                    "enum": [
                        "null",
                        "string"
                    ]
                }
            }
        },
        "handler.cliTemplateListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.cliTemplateResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.cliTemplateResource": {
            "type": "object",
            "required": [
                "content",
                "keysConfiguration",
                "name"
            ],
            "properties": {
                "containerConfigurationFileName": {
                    "type": "string"
                },
                "containerDesignator": {
                    "type": "string"
                },
                "content": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "description": {
                    "type": "string"
                },
                "fileType": {
                    "type": "string"
                },
                "keysConfiguration": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inventory.CLITemplateKey"
                    }
                },
                "linkedDeployments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inventory.CLITemplateDeployment"
                    }
                },
                "name": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "AVAILABLE",
                        "LINKED"
                    ],
                    "example": "AVAILABLE"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                },
                "valid": {
                    "type": "boolean"
                }
            }
        },
        "handler.commandV2ServerResource": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string"
                }
            }
        },
        "handler.connectionProfileResource": {
            "type": "object",
            "required": [
                "autoupdateCAChain",
                "autoupdateCertificate",
                "autoupdatePrivateKey",
                "deviceControlCAChain",
                "deviceControlCertificate",
                "deviceControlPrivateKey",
                "deviceUuid",
                "host",
                "path",
                "port",
                "protocol",
                "realmUri"
            ],
            "properties": {
                "autoupdateCAChain": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "autoupdateCertificate": {
                    "type": "string",
                    "example": "---"
                },
                "autoupdatePrivateKey": {
                    "type": "string",
                    "example": "---"
                },
                "deviceControlCAChain": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deviceControlCertificate": {
                    "type": "string",
                    "example": "---"
                },
                "deviceControlPrivateKey": {
                    "type": "string",
                    "example": "---"
                },
                "deviceUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "118e8766-8a80-4e06-84d4-b270c230802c"
                },
                "host": {
                    "type": "string",
                    "example": "oam-de-nue-1.insys-tec.net"
                },
                "path": {
                    "type": "string",
                    "default": "/devicecontrol",
                    "example": "/devicecontrol"
                },
                "port": {
                    "type": "integer",
                    "maximum": 65535,
                    "minimum": 1,
                    "example": 443
                },
                "protocol": {
                    "type": "boolean",
                    "example": true
                },
                "realmUri": {
                    "type": "string",
                    "example": "devices.insys-tec.net"
                }
            }
        },
        "handler.createAccessTokenResource": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "expiresAt": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "handler.createCertificateAuthorityResource": {
            "type": "object",
            "required": [
                "certificateAuthorityType",
                "keySize",
                "name",
                "notAfter",
                "notBefore",
                "signatureAlgorithm"
            ],
            "properties": {
                "certificateAuthorityType": {
                    "type": "string",
                    "default": "ROOT_CA",
                    "enum": [
                        "ROOT_CA",
                        "INTERMEDIATE_CA"
                    ],
                    "example": "ROOT_CA"
                },
                "crlDistributionPoint": {
                    "type": "string"
                },
                "issuerUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "f82b4ae0-dd96-4618-b27f-4a115d5398d4"
                },
                "keySize": {
                    "type": "integer",
                    "default": 2048,
                    "example": 2048
                },
                "name": {
                    "type": "string",
                    "example": "My first certificate authority"
                },
                "notAfter": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2029-09-05T17:28:03Z"
                },
                "notBefore": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "signatureAlgorithm": {
                    "type": "string",
                    "default": "SHA256_WITH_RSA",
                    "enum": [
                        "SHA1_WITH_RSA",
                        "SHA256_WITH_RSA",
                        "SHA384_WITH_RSA",
                        "SHA512_WITH_RSA"
                    ],
                    "example": "SHA256_WITH_RSA"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                }
            }
        },
        "handler.createCertificateResource": {
            "type": "object",
            "required": [
                "extendedKeyUsages",
                "issuerType",
                "issuerUuid",
                "keySize",
                "keyUsages",
                "name",
                "notAfter",
                "notBefore",
                "signatureAlgorithm"
            ],
            "properties": {
                "extendedKeyUsages": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "ANY",
                            "SERVER_AUTH",
                            "CLIENT_AUTH",
                            "CODE_SIGNING",
                            "EMAIL_PROTECTION",
                            "IPSEC_END_SYSTEM",
                            "IPSEC_TUNNEL",
                            "IPSEC_USER",
                            "TIME_STAMPING",
                            "OCSP_SIGNING",
                            "MICROSOFT_SERVER_GATED_CRYPTO",
                            "NETSCAPE_SERVER_GATED_CRYPTO",
                            "MICROSOFT_COMMERCIAL_CODE_SIGNING",
                            "MICROSOFT_KERNEL_CODE_SIGNING"
                        ]
                    },
                    "example": [
                        "CLIENT_AUTH"
                    ]
                },
                "issuerType": {
                    "type": "string",
                    "default": "LOCAL_CA",
                    "enum": [
                        "LOCAL_CA",
                        "THIRD_PARTY_CA",
                        "SELF_SIGNED"
                    ],
                    "example": "LOCAL_CA"
                },
                "issuerUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "f82b4ae0-dd96-4618-b27f-4a115d5398d4"
                },
                "keySize": {
                    "type": "integer",
                    "example": 2048
                },
                "keyUsages": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "DIGITAL_SIGNATURE",
                            "CONTENT_COMMITMENT",
                            "KEY_ENCIPHERMENT",
                            "DATA_ENCIPHERMENT",
                            "KEY_AGREEMENT",
                            "CERT_SIGN",
                            "CRL_SIGN",
                            "ENCIPHER_ONLY",
                            "DECIPHER_ONLY"
                        ]
                    },
                    "example": [
                        "DIGITAL_SIGNATURE",
                        "KEY_AGREEMENT"
                    ]
                },
                "name": {
                    "type": "string",
                    "example": "My first certificate"
                },
                "notAfter": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2029-09-05T17:28:03Z"
                },
                "notBefore": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "signatureAlgorithm": {
                    "type": "string",
                    "default": "SHA256_WITH_RSA",
                    "enum": [
                        "SHA1_WITH_RSA",
                        "SHA256_WITH_RSA",
                        "SHA384_WITH_RSA",
                        "SHA512_WITH_RSA"
                    ],
                    "example": "SHA256_WITH_RSA"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                },
                "subjectAlternativeNames": {
                    "$ref": "#/definitions/pki.SubjectAlternativeNames"
                }
            }
        },
        "handler.createDeploymentUpdateJob": {
            "type": "object",
            "required": [
                "schedule"
            ],
            "properties": {
                "schedule": {
                    "$ref": "#/definitions/handler.createUpdateJobSchedule"
                }
            }
        },
        "handler.createManagedDeviceResource": {
            "type": "object",
            "required": [
                "connectionPingInterval",
                "connectionPongTimeout",
                "connectionSessionTimeout",
                "groupUuid",
                "name",
                "serialNumber"
            ],
            "properties": {
                "connectionPingInterval": {
                    "type": "integer",
                    "default": 104,
                    "example": 104
                },
                "connectionPongTimeout": {
                    "type": "integer",
                    "default": 16,
                    "example": 16
                },
                "connectionSessionTimeout": {
                    "type": "integer",
                    "default": 120,
                    "example": 120
                },
                "custom": {
                    "type": "object",
                    "additionalProperties": true
                },
                "groupUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "location": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "locationLatitude": {
                    "type": "string",
                    "example": "49.0134297"
                },
                "locationLongitude": {
                    "type": "string",
                    "example": "12.1016236"
                },
                "name": {
                    "type": "string",
                    "example": "router123"
                },
                "serialNumber": {
                    "type": "string",
                    "example": "serial123"
                }
            }
        },
        "handler.createOrUpdateCLITemplateResource": {
            "type": "object",
            "required": [
                "content",
                "fileType",
                "keysConfiguration",
                "name"
            ],
            "properties": {
                "containerConfigurationFileName": {
                    "type": "string"
                },
                "containerDesignator": {
                    "type": "string"
                },
                "content": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string"
                },
                "fileType": {
                    "type": "string"
                },
                "keysConfiguration": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.cliTemplateKeys"
                    }
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "handler.createOrUpdateDeploymentResource": {
            "type": "object",
            "required": [
                "method",
                "name",
                "subject",
                "targetType"
            ],
            "properties": {
                "autoUpdate": {
                    "description": "~~~ Methods:",
                    "$ref": "#/definitions/rollout.DeploymentAutoUpdate"
                },
                "cliTemplate": {
                    "description": "~~~ Subjects:",
                    "$ref": "#/definitions/rollout.DeploymentCLITemplate"
                },
                "description": {
                    "type": "string",
                    "example": "Deploy my CLI template to my devices using Auto Update."
                },
                "firmwareID": {
                    "type": "string"
                },
                "method": {
                    "description": "Method represents the Deployment method\nEither the AutoUpdate Approach or UpdateJob approach.\nFor Method AUTO_UPDATE we only set up an AutoUpdate Server, where devices can\npull the updates. In this case the update server will stay until it is deleted by the user.\nFor Method AUTO_UPDATE the field \"autoUpdate\" must be specified with the server alias.\nUPDATE_JOB will actively trigger a device to retrieve the update packet from the update server.\nFor manual update jobs, the server is deleted only upon success to allow reruns on failure.\nFor smart update jobs, the server is deleted once the job finishes (regardless of result)\nsince they are automated and don't involve user actions.",
                    "type": "string",
                    "enum": [
                        "AUTO_UPDATE",
                        "UPDATE_JOB"
                    ],
                    "example": "AUTO_UPDATE"
                },
                "name": {
                    "type": "string",
                    "example": "My first rollout deployment"
                },
                "subject": {
                    "description": "Subject describes the subject of the deployment. It can be either a CLI Template, an Update Packet\nor a Firmware that should be deployed to the specified managed devices.\nIf the subject is CLI Template, the field \"cliTemplate\" must be specified.",
                    "type": "string",
                    "enum": [
                        "CLI_TEMPLATE",
                        "UPDATE_PACKET",
                        "FIRMWARE"
                    ],
                    "example": "CLI_TEMPLATE"
                },
                "target": {
                    "description": "~~~ Targets:",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "4849d72f-e788-42d9-a77e-e93fd9a3c910",
                        "f82b4ae0-dd96-4618-b27f-4a115d5398d4"
                    ]
                },
                "targetType": {
                    "description": "TargetType describes for which target the deployment should be.\nALL means that all of the managed devices will be updated by the deployment.\nMANAGED_DEVICES will update only the managed devices that are specified with their UUIDs as \"target\".\nDEVICE_GROUPS will update all devices that are in the groups that are specified with their UUIDs as \"target\".",
                    "type": "string",
                    "enum": [
                        "ALL",
                        "DEVICE_GROUPS",
                        "MANAGED_DEVICES"
                    ],
                    "example": "MANAGED_DEVICES"
                },
                "updateJob": {
                    "$ref": "#/definitions/handler.createDeploymentUpdateJob"
                },
                "updatePacket": {
                    "$ref": "#/definitions/rollout.DeploymentUpdatePacket"
                }
            }
        },
        "handler.createOrUpdateDeviceGroupResource": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "example": "My first device group"
                }
            }
        },
        "handler.createResourceResource": {
            "type": "object",
            "required": [
                "fileName",
                "fileType",
                "objectPrefix"
            ],
            "properties": {
                "content": {
                    "type": "string",
                    "example": "administration.hostnames.hostname=router123\n"
                },
                "description": {
                    "type": "string",
                    "example": "Configuration to change hostname to router123"
                },
                "fileName": {
                    "type": "string",
                    "example": "change_hostname_config.txt"
                },
                "fileType": {
                    "type": "string",
                    "enum": [
                        "ASCII_CONFIG",
                        "STORED_ASCII_CONFIG",
                        "BINARY_CONFIGURATION",
                        "FULL_SOFTWARE_UPDATE",
                        "INCREMENTAL_SOFTWARE_UPDATE",
                        "CONTAINER_CONFIGURATION",
                        "CONTAINER",
                        "LICENCE"
                    ],
                    "example": "ASCII_CONFIG"
                },
                "metaData": {
                    "$ref": "#/definitions/autoupdate.ResourceMetaData"
                },
                "objectPrefix": {
                    "type": "string",
                    "default": "/",
                    "example": "/"
                }
            }
        },
        "handler.createUpdateJobSchedule": {
            "type": "object",
            "properties": {
                "runNow": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "handler.createUpdatePacketManifestEntryResource": {
            "type": "object",
            "required": [
                "orderIndex",
                "resourceUuid"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Full firmware binary 4.0"
                },
                "fileName": {
                    "type": "string",
                    "example": "ascii.txt"
                },
                "metaData": {
                    "$ref": "#/definitions/autoupdate.ResourceMetaData"
                },
                "orderIndex": {
                    "type": "integer",
                    "example": 1
                },
                "resourceUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "1a3defe4-046b-4240-adbf-cfaedd341eeb"
                }
            }
        },
        "handler.createUpdatePacketResource": {
            "type": "object",
            "required": [
                "objectPrefix"
            ],
            "properties": {
                "contents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.createUpdatePacketManifestEntryResource"
                    }
                },
                "description": {
                    "type": "string",
                    "example": "This update packet upgrades routers to icom OS 4.0"
                },
                "fileName": {
                    "type": "string",
                    "example": "full_update_4.0.tar"
                },
                "objectPrefix": {
                    "type": "string",
                    "default": "/",
                    "example": "/"
                }
            }
        },
        "handler.createUserResource": {
            "type": "object",
            "required": [
                "AcceptedTermsAndConditions",
                "emailAddress",
                "firstName",
                "lastName",
                "organisationUuid",
                "password",
                "preferredLanguage",
                "username"
            ],
            "properties": {
                "AcceptedTermsAndConditions": {
                    "type": "boolean"
                },
                "accountUuid": {
                    "type": "string",
                    "format": "uuid"
                },
                "confirmed": {
                    "type": "boolean"
                },
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "firstName": {
                    "type": "string",
                    "example": "INSYS"
                },
                "lastName": {
                    "type": "string",
                    "example": "User"
                },
                "middleName": {
                    "type": "string",
                    "example": "Support"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "ff844b33-1f2a-4c1a-afe2-fccee42bb25f"
                },
                "password": {
                    "type": "string",
                    "format": "password",
                    "example": "test1234"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-661"
                },
                "preferredLanguage": {
                    "type": "string",
                    "example": "de_DE"
                },
                "username": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                }
            }
        },
        "handler.deleteServerResource": {
            "type": "object",
            "properties": {
                "serverIDs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "handler.deleteTargetsResource": {
            "type": "object",
            "properties": {
                "targetIDs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "targetTypeAll": {
                    "type": "boolean"
                }
            }
        },
        "handler.deviceValues": {
            "type": "object",
            "additionalProperties": true
        },
        "handler.getCertificateAuthorityResourceWithCert": {
            "type": "object",
            "properties": {
                "certificate": {
                    "type": "string"
                },
                "certificateAuthorityType": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "crl": {
                    "type": "string"
                },
                "external": {
                    "type": "boolean"
                },
                "issuerUuid": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "notAfter": {
                    "type": "string"
                },
                "notBefore": {
                    "type": "string"
                },
                "serialNumber": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.getCertificateResourceWithCert": {
            "type": "object",
            "properties": {
                "certificate": {
                    "type": "string"
                },
                "certificateAuthorities": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.CertificateAuthorityResource"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "external": {
                    "type": "boolean"
                },
                "issuerType": {
                    "type": "integer"
                },
                "issuerUuid": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "notAfter": {
                    "type": "string"
                },
                "notBefore": {
                    "type": "string"
                },
                "serialNumber": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "subject": {
                    "$ref": "#/definitions/pki.Subject"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.logListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.logResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.logResource": {
            "type": "object",
            "properties": {
                "affectedResources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/audit.LogAffectedResource"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "credentials": {
                    "$ref": "#/definitions/audit.LogCredentials"
                },
                "description": {
                    "type": "string"
                },
                "namespace": {
                    "type": "string"
                },
                "operation": {
                    "type": "integer"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "urn": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.managedDeviceEventLogListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.managedDeviceEventLogResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.managedDeviceEventLogResource": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "event": {
                    "type": "string",
                    "example": "PROFILE_ACTIVATION"
                },
                "eventCategory": {
                    "type": "string",
                    "enum": [
                        "DEVICE_EVENT",
                        "CONTROL_CHANNEL"
                    ],
                    "example": "DEVICE_EVENT"
                },
                "managedDeviceUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "severity": {
                    "type": "string",
                    "enum": [
                        "INFO",
                        "WARNING",
                        "ERROR",
                        "CRITICAL"
                    ],
                    "example": "INFO"
                },
                "timestamp": {
                    "type": "string",
                    "example": "2019-10-22T09:42:52Z"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.managedDeviceListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.managedDeviceResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.managedDeviceResource": {
            "type": "object",
            "properties": {
                "autoUpdateCertificateUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "autoupdateCertUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "connectionLastMessageAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "connectionPingInterval": {
                    "type": "integer",
                    "example": 104
                },
                "connectionPongTimeout": {
                    "type": "integer",
                    "example": 16
                },
                "connectionSessionTimeout": {
                    "type": "integer",
                    "example": 120
                },
                "connectionStartedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "connectionStatus": {
                    "type": "string",
                    "enum": [
                        "OFFLINE",
                        "ONLINE"
                    ],
                    "example": "OFFLINE"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "custom": {
                    "type": "object",
                    "additionalProperties": true
                },
                "details": {
                    "type": "any"
                },
                "deviceControlCertificateUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "eventsTopic": {
                    "type": "string",
                    "example": "deviceevent"
                },
                "firmwareAutoUpdate": {
                    "type": "boolean"
                },
                "firmwareName": {
                    "type": "string",
                    "example": "icom OS"
                },
                "firmwareVersion": {
                    "type": "string",
                    "example": "6.9"
                },
                "group": {
                    "$ref": "#/definitions/handler.DeviceGroupResource"
                },
                "groupName": {
                    "type": "string",
                    "example": "Standardgruppe"
                },
                "groupUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "hardwareModel": {
                    "type": "string",
                    "example": "SCR-L300"
                },
                "location": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "locationLatitude": {
                    "type": "string",
                    "example": "49.0134297"
                },
                "locationLongitude": {
                    "type": "string",
                    "example": "12.1016236"
                },
                "name": {
                    "type": "string",
                    "example": "router123"
                },
                "realmURI": {
                    "type": "string",
                    "example": "devices.insys-tec.net"
                },
                "serialNumber": {
                    "type": "string",
                    "example": "serial123"
                },
                "smartUpdateHistory": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inventory.DeviceUpdateHistory"
                    }
                },
                "smartUpdateInfo": {
                    "$ref": "#/definitions/inventory.DeviceSmartUpdateInfo"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "COMMISSIONING",
                        "MANAGED",
                        "SERVICE"
                    ],
                    "example": "MANAGED"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "url": {
                    "type": "string",
                    "format": "url",
                    "example": "https://192.168.1.1"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.managedDeviceRunCLICommandRequest": {
            "type": "object",
            "required": [
                "command"
            ],
            "properties": {
                "command": {
                    "type": "string"
                }
            }
        },
        "handler.managedDeviceRunCLICommandResponse": {
            "type": "object",
            "properties": {
                "output": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "handler.metricsResource": {
            "type": "object",
            "properties": {
                "data": {},
                "success": {
                    "type": "boolean"
                }
            }
        },
        "handler.moveDevicesRequest": {
            "type": "object",
            "properties": {
                "newGroup": {
                    "type": "string"
                },
                "oldGroup": {
                    "type": "string"
                }
            }
        },
        "handler.newAccountUserResource": {
            "type": "object",
            "required": [
                "users"
            ],
            "properties": {
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.accountUserResource"
                    }
                }
            }
        },
        "handler.organisationListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.OrganisationResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.putTargetsResource": {
            "type": "object",
            "required": [
                "targetType"
            ],
            "properties": {
                "resourceID": {
                    "type": "string"
                },
                "resourceType": {
                    "type": "string"
                },
                "targetIDs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "targetType": {
                    "type": "string"
                }
            }
        },
        "handler.releaseAdd": {
            "type": "object",
            "required": [
                "channel",
                "name",
                "version"
            ],
            "properties": {
                "baseVersion": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "minimumInstalledVersion": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "releaseNotesURL": {
                    "type": "string"
                },
                "updatePackets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.updatePacketAdd"
                    }
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "handler.releasePublish": {
            "type": "object",
            "properties": {
                "enable": {
                    "type": "boolean"
                },
                "releaseNotesURL": {
                    "type": "string"
                }
            }
        },
        "handler.releaseWithUpdatePackets": {
            "type": "object",
            "properties": {
                "baseVersion": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string"
                },
                "majorRelease": {
                    "type": "boolean"
                },
                "minimumInstalledVersion": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "published": {
                    "type": "boolean"
                },
                "releaseNotesURL": {
                    "type": "string"
                },
                "updatePackets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.updatePacket"
                    }
                },
                "updatedAt": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "handler.releaseWithUpdatePacketsResource": {
            "type": "object",
            "properties": {
                "baseVersion": {
                    "$ref": "#/definitions/legacy.FWVersion"
                },
                "channel": {
                    "type": "string"
                },
                "complete": {
                    "type": "boolean"
                },
                "createdAt": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "published": {
                    "type": "boolean"
                },
                "releaseNotesURL": {
                    "type": "string"
                },
                "requiresVersion": {
                    "$ref": "#/definitions/legacy.FWVersion"
                },
                "updatePackets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entities.UpdatePacket"
                    }
                },
                "updatedAt": {
                    "type": "string"
                },
                "version": {
                    "$ref": "#/definitions/legacy.FWVersion"
                }
            }
        },
        "handler.resetPasswordResource": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "password": {
                    "type": "string"
                }
            }
        },
        "handler.setSmartUpdateRequest": {
            "type": "object",
            "properties": {
                "firmwareAutoUpdate": {
                    "type": "boolean"
                },
                "targetDevices": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "handler.settingMapResource": {
            "type": "object",
            "additionalProperties": true
        },
        "handler.smartUpdateVersionWithTimestamp": {
            "type": "object",
            "properties": {
                "activeAt": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "handler.smartUpdateVersions": {
            "type": "object",
            "properties": {
                "currentSmartUpdateVersion": {
                    "type": "string"
                },
                "fallbackSmartUpdateVersion": {
                    "type": "string"
                },
                "nextSmartUpdateVersion": {
                    "type": "string"
                },
                "nextSmartUpdateVersionActiveAt": {
                    "type": "string"
                }
            }
        },
        "handler.updateAccountResource": {
            "type": "object",
            "required": [
                "name",
                "organisationUuid"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid"
                },
                "userFields": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "handler.updateDevicesGroupRequest": {
            "type": "object",
            "properties": {
                "deviceIDs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "groupID": {
                    "type": "string"
                }
            }
        },
        "handler.updateJobListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.updateJobResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.updateJobResource": {
            "type": "object",
            "properties": {
                "arguments": {
                    "$ref": "#/definitions/rollout.UpdateJobArguments"
                },
                "correlationUuid": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "deploymentUuid": {
                    "type": "string"
                },
                "deviceCount": {
                    "type": "integer"
                },
                "deviceProgress": {
                    "$ref": "#/definitions/rollout.DeviceProgresses"
                },
                "executedAt": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "progress": {
                    "type": "integer"
                },
                "retryUpdateJobUuid": {
                    "type": "string"
                },
                "smartUpdate": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.updateManagedDeviceResource": {
            "type": "object",
            "required": [
                "connectionPingInterval",
                "connectionPongTimeout",
                "connectionSessionTimeout",
                "groupUuid",
                "name",
                "serialNumber"
            ],
            "properties": {
                "connectionPingInterval": {
                    "type": "integer",
                    "default": 104,
                    "example": 104
                },
                "connectionPongTimeout": {
                    "type": "integer",
                    "default": 16,
                    "example": 16
                },
                "connectionSessionTimeout": {
                    "type": "integer",
                    "default": 120,
                    "example": 120
                },
                "custom": {
                    "type": "object",
                    "additionalProperties": true
                },
                "firmwareAutoUpdate": {
                    "type": "boolean"
                },
                "groupUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "82f56952-7dfb-4146-8cb9-d7480bb52477"
                },
                "location": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "locationLatitude": {
                    "type": "string",
                    "example": "49.0134297"
                },
                "locationLongitude": {
                    "type": "string",
                    "example": "12.1016236"
                },
                "name": {
                    "type": "string",
                    "example": "router123"
                },
                "serialNumber": {
                    "type": "string",
                    "example": "serial123"
                }
            }
        },
        "handler.updateOrganisationResource": {
            "type": "object",
            "required": [
                "city",
                "countryCode",
                "name"
            ],
            "properties": {
                "address1": {
                    "type": "string",
                    "example": "Hermann-Köhl-Str. 22"
                },
                "address2": {
                    "type": "string",
                    "example": "Floor 2"
                },
                "city": {
                    "type": "string",
                    "example": "Regensburg"
                },
                "countryCode": {
                    "type": "string",
                    "example": "DE"
                },
                "customerNumber": {
                    "type": "string",
                    "example": "123456"
                },
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "name": {
                    "type": "string",
                    "example": "INSYS MICROELECTRONICS GmbH"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-0"
                },
                "postalCode": {
                    "type": "string",
                    "example": "93049"
                },
                "state": {
                    "type": "string",
                    "example": "Bayern"
                }
            }
        },
        "handler.updatePacket": {
            "type": "object",
            "properties": {
                "architecture": {
                    "type": "string"
                },
                "autoupdate": {
                    "type": "boolean"
                },
                "createdAt": {
                    "type": "string"
                },
                "incremental": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "sha256": {
                    "type": "string"
                },
                "signed": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "handler.updatePacketAdd": {
            "type": "object",
            "required": [
                "architecture",
                "name",
                "sha256"
            ],
            "properties": {
                "architecture": {
                    "type": "string"
                },
                "autoupdate": {
                    "type": "boolean"
                },
                "incremental": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "sha256": {
                    "type": "string"
                },
                "signed": {
                    "type": "boolean"
                }
            }
        },
        "handler.updatePacketListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.updatePacketResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.updatePacketResource": {
            "type": "object",
            "required": [
                "fileName",
                "objectPrefix"
            ],
            "properties": {
                "checksumAlgorithm": {
                    "type": "string"
                },
                "contents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/autoupdate.UpdatePacketManifestEntry"
                    }
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "description": {
                    "type": "string",
                    "example": "This update packet upgrades routers to icom OS 4.0"
                },
                "fileName": {
                    "type": "string",
                    "example": "full_update_4.0.tar"
                },
                "hashSum": {
                    "type": "string"
                },
                "linkedDeployments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/autoupdate.UpdatePacketDeployment"
                    }
                },
                "objectPrefix": {
                    "type": "string",
                    "default": "/",
                    "example": "/"
                },
                "selfContained": {
                    "type": "boolean",
                    "example": false
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "AVAILABLE",
                        "UPLOADING",
                        "LINKED"
                    ],
                    "example": "AVAILABLE"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "handler.updateUserResource": {
            "type": "object",
            "required": [
                "emailAddress",
                "lastName",
                "organisationUuid",
                "preferredLanguage"
            ],
            "properties": {
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "firstName": {
                    "type": "string",
                    "example": "INSYS"
                },
                "lastName": {
                    "type": "string",
                    "example": "User"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "ff844b33-1f2a-4c1a-afe2-fccee42bb25f"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-661"
                },
                "preferredLanguage": {
                    "type": "string",
                    "example": "de_DE"
                },
                "salutation": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "username": {
                    "type": "string",
                    "example": "username"
                }
            }
        },
        "handler.userListResource": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/handler.userResource"
                    }
                },
                "start": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "handler.userResource": {
            "type": "object",
            "required": [
                "AcceptedTermsAndConditions",
                "emailAddress",
                "firstName",
                "lastName",
                "middleName",
                "organisationUuid",
                "phoneNumber",
                "preferredLanguage",
                "registeredAt",
                "username"
            ],
            "properties": {
                "AcceptedTermsAndConditions": {
                    "type": "boolean"
                },
                "accountMemberships": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/identity.AccountMembership"
                    }
                },
                "confirmed": {
                    "type": "boolean"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "credential": {
                    "$ref": "#/definitions/identity.Credential"
                },
                "emailAddress": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "firstName": {
                    "type": "string",
                    "example": "INSYS"
                },
                "lastName": {
                    "type": "string",
                    "example": "User"
                },
                "middleName": {
                    "type": "string",
                    "example": "Support"
                },
                "organisationUuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "ff844b33-1f2a-4c1a-afe2-fccee42bb25f"
                },
                "phoneNumber": {
                    "type": "string",
                    "example": "+49 (0) 941 58692-661"
                },
                "preferredLanguage": {
                    "type": "string",
                    "example": "de_DE"
                },
                "registeredAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-07-21T17:32:28Z"
                },
                "release": {
                    "$ref": "#/definitions/admin.Release"
                },
                "salutation": {
                    "type": "string",
                    "example": "Mrs."
                },
                "title": {
                    "type": "string",
                    "example": "Dr."
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "username": {
                    "type": "string",
                    "format": "email",
                    "example": "support@insys-tec.de"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "identity.AccountMembership": {
            "type": "object",
            "properties": {
                "accountUuid": {
                    "type": "string"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "isHomeAccount": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "userUuid": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "identity.Credential": {
            "type": "object",
            "required": [
                "lastLoginAt",
                "lastLogoutAt",
                "locked",
                "passwordSetAt",
                "userInfoLastLoginAt",
                "userInfoLastLoginFailedAt",
                "userInfoLastLoginFailedCount",
                "userUuid"
            ],
            "properties": {
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "lastLoginAt": {
                    "type": "string"
                },
                "lastLogoutAt": {
                    "type": "string"
                },
                "locked": {
                    "type": "boolean"
                },
                "passwordSetAt": {
                    "type": "string"
                },
                "totpEnabled": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "userInfoLastLoginAt": {
                    "type": "string"
                },
                "userInfoLastLoginFailedAt": {
                    "type": "string"
                },
                "userInfoLastLoginFailedCount": {
                    "type": "integer"
                },
                "userUuid": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "inventory.CLITemplateDeployment": {
            "type": "object",
            "properties": {
                "deploymentMethod": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "inventory.CLITemplateKey": {
            "type": "object",
            "required": [
                "valueType"
            ],
            "properties": {
                "arrayType": {
                    "$ref": "#/definitions/inventory.CLITemplateKey"
                },
                "description": {
                    "type": "string"
                },
                "internalProperties": {
                    "$ref": "#/definitions/inventory.InternalKey"
                },
                "key": {
                    "type": "string"
                },
                "objectProperties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inventory.CLITemplateKey"
                    }
                },
                "valueType": {
                    "type": "string",
                    "enum": [
                        "null",
                        "string"
                    ]
                }
            }
        },
        "inventory.DeviceSmartUpdateInfo": {
            "type": "object",
            "properties": {
                "plannedTime": {
                    "type": "string",
                    "example": "2024-09-05T17:28:03Z"
                },
                "status": {
                    "type": "string",
                    "example": "LATEST"
                },
                "targetVersion": {
                    "type": "string",
                    "example": "7.2"
                },
                "timezone": {
                    "type": "string",
                    "example": "Europe/London"
                }
            }
        },
        "inventory.DeviceUpdateHistory": {
            "type": "object",
            "properties": {
                "executedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "prevVersion": {
                    "type": "string",
                    "example": "6.12"
                },
                "progress": {
                    "type": "string",
                    "enum": [
                        "SUCCEEDED",
                        "FAILED"
                    ]
                },
                "targetVersion": {
                    "type": "string",
                    "example": "6.12"
                },
                "timezone": {
                    "type": "string",
                    "example": "Europe/Berlin"
                },
                "updateImage": {
                    "type": "string",
                    "example": "autoupdate-6.12-full.tar"
                }
            }
        },
        "inventory.InternalKey": {
            "type": "object",
            "required": [
                "identifier"
            ],
            "properties": {
                "identifier": {
                    "type": "string",
                    "enum": [
                        "inventory:managed-device",
                        "pki:certificate",
                        "pki:certificate-key",
                        "pki:certificate-authority"
                    ]
                },
                "reference": {
                    "type": "string"
                }
            }
        },
        "legacy.FWVersion": {
            "type": "object"
        },
        "pki.Subject": {
            "type": "object",
            "required": [
                "commonName"
            ],
            "properties": {
                "commonName": {
                    "type": "string",
                    "example": "Name"
                },
                "countryCode": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "DE"
                    ]
                },
                "emailAddress": {
                    "type": "string",
                    "example": "info@insys-icom.de"
                },
                "locality": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Regensburg"
                    ]
                },
                "organization": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "INSYS MICROELECTRONICS GmbH"
                    ]
                },
                "organizationalUnit": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "INSYS icom"
                    ]
                },
                "province": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Bayern"
                    ]
                }
            }
        },
        "pki.SubjectAlternativeNames": {
            "type": "object",
            "properties": {
                "dns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "www.insys-icom.de"
                    ]
                },
                "emailAddress": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "info@insys-icom.de"
                    ]
                },
                "uri": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "devices.insys-tec.net/device-1"
                    ]
                }
            }
        },
        "rollout.CLITemplateValues": {
            "type": "object",
            "additionalProperties": true
        },
        "rollout.DeploymentAutoUpdate": {
            "type": "object",
            "required": [
                "serverAlias"
            ],
            "properties": {
                "serverAlias": {
                    "description": "Server alias is a required field! A deployment can be deleted, this affects\nthe Auto-Update URL on the devices! With an alias you can configure the\ndevices with a common URL and recreate deployments that points to this\nAuto-Update server entry.",
                    "type": "string",
                    "example": "first"
                },
                "serverId": {
                    "description": "ServerID is a display only field, that shows the Auto-Update Server UUID",
                    "type": "string"
                },
                "status": {
                    "description": "Status of the AutoUpdate server",
                    "type": "integer"
                },
                "url": {
                    "type": "string",
                    "example": "http://localhost:8080/autoupdate/default/1650631774078/list.txt"
                }
            }
        },
        "rollout.DeploymentCLITemplate": {
            "type": "object",
            "required": [
                "cliTemplateOverrides",
                "resourceFileType",
                "uuid"
            ],
            "properties": {
                "cliTemplateOverrides": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "routerid": "templateId"
                    }
                },
                "commonValues": {
                    "description": "Apply values for all affected devices.",
                    "$ref": "#/definitions/rollout.CLITemplateValues"
                },
                "customFileName": {
                    "description": "TODO(CHR) rename CustomFileName? only for STORED_ASCII_CONFIG?",
                    "type": "string",
                    "example": "customer.txt"
                },
                "filenamePrefix": {
                    "type": "string",
                    "example": "first_"
                },
                "resourceFileType": {
                    "type": "string",
                    "enum": [
                        "ASCII_CONFIG",
                        "STORED_ASCII_CONFIG"
                    ],
                    "example": "ASCII_CONFIG"
                },
                "targetValues": {
                    "description": "Apply values per target, map key is the device ID (or group ID; depending on DeploymentTargetType)",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/rollout.CLITemplateValues"
                    }
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "f82b4ae0-dd96-4618-b27f-4a115d5398d4"
                }
            }
        },
        "rollout.DeploymentUpdateJob": {
            "type": "object",
            "required": [
                "schedule"
            ],
            "properties": {
                "disabled": {
                    "type": "boolean"
                },
                "schedule": {
                    "$ref": "#/definitions/rollout.DeploymentUpdateJobSchedule"
                },
                "serverUuid": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "updateJobs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/rollout.UpdateJob"
                    }
                }
            }
        },
        "rollout.DeploymentUpdateJobSchedule": {
            "type": "object",
            "properties": {
                "runNow": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "rollout.DeploymentUpdatePacket": {
            "type": "object",
            "properties": {
                "commonUpdatePacket": {
                    "description": "The common update packet will be applied to all targets that have no specified targed update packet",
                    "type": "string",
                    "format": "uuid",
                    "example": "f82b4ae0-dd96-4618-b27f-4a115d5398d4"
                },
                "targetUpdatePackets": {
                    "description": "The target update packet will be applied to the specified target.\nIf the target update packet is given for a target the common update packet will be ignored.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "rollout.DeviceProgressInfo": {
            "type": "object",
            "properties": {
                "details": {},
                "progress": {
                    "type": "integer"
                },
                "timestamp": {
                    "type": "string"
                }
            }
        },
        "rollout.DeviceProgresses": {
            "type": "object",
            "additionalProperties": {
                "type": "array",
                "items": {
                    "$ref": "#/definitions/rollout.DeviceProgressInfo"
                }
            }
        },
        "rollout.UpdateJob": {
            "type": "object",
            "properties": {
                "arguments": {
                    "$ref": "#/definitions/rollout.UpdateJobArguments"
                },
                "correlationUuid": {
                    "type": "integer"
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "deploymentUuid": {
                    "type": "string"
                },
                "deviceCount": {
                    "type": "integer"
                },
                "deviceProgress": {
                    "$ref": "#/definitions/rollout.DeviceProgresses"
                },
                "executedAt": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "progress": {
                    "type": "integer"
                },
                "retryUpdateJobUuid": {
                    "type": "string"
                },
                "smartUpdate": {
                    "type": "boolean"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2019-09-05T17:28:03Z"
                },
                "uuid": {
                    "type": "string",
                    "format": "uuid",
                    "example": "96ad97e6-06ba-44fd-a3de-bfa78c80ea80"
                }
            }
        },
        "rollout.UpdateJobArguments": {
            "type": "object",
            "properties": {
                "client_authentication": {
                    "type": "integer"
                },
                "client_cert": {
                    "type": "string"
                },
                "client_key": {
                    "type": "string"
                },
                "correlation_id": {
                    "type": "integer"
                },
                "download_precondition": {
                    "type": "integer"
                },
                "password": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "server": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "shared.CQRSIDResource": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "c765bbfd-584a-4e44-8d4f-b35f39a520af"
                }
            }
        },
        "shared.ErrorResource": {
            "type": "object",
            "properties": {
                "cause": {
                    "type": "string",
                    "example": "error details"
                },
                "code": {
                    "type": "string",
                    "example": "bad request"
                },
                "message": {
                    "type": "string",
                    "example": "'name' is required"
                },
                "source": {
                    "type": "string",
                    "example": "{\"attribute\": \"name\"}"
                },
                "subject": {
                    "type": "string",
                    "example": "resource-name"
                },
                "subjectType": {
                    "type": "string",
                    "example": "resource"
                }
            }
        },
        "technicalerror.technicalError": {
            "type": "object",
            "properties": {
                "cause": {
                    "type": "string",
                    "example": "net: connection failed"
                },
                "code": {
                    "type": "integer",
                    "example": 9000002
                },
                "message": {
                    "type": "string",
                    "example": "database operation failed"
                }
            }
        }
    },
    "securityDefinitions": {
        "AccessTokenAuth": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}