openapi: 3.0.1 info: version: 2.10.0 description: "Nerve OVDM API to manage:\n - node configuration\n - system configuration\n - system network configuration\n - workloads\n - remote connections\n - dna\n" title: Nerve Node API contact: name: Nerve support email: support@tttech-industrial.com tags: - name: AUTH - name: USERS - name: INITIALIZATION - name: CONFIGURATION description: Node configuration operations (onboarding, retrieving the Management system version, retrieving the node's secure ID, etc.) - name: NODE - name: SETUP NETWORK - name: SYSTEM - name: PROXY SETTINGS - name: CODESYS PROCESS - name: WORKLOAD CODESYS - name: WORKLOADS - name: WORKLOADS NETWORKS - name: WORKLOADS SNAPSHOTS - name: WORKLOADS BACKUPS - name: WORKLOADS COMPOSE - name: WORKLOADS LOGS - name: REPOSITORIES - name: REMOTE CONNECTIONS - name: DNA - name: DATAPATH - name: DOCKER_RESOURCES_VOLUMES - name: DOCKER_RESOURCES_IMAGES paths: /api/auth/login: post: tags: - AUTH operationId: login summary: Log in user description: Log in user and set authorization cookie. security: [] x-permissions: - AUTH:LOGIN requestBody: required: true description: Login credentials consisting of a username in email format and a password. content: application/json: schema: type: object description: Login credentials required: - username - password additionalProperties: false properties: username: description: User's username in email format type: string minLength: 1 maxLength: 1001 password: description: User's password type: string minLength: 1 maxLength: 1001 example: username: demo@nerve.com password: Passw0rd responses: '200': description: User logged in successfully and cookie is set. content: application/json: schema: type: object description: Logged user data required: - firstName - lastName - username - email - roles - permissions properties: username: description: User's username in email format used to log in type: string firstName: description: User's first name type: string lastName: description: User's last name type: string email: description: User's email address type: string roles: description: User's roles. type: string permissions: description: User's permissions in object format, where the keys represent permission names and the values are set to TRUE. type: object additionalProperties: false example: firstName: Demo lastName: Nerve username: demo@nerve.com email: demo@nerve.com roles: admin permissions: UI_NODE_CONFIGURATION:VIEW: true CONFIGURATION:VIEW: true CLOUD_VERSION:VIEW: true SECURE_ID:VIEW: true UI_NODE_CONFIGURATION:EDIT: true CONFIGURATION:EDIT: true headers: Set-Cookie: schema: type: string description: Set-Cookie header example: authorization=a1B2c3.d5e6f7g8h9i0.j_k-l1m2n3o; Max-Age=3600; Path=/; Expires=Wed, 01 Jan 2024 00:00:00 GMT; HttpOnly '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_credentials: value: status: 400 msg: invalid_credentials default_admin_account_deactivated: value: status: 400 msg: default_admin_account_is_deactivated_use_your_personal_credentials_to_log_in '403': description: Access Denied. User(with Management System credentials) does not have required permissions to access this application. content: application/json: schema: type: object description: Message associated with HTTP status code required: - status - msg additionalProperties: false properties: status: description: HTTP status code enum: - 403 msg: description: Response message enum: - access_denied_user_does_not_have_permission_to_access_this_application '429': description: Too many requests made, user temporarily blocked. content: application/json: schema: type: object description: Message associated with HTTP status code required: - status - msg additionalProperties: false properties: status: description: HTTP status code enum: - 429 msg: description: Response message enum: - auth_brute_force_too_many_failed_requests /api/auth/logged-user: get: tags: - AUTH operationId: get_logged_user summary: Get currently logged in user data from database description: Get logged in user from database. x-permissions: - AUTH:VIEW responses: '200': description: User successfully fetched from database. content: application/json: schema: type: object description: Logged user data required: - firstName - lastName - username - email - roles - permissions properties: username: description: User's username in email format used to log in type: string firstName: description: User's first name type: string lastName: description: User's last name type: string email: description: User's email address type: string roles: description: User's roles. type: string permissions: description: User's permissions in object format, where the keys represent permission names and the values are set to TRUE. type: object additionalProperties: false example: username: demo@nerve.com firstName: Demo lastName: Nerve email: demo@nerve.com roles: admin permissions: UI_NODE_CONFIGURATION:VIEW: true CONFIGURATION:VIEW: true CLOUD_VERSION:VIEW: true SECURE_ID:VIEW: true UI_NODE_CONFIGURATION:EDIT: true CONFIGURATION:EDIT: true '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/auth/logout: get: tags: - AUTH operationId: logout summary: Logs out user description: Logs out currently logged in user. x-permissions: - AUTH:LOGOUT responses: '204': description: User successfully logged out. '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/users: get: tags: - USERS operationId: get_users summary: Get a list of all users from the database description: Retrieve a list of all users from the database, including the default admin account if it is active. x-permissions: - USER:LIST responses: '200': description: Users successfully fetched from database. content: application/json: schema: type: object description: Object containing a list of users. required: - users additionalProperties: false properties: users: type: array description: Users from the database minItems: 0 maxItems: 1001 items: type: object required: - firstName - lastName - email - username - roles - id properties: id: description: User's database id type: integer firstName: description: User's first name type: string lastName: description: User's last name type: string email: description: User's email address type: string username: description: User's username type: string roles: description: User's role type: string lastLoggedInAt: description: Timestamp of the user's last login event type: integer nullable: true additionalProperties: false example: users: - firstName: Demo lastName: Nerve username: demo@nerve.com email: demo@nerve.com roles: admin lastLoggedInAt: 1716803144649 id: 1 '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden delete: tags: - USERS operationId: delete_user summary: Delete all users, or delete a specific user from the database description: Delete all users from the database, or delete a specific user defined via a query parameter 'username'. If all users are deleted, the default admin account is reactivated. x-permissions: - USER:DELETE parameters: - name: username in: query required: false allowReserved: true description: Username of the user to be deleted schema: description: User's username in email format type: string minLength: 1 maxLength: 1001 responses: '204': description: The user was successfully deleted, or all users were deleted and the default account was reactivated. '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/users/change-password: post: tags: - USERS operationId: change_password summary: Change user password description: Password modification is restricted to the default admin account. MS users are unable to change their passwords using the LocalUI application, but can do so through MS. x-permissions: - USER_PASSWORD:CHANGE requestBody: required: true description: A password change object containing the username, oldPassword, newPassword and newPasswordConfirmation. content: application/json: schema: type: object description: Representing the data required to change a user's password required: - username - oldPassword - newPassword - newPasswordConfirmation properties: username: description: User's username in email format type: string minLength: 1 maxLength: 1001 oldPassword: description: User's old password that is currently in the database. type: string minLength: 1 maxLength: 1001 newPassword: description: User's new password that will replace the old password in the database. type: string minLength: 8 maxLength: 100 pattern: (?=.*[a-z])(?=.*[A-Z])(?=.*\d).+ newPasswordConfirmation: description: The same values as the new password, used as a confirmation that the new password was entered correctly. type: string minLength: 1 maxLength: 1001 additionalProperties: false example: username: demo@nerve.cloud oldPassword: Passw0rd newPassword: Passw0rd1 newPasswordConfirmation: Passw0rd1 responses: '200': description: Password changed successfully. content: application/json: schema: type: object description: Successful response after a user's password has been changed required: - message properties: message: description: Message confirming that the password was successfully changed. type: string enum: - Password changed successfully. additionalProperties: false example: message: Password changed successfully. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Response returned when a user is not allowed to change password. - Users logged in with their Management System credentials cannot changed their password on the node - Default admin cannot change password if the account is deactivated content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: ms_user_cannot_change_password: value: status: 403 msg: Changing account password through this application is not allowed default_account_inactive: value: status: 403 msg: Account is deactivated, and its password cannot be changed. user_can_change_only_own_password: value: status: 403 msg: Changing passwords for other users is not allowed. /api/init: post: security: - basicAuth: [] summary: Configuration for node connection to cloud tags: - INITIALIZATION x-permissions: - NODE:INIT description: Configuration for node connection to cloud, as well as for LocalUI authentication. operationId: set_configuration requestBody: description: Object containing the cloud_url (the URL of the cloud server the node will connect to), local_ui_pwd (password for accessing the LocalUI), system_pwd (system password for node authentication) and serial_number (unique identifier of the node). content: application/json: schema: required: - cloud_url - local_ui_pwd - serial_number - system_pwd type: object description: Object including properties to set up the node and onboard it to the MS instance additionalProperties: false properties: cloud_url: description: URL address representing the location on the cloud platform. maxLength: 45 minLength: 4 pattern: ^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$ type: string example: dev.oblo.nerve.cloud local_ui_pwd: description: Local UI password used to access the local user interface.Change local UI password maxLength: 45 minLength: 8 pattern: ^[a-zA-Z0-9- ]+$ type: string example: examplePassw0rd system_pwd: description: User system password used for authentication. maxLength: 45 minLength: 4 pattern: ^[a-zA-Z0-9- ]+$ type: string example: rtrk serial_number: description: The serial number of the node. example: MFNKACA00000 type: string maxLength: 12 minLength: 12 pattern: ([A-Z0-9]){12} required: true responses: '200': description: Configuration successfully changed. content: text/plain: schema: type: string description: Node secure id minLength: 16 maxLength: 16 pattern: ([A-Za-z]|\d){16} example: 539B2B460CBC934B '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized /api/setup/configurations: get: summary: Get the current node configuration tags: - CONFIGURATION operationId: get_node_configuration description: "Used to retrieve the current node configuration.\n If the node is not connected (onboarded) to any Management system, the node information fields (cloud URL and serial number) will be\ \ present but empty." x-permissions: - CONFIGURATION:VIEW responses: '200': description: The current node configuration returned. content: application/json: schema: type: object description: Object representing the current node configuration required: - protocol - timezone - serialNumber - cloudUrl additionalProperties: false properties: protocol: type: string description: The name of protocol used for MQTT. Only WSS is supported. enum: - wss timezone: description: The timezone or empty if it isn't defined type: object required: - name additionalProperties: false properties: name: type: string description: The name of timezone minLength: 0 maxLength: 1001 pattern: .* nullable: true serialNumber: oneOf: - description: The serial number of the node type: string maxLength: 12 minLength: 12 pattern: ([A-Z0-9]){12} - type: string description: Empty string enum: - '' minLength: 0 maxLength: 0 pattern: ^$ cloudUrl: type: string description: The url of Management System where node is connected or an empty string if node is not yet connected(onboarded) example: cloudUrl: angels.dev.nerve.cloud serialNumber: 0000000000NS protocol: wss timezone: name: Etc/UTC '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Response received when an unexpected error occurred while reading node configuration. Failed to read configuration. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* post: summary: Configure node tags: - CONFIGURATION operationId: set_node_configuration description: Used to configure the node (connect the node to a Management system) x-permissions: - CONFIGURATION:EDIT requestBody: required: true description: Node configuration request payload content: application/json: schema: type: object description: Object representing the new node configuration to set required: - protocol - cloudUrl - serialNumber - timezone additionalProperties: false properties: protocol: type: string description: The name of protocol used for MQTT. Only WSS is supported. enum: - wss cloudUrl: type: string description: Domain of Management system minLength: 0 maxLength: 1001 pattern: .* serialNumber: description: The serial number of the node type: string maxLength: 12 minLength: 12 pattern: ([A-Z0-9]){12} timezone: description: Timezone name information type: object required: - name additionalProperties: false properties: name: type: string description: The name of timezone minLength: 0 maxLength: 1001 pattern: .* nullable: true example: cloudUrl: angels.dev.nerve.cloud serialNumber: 0000000000NS protocol: wss timezone: name: Europe/Bucharest responses: '200': description: Request successful. content: application/json: schema: description: Object representing the response for a successful operation oneOf: - type: object required: - configurationUpdated additionalProperties: false properties: configurationUpdated: type: boolean description: Indicate if the configuration has been updated - type: object required: - configurationUpdated - message - message_code additionalProperties: false properties: configurationUpdated: type: boolean description: Indicate if the configuration has been updated or not message: type: string description: Reason why configuration updates are failed/not possible message_code: type: string description: Error code enum: - NODE_UPDATE_IN_PROGRESS - WORKLOAD_INSTALLATION_IN_PROGRESS - CONFIGURATION_ALREADY_SET_MESSAGE - SET_TIMEZONE_FAIL - REBOOT_FAIL examples: configuration_updated: summary: Configuration is updated value: configurationUpdated: true configuration_not_updated: summary: Configuration is not updated value: configurationUpdated: false message: spawn timedatectl ENOENT message_code: SET_TIMEZONE_FAIL '400': description: Bad request. Invalid parameters. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 400 msg: Invalid cloud url. Must be in FQDN format. '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: oneOf: - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 500 msg: Expected a string but received a undefined /api/setup/configurations/cloud-version: get: summary: Get Management system version(cloud version) tags: - CONFIGURATION operationId: get_cloud_version description: Used to obtain a version of the Management system. x-permissions: - CLOUD_VERSION:VIEW parameters: - name: url in: query required: true description: Domain of Management system which version you want to obtain schema: type: string minLength: 3 maxLength: 1001 pattern: .* responses: '200': description: Request successful, version of provided Management system returned. content: application/json: schema: type: object description: Object containing 'currentVersion' property, which represents the version of Management system required: - currentVersion - gitCommit - buildDate additionalProperties: false properties: currentVersion: type: string description: The version of Management system gitCommit: type: string description: Management system commit buildDate: type: string description: Management system build date example: currentVersion: 2.8.0 gitCommit: c93edd06c418491865aa477145d6caadfb001ac6 buildDate: '2024-06-27' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: Response is returned when Management system cannot be reached due to non-existent url (getaddrinfo ENOTFOUND). content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 404 msg: getaddrinfo ENOTFOUND test.dev.com '500': description: Response when the Management system version could not be returned due to an invalid response format. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/setup/configurations/secure-id: get: summary: Get node secure id tags: - CONFIGURATION operationId: get_node_secure_id description: Used to obtain a secure id of the node. x-permissions: - SECURE_ID:VIEW responses: '200': description: Request successful. The secure id of the node returned. content: application/json: schema: type: object description: Object containing 'secureid' property, which represents the secure ID of the node required: - secureId additionalProperties: false properties: secureId: description: The secure ID of the node, or an empty string if the node is not onboarded. oneOf: - type: string description: Node secure id minLength: 16 maxLength: 16 pattern: ([A-Za-z]|\d){16} - type: string enum: - '' example: secureId: 52F4E8CA6B9BDADA '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Request failed. Failed to obtain the secure id or the response data does not match the schema. content: application/json: schema: oneOf: - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: validation_err: value: status: 500 message: 'validator message: /response/secureId must NOT have more than 16 characters' errors: - path: /response/secureId message: must NOT have more than 16 characters errorCode: maxLength.openapi.validation /api/setup/configurations/secureId: get: summary: Get node secure id tags: - CONFIGURATION operationId: get_node_secure_id_deprecated description: 'Used to obtain a secure id of the node. The ''/api/setup/configurations/secureId'' is **deprecated** and will no longer be supported. Switch to the new and improved ''/api/setup/configurations/secure-id''.' deprecated: true x-permissions: - SECURE_ID:VIEW responses: '200': description: Request successful. The secure id of the node returned. content: application/json: schema: type: object description: Object containing 'secureid' property, which represents the secure ID of the node required: - secureId additionalProperties: false properties: secureId: description: The secure ID of the node, or an empty string if the node is not onboarded. oneOf: - type: string description: Node secure id minLength: 16 maxLength: 16 pattern: ([A-Za-z]|\d){16} - type: string enum: - '' example: secureId: 52F4E8CA6B9BDADA '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Request failed. Failed to obtain the secure id or the response data does not match the schema. content: application/json: schema: oneOf: - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: validation_err: value: status: 500 message: 'validator message: /response/secureId must NOT have more than 16 characters' errors: - path: /response/secureId message: must NOT have more than 16 characters errorCode: maxLength.openapi.validation /api/setup/node/password: post: summary: Set new password for the node tags: - NODE x-permissions: - SSH_PASSWORD:CHANGE description: Set new password for the node. operationId: set_node_password parameters: - name: type in: query description: Type for module which password should be changed. required: true schema: type: string enum: - ssh requestBody: content: application/json: schema: required: - currentPassword - newPassword - newPasswordConfirmation additionalProperties: false type: object description: Object containing the data required to change a node's password. properties: currentPassword: description: The current password of the node. type: string maxLength: 45 minLength: 1 example: Passw0rd newPassword: maxLength: 45 minLength: 8 description: The new password for the node. type: string pattern: (?=.*[a-z])(?=.*[A-Z])(?=.*\d).+ example: Passw0rd newPasswordConfirmation: maxLength: 45 minLength: 8 description: Confirmation of the new password for the node. type: string example: Passw0rd required: true responses: '200': description: Password successfully changed. content: application/json: schema: additionalProperties: false type: object description: Object representing the response when a password has been changed successfully required: - message properties: message: type: string description: Message indicating that the password has been changed. example: message: Password successfully changed. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/setup/node/info: get: summary: Get node information tags: - NODE x-permissions: - NODE:INFO description: Retrieves basic information about the node. The response includes the node's name, IP address, hardware model, list of capabilities, status of VM backup/snapshot features, and the status of data service components. operationId: get_node_info responses: '200': description: Successful response. Returns node information retrieved from the device. content: application/json: schema: example: nodeName: NodeTest hardwareModel: mfn-100 ipAddress: 10.85.10.54 capability: - Docker Container - Docker Compose isVmBackupAllowedOnTheNode: false isVmSnapshotAllowedOnTheNode: false dsComponents: - ds: supervisor show: true containerName: nerve-ds-node_supervisor-be_1 required: - nodeName - ipAddress - capability - isVmBackupAllowedOnTheNode - isVmSnapshotAllowedOnTheNode - hardwareModel - dsComponents type: object description: Object containing basic information about the node and details about available features (such as vmSnapshot and vmBackup) additionalProperties: false properties: nodeName: description: The name of the node. type: string hardwareName: description: The name of the hardware associated with the node. type: string ipAddress: description: The IP address of the node. type: string capability: description: Array of node reported capabilities. type: array minItems: 0 maxItems: 1001 items: type: string isVmBackupAllowedOnTheNode: type: boolean description: Flag indicating weather Backup feature is allowed on the node. isVmSnapshotAllowedOnTheNode: type: boolean description: Flag indicating weather Backup feature is allowed on the node. hardwareModel: type: string description: The name of the hardware model (hardware model must be defined in the database). dsComponents: description: An array containing data-service components associated with the node. type: array minItems: 0 maxItems: 1001 items: type: object required: - ds - show additionalProperties: false properties: ds: type: string description: The name of data-service component. show: type: boolean description: Whether to show or hide the UI of the data-service component. containerName: type: string description: The name of container. '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/version: get: summary: Get node version tags: - NODE x-permissions: - NODE_VERSION:VIEW description: Get node version. operationId: get_node_version responses: '200': description: Successful operation content: application/json: schema: example: versionName: 2.8.0 buildDate: 01/07/2024 gitCommit: 1ca834b required: - versionName additionalProperties: false type: object description: Object containing information about node version. properties: versionName: type: string description: Node version buildDate: type: string description: Build date gitCommit: type: string description: Git commit '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/setup/network/interfaces: get: summary: Get network configuration tags: - SETUP NETWORK x-permissions: - NETWORK_INTERFACE:VIEW description: Get current setup of the network interfaces. operationId: get_network_configuration responses: '200': description: Successful operation. The network configuration returned. content: application/json: schema: type: object description: Object containing the list of network interfaces and the status of the configuration process additionalProperties: false properties: interfaces: minItems: 1 maxItems: 1001 type: array description: List of network interfaces items: type: object properties: interface_name: type: string description: The name of the network interface. This field specifies the logical name assigned to a network interface. It helps in identifying different interfaces such as WAN or external interfaces that connect to different parts of the network. enum: - wan - extern1 - extern2 - extern3 allocation: type: string description: "The method of IP address allocation for the network interface. This field indicates how the IP address for the interface is assigned. - If the allocation is 'dhcp',\ \ the IP address of the port will be assigned \n dynamically by the DHCP server, making it easier to manage addresses centrally.\n- If the allocation is 'static', the IP address\ \ of the port will be manually \n defined, providing a fixed and permanent address which is crucial for servers \n or services requiring stable IP addresses.\n- If the allocation\ \ is 'unconfigured', the port is disabled for the host (it has \n no IP address), but can still be used for virtual machines with bridged interfaces, \n which is useful in\ \ virtualized environments where the host does not need direct \n network access." enum: - dhcp - static - unconfigured ip_address: description: The IP address assigned to the interface. This is the unique identifier assigned to the network interface which allows it to communicate within the network. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ netmask: description: The netmask associated with the IP address. This defines the subnet of the IP address, helping to determine which part of the IP address denotes the network and which part denotes the host. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ domainNames: description: The domain names associated with the interface. These are human-readable names that map to the IP address of the interface, used for easier identification and access within the network. This can either be a single domain name as a string or an array of domain names. anyOf: - type: string - type: array items: type: string minLength: 0 maxLength: 1001 gateway: description: The IP address of the gateway associated with the interface. This is the router address that serves as the access point or IP router that a network device uses to send information to a different network or the internet. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ disabledWanTraffic: description: Block incoming traffic on the WAN interface type: boolean default: false status: type: string description: The status of the configuration process enum: - INIT - IN_PROGRESS - FAILURE - SUCCESS example: status: INIT interfaces: - interface_name: wan allocation: dhcp ip_address: 0.0.0.0 netmask: 0.0.0.0 gateway: 0.0.0.0 domainNames: - 127.0.0.11 - interface_name: extern1 allocation: unconfigured ip_address: 0.0.0.0 netmask: 0.0.0.0 gateway: 0.0.0.0 domainNames: [] - interface_name: extern2 allocation: unconfigured ip_address: 0.0.0.0 netmask: 0.0.0.0 gateway: 0.0.0.0 domainNames: [] - interface_name: extern3 allocation: unconfigured ip_address: 0.0.0.0 netmask: 0.0.0.0 gateway: 0.0.0.0 domainNames: [] '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/setup/network/check-update-status: get: summary: Get network update status tags: - SETUP NETWORK x-permissions: - NETWORK_UPDATE_STATUS:VIEW description: Retrieve the current status of network updates. operationId: get_network_update_status responses: '200': description: Successful operation. The current status of network updates returned. content: application/json: schema: type: object description: Object containing the list of network interfaces and the network configuration status properties: status: type: string description: The status of the configuration process enum: - INIT - IN_PROGRESS - FAILURE - SUCCESS interfaces: type: array minItems: 0 maxItems: 1001 description: List of network interfaces items: type: object properties: interface_name: type: string description: The name of the network interface. This field specifies the logical name assigned to a network interface. It helps in identifying different interfaces such as WAN or external interfaces that connect to different parts of the network. enum: - wan - extern1 - extern2 - extern3 status: description: Status of network updates. type: boolean required: - interface_name - status required: - status - interfaces example: status: SUCCESS interfaces: - interface_name: extern3 status: true '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/setup/network/init-config-update: post: summary: Initiating network interface update tags: - SETUP NETWORK x-permissions: - NETWORK_INTERFACE:EDIT description: Initiating network interface update. operationId: initiating_network_update requestBody: description: Initiating network interface update. required: true content: application/json: schema: type: object description: Object containing the list of network interface configurations to be applied required: - configurations additionalProperties: false properties: configurations: type: array minItems: 1 maxItems: 1001 description: List of network interface configurations to be applied items: type: object additionalProperties: false properties: interface_name: type: string description: The name of the network interface. This field specifies the logical name assigned to a network interface. It helps in identifying different interfaces such as WAN or external interfaces that connect to different parts of the network. enum: - wan - extern1 - extern2 - extern3 allocation: type: string description: "The method of IP address allocation for the network interface. This field indicates how the IP address for the interface is assigned. - If the allocation is 'dhcp',\ \ the IP address of the port will be assigned \n dynamically by the DHCP server, making it easier to manage addresses centrally.\n- If the allocation is 'static', the IP address\ \ of the port will be manually \n defined, providing a fixed and permanent address which is crucial for servers \n or services requiring stable IP addresses.\n- If the allocation\ \ is 'unconfigured', the port is disabled for the host (it has \n no IP address), but can still be used for virtual machines with bridged interfaces, \n which is useful in virtualized\ \ environments where the host does not need direct \n network access." enum: - dhcp - static - unconfigured ip_address: description: The IP address assigned to the interface. This is the unique identifier assigned to the network interface which allows it to communicate within the network. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ netmask: description: The netmask associated with the IP address. This defines the subnet of the IP address, helping to determine which part of the IP address denotes the network and which part denotes the host. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ domainNames: description: The domain names associated with the interface. These are human-readable names that map to the IP address of the interface, used for easier identification and access within the network. This can either be a single domain name as a string or an array of domain names. anyOf: - type: string - type: array items: type: string minLength: 0 maxLength: 1001 gateway: description: The IP address of the gateway associated with the interface. This is the router address that serves as the access point or IP router that a network device uses to send information to a different network or the internet. It should be in the standard IPv4 format. type: string format: ipv4 minLength: 0 maxLength: 15 pattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ disabledWanTraffic: description: Block incoming traffic on the WAN interface type: boolean default: false required: - interface_name - allocation - ip_address - netmask examples: wan: value: configurations: - allocation: dhcp domainNames: - 192.168.231.186 - 192.168.231.189 gateway: 0.0.0.0 interface_name: wan ip_address: 10.85.10.63 netmask: 255.255.255.0 unconfigured: value: configurations: - allocation: unconfigured interface_name: extern2 ip_address: 0.0.0.0 netmask: 0.0.0.0 static: value: configurations: - allocation: static interface_name: extern3 domainNames: '' ip_address: 10.85.10.63 netmask: 255.255.255.0 responses: '200': description: Successful initialization of network interface update. content: application/json: schema: type: object description: Object containing 'message' property which indicating the network interface update has been initiated properties: message: type: string description: Message indicating that the network interface update has been initiated example: message: '' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error required: - message additionalProperties: false properties: message: type: string description: Error message example: message: Fields interface_name and allocation are required for each interface! '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/system/status: get: summary: Get an overview of the system state tags: - SYSTEM description: Get an overview of the system state including CPU, memory, disk usage, current memory usage, current Docker space usage, and current VM space usage. operationId: get_system_status x-permissions: - SYSTEM:STATUS responses: '200': description: Success operation content: application/json: schema: type: object description: Object containing information about system status, including CPU and memory usage/availability. additionalProperties: false required: - cpy_history - memory_history - mem - docker - lvm - docker_history properties: system_start_timestamp: type: number description: Timestamp indicating the system start time. This value represents the time in seconds since a specific epoch (e.g., Unix epoch). cpy_history: type: array description: CPU usage (in percent) history. Sampled each 10 seconds. minItems: 0 maxItems: 1001 items: type: number memory_history: type: array description: Memory usage (in percent) history. Sampled each 10 seconds. minItems: 0 maxItems: 1001 items: type: number docker_history: type: array description: History of Docker container resource usage. minItems: 0 maxItems: 1001 items: type: number mem: type: object properties: total: type: number description: Total amount of memory free: type: number description: Unused amount of memory(available memory) percent: type: number description: Percentage memory usage description: Current memory usage (amount in bytes). Sampled every 10 seconds. docker: type: object properties: total: type: number description: Total amount of memory free: type: number description: Unused amount of memory(available memory) used: type: number description: The amount memory in use unit: type: string description: Unit of measurement for memory percent: type: number description: Percentage memory usage ovdm_version: type: string description: Version of the data format. Determines how statistics are processed on the UI. description: Current docker space usage (amount in bytes). Sampled every 10 seconds. lvm_history: type: array description: Disk usage (in percent) history. Sampled each minute. minItems: 0 maxItems: 1001 items: type: number lvm: type: object properties: total: type: number description: Total amount of VM space. free: type: number description: Available VM space. used: type: number description: VM space in use unit: type: string description: Unit of measurement percent: type: number description: Percentage of VM space used ovdm_version: type: string description: Version of the data format. Determines how statistics are processed on the UI. description: Current VM space usage (amount in bytes). Sampled every 10 seconds. example: cpy_history: - 13.272003649992762 - 9.826248313090419 memory_history: - 70.96332568352194 - 70.97511972048622 docker_history: - 80 - 80 lvm_history: - 21.71875 - 21.71875 system_start_timestamp: 957640.35 mem: total: 33479.156 free: 9691.521 percent: 71.05207458823028 docker: total: 1 free: 0.8 used: 0.2 unit: TB percent: 80 ovdm_version: '2.0' lvm: total: 64 free: 13.9 used: 50.1 unit: GB percent: 21.71875 ovdm_version: '2.0' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/system/reboot: post: summary: Initiates a system reboot tags: - SYSTEM description: Initiates a system reboot. This route allows for initiating a system reboot. operationId: node_system_reboot x-permissions: - SYSTEM:REBOOT requestBody: required: true content: application/json: schema: required: - source type: object description: Specifies the source for initiating the system reboot. Possible values are 'management_system' and 'local_ui' properties: source: type: string description: Indicates from which application the request is initiated. enum: - local_ui - management_system example: local_ui responses: '200': description: OK content: application/json: schema: type: object description: Object containing information that the node reboot action has been initiated properties: message: type: string enum: - NODE_REBOOT_INITIATED description: Rebooting initiated. example: message: NODE_REBOOT_INITIATED '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain /api/system/info: get: summary: Get system information tags: - SYSTEM description: Retrieves system information, returning an array of capabilities. The "capabilities" field represents system node reported capabilities, which are strings indicating various capabilities of the system. operationId: get_system_info x-permissions: - SYSTEM:INFO responses: '200': description: Success operation. Returns system information. content: application/json: schema: type: object description: Object containing a list of the node capabilities additionalProperties: false required: - capabilities properties: capabilities: type: array description: System node reported capabilities minItems: 0 maxItems: 1001 items: type: string enum: - Docker Container - Docker Compose - Logging and Monitoring via Fluent Bit - Virtualization via XEN - Virtualization via ACRN - Virtualization via KVM - Virtualization - CODESYS PLC - Nerve Data Services - Audit Logs example: capabilities: - Docker Container - Docker Compose - Logging and Monitoring via Fluent Bit - Virtualization via XEN - Virtualization via ACRN - Virtualization via KVM - Virtualization - CODESYS PLC - Nerve Data Services - Audit Logs '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/system/network: get: summary: Get the current network state tags: - SYSTEM x-permissions: - SYSTEM_NETWORK:VIEW description: Get the current network state of the node. operationId: get_network_state responses: '200': description: Success operation. Returns current network state. content: application/json: schema: type: object description: Object containing 'status' property which represents the network state on the node additionalProperties: false required: - status properties: status: description: The current network state of the node. Can be "on" or "off". enum: - 'on' - 'off' type: string example: status: 'on' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* put: summary: Set network state tags: - SYSTEM x-permissions: - SYSTEM_NETWORK:EDIT description: Set network state to either "on" or "off". When sending a request, include the desired network state as a string ("on" to turn the network on, "off" to turn it off). In the case of disabling the network, the node on the management system (MS) will become offline and cannot be managed, as if its power was physically disconnected. operationId: set_network_state requestBody: content: application/json: schema: type: object description: Object containing the 'network' property representing the network state to be set (off/on). properties: network: description: Network state enum: - 'on' - 'off' type: string example: 'on' required: true responses: '200': description: Success operation. content: application/json: schema: additionalProperties: false required: - result - message type: object description: Object containing properties indicating whether the operation was successful or not properties: result: type: number enum: - 0 - 2 description: 0 for success, 2 if error happens message: type: string description: Error message appearing in case when result is >1 example: result: 0 message: Network set '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/system/offboard: post: summary: Initiates node offboarding tags: - SYSTEM description: Initiates node offboarding. This route allows user to remove node from configured Management System. operationId: node_offboarding x-permissions: - NODE:OFFBOARD responses: '202': description: Successful operation content: application/json: schema: type: string description: Represents a successful response message minLength: 1 maxLength: 1001 pattern: ^[\x20-\x7E\t\n\r]*$ example: Node offboarding process has started. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/system/audit-logs: get: summary: Download audit logs in a zip archive description: Download current audit log file and archives created by logrotate, compressed in a zip archive. tags: - SYSTEM x-permissions: - NODE:VIEW_AUDIT_LOGS operationId: download_audit_logs responses: '200': description: The request to download audit log files has been successfully fulfilled. content: application/octet-stream: schema: type: string format: binary description: Represents binary data minLength: 1 maxLength: 255 headers: Content-Disposition: schema: type: string description: Value of the Content-Disposition header minLength: 38 maxLength: 51 pattern: ^attachment; filename=(?:[A-Z0-9]{12}_)?\d{8}_\d{4}\.zip$ example: attachment; filename=SERIALNUMBER_20241114_1200.zip '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/system/debug-logs-archive: get: summary: Download debug logs in a zip archive description: Download debug logs archive, compressed in a zip archive. tags: - SYSTEM x-permissions: - NODE:DOWNLOAD_DEBUG_LOGS operationId: download_debug_logs responses: '200': description: The request to download debug logs files has been successfully fulfilled. content: application/octet-stream: schema: type: string format: binary description: Represents binary data minLength: 1 maxLength: 255 headers: Content-Disposition: schema: type: string description: Value of the Content-Disposition header minLength: 20 maxLength: 51 pattern: ^attachment; filename=([a-zA-Z]{13}).tar.gz$ example: attachment; filename=nerveNodeDump.tar.gz '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/proxy-settings: get: summary: Get proxy configuration tags: - PROXY SETTINGS x-permissions: - PROXY_SETTINGS:VIEW description: Get proxy configuration from the environment file. operationId: get_proxy_configuration responses: '200': description: Successful operation. The proxy configuration returned. content: application/json: schema: type: object description: Object containing the current configuration for the proxy server additionalProperties: false properties: enabled: description: Activate or deactivate proxy settings. type: boolean default: false http_proxy: description: This system environment variable is used to specify the HTTP proxy server responsible for mediating HTTP requests sent to the Internet. An HTTP proxy consists of an address and a port. type: string minLength: 0 maxLength: 28 pattern: ^(http:\/\/(?:[0-9]{1,3}\.){3}[0-9]{1,3}:\d+)?|^$ default: '' https_proxy: description: This system environment variable is used to specify the HTTPS proxy server responsible for mediating HTTPS requests sent to the Internet. An HTTPS proxy consists of an address and a port. type: string minLength: 0 maxLength: 29 pattern: ^(https?:\/\/(?:[0-9]{1,3}\.){3}[0-9]{1,3}:\d+)?|^$ default: '' no_proxy: description: This system environment variable is used to specify domains or IP addresses that will not be routed through a proxy server, thereby avoiding routing certain requests through a proxy server. type: string minLength: 0 maxLength: 1001 default: '' username: description: Proxy server credentials. type: string minLength: 0 maxLength: 1001 default: '' example: http_proxy: http://0.0.0.1:1 https_proxy: https://0.0.0.1:1 no_proxy: '' username: '' enabled: true '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden post: summary: Set proxy configuration tags: - PROXY SETTINGS x-permissions: - PROXY_SETTINGS:EDIT description: Setting up proxy configuration entails writing the necessary data into the APT proxy configuration file. operationId: set_proxy_configuration requestBody: description: Set proxy configuration. required: true content: application/json: schema: type: object description: Object containing the configuration for the proxy server additionalProperties: false properties: enabled: description: Activate or deactivate proxy settings. type: boolean default: false http_proxy: description: This system environment variable is used to specify the HTTP proxy server responsible for mediating HTTP requests sent to the Internet. An HTTP proxy consists of an address and a port. type: string minLength: 0 maxLength: 28 pattern: ^(http:\/\/(?:[0-9]{1,3}\.){3}[0-9]{1,3}:\d+)?|^$ default: '' https_proxy: description: This system environment variable is used to specify the HTTPS proxy server responsible for mediating HTTPS requests sent to the Internet. An HTTPS proxy consists of an address and a port. type: string minLength: 0 maxLength: 29 pattern: ^(https?:\/\/(?:[0-9]{1,3}\.){3}[0-9]{1,3}:\d+)?|^$ default: '' no_proxy: description: This system environment variable is used to specify domains or IP addresses that will not be routed through a proxy server, thereby avoiding routing certain requests through a proxy server. type: string minLength: 0 maxLength: 1001 default: '' username: description: Proxy server credentials. type: string minLength: 0 maxLength: 1001 default: '' password: description: Proxy server credentials. type: string minLength: 0 maxLength: 1001 default: '' required: - http_proxy - https_proxy example: http_proxy: http://0.0.0.1:1 https_proxy: https://0.0.0.1:1 no_proxy: '' username: '' password: '' enabled: true responses: '204': description: The proxy configuration successfully modified. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/codesys-process/restart: get: summary: Restart the CODESYS application tags: - CODESYS PROCESS x-permissions: - WORKLOAD_CODESYS:RESTART description: Restart the CODESYS application after the license has been activated. operationId: restart_codesys responses: '200': description: The CODESYS application has been successfully restarted after the license activation. '404': description: The resource is temporarily unavailable. The node cannot reach the Codesys controller. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: codesys_unavaliable: value: status: 404 msg: Unable to get Codesys rpc. /api/workload/codesys/download: get: summary: Download CODESYS application as zip archive tags: - WORKLOAD CODESYS x-permissions: - WORKLOAD_CODESYS:DOWNLOAD description: Method is used to download CODESYS application as zip archive.The response contains the zip file. operationId: codesys_download responses: '200': description: The request to download the CODESYS application as a zip archive has been successfully fulfilled. content: application/octet-stream: schema: type: string format: binary description: Represents binary data headers: Content-Disposition: schema: type: string description: Value of the Content-Disposition header example: attachment; filename=file_name.zip '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource is temporarily unavailable. The node cannot reach the Codesys controller. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: codesys_unavaliable: value: status: 404 msg: Unable to get Codesys rpc. /api/workload/codesys/upload: post: security: [] summary: Upload CODESYS zip archive tags: - WORKLOAD CODESYS x-permissions: - WORKLOAD_CODESYS:UPLOAD description: This route serves as an intermediate step in the 'download' request and is not intended for direct end-user usage. operationId: upload_codesys requestBody: description: Includes codesys archive required: true content: application/octet-stream: schema: type: object description: CODESYS application zip archive properties: file: type: string format: binary minLength: 1 description: The file to upload. responses: '204': description: The upload of the CODESYS application zip archive has been successfully completed. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/workloads/deploy: post: summary: Deploy workload description: Used to deploy workload by uploading archive. operationId: deploy_workload tags: - WORKLOADS x-permissions: - WORKLOAD:DEPLOY parameters: - name: action in: query description: Defines if deployment is done as update of already deployed workload required: false schema: type: string enum: - update - deploy requestBody: description: Includes archived workload required: true content: multipart/form-data: schema: type: object description: Object contains 'file' property, which represents the file to be uploaded properties: file: description: Archived workload file type: string format: binary minLength: 1 responses: '204': description: No response content if workload is successfully deployed. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '409': description: Conflict content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: docker_compose_image_not_found: value: status: 409 msg: Local Docker image not found. Please try deploying the workload again. '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads: get: summary: Get list of workloads installed on the system operationId: list_deployed_workloads tags: - WORKLOADS description: Used to retrieve the list of workloads installed on the system. x-permissions: - WORKLOAD:LIST responses: '200': description: List of workloads installed on the system. content: application/json: schema: type: object description: Object containing the list of workloads. required: - workloads additionalProperties: false properties: workloads: type: array description: List of workloads installed on the system. minItems: 0 maxItems: 1001 items: type: object description: Workload payload additionalProperties: false required: - uniqueId - ovdmStatus - name - type - workloadId properties: uniqueId: description: Workload unique identifier in the queue type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ deviceId: type: integer description: Id of the workload installed on system minimum: 1 status: type: integer description: Status enumeration that corresponds to the state of deployed workload minimum: 0 maximum: 13 ovdmStatus: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 example: workloads: - uniqueId: 1d92452a-554c-4937-8595-0f233b195897 deviceId: 664 status: 8 ovdmStatus: Installed name: Codesys_Workload type: codesys workloadId: 65f43b4ea7316d23e867979a - uniqueId: 851f5101-213b-4343-bea6-fad3c9c0d62c deviceId: 359 status: 8 ovdmStatus: Installed name: tinycore_kvm type: vm workloadId: 661508ddd52be6af23415b69 - uniqueId: 09e834a8-e5c1-4821-a700-4b4d009a509d deviceId: 266 status: 10 ovdmStatus: Installed name: test docker M type: docker workloadId: 6615213ae61e8e68b2ec8a62 - uniqueId: e1278bd9-57e9-4a59-9192-02cbb19be631 deviceId: 912 status: 8 ovdmStatus: Installed name: test 1 type: docker-compose workloadId: 65f0408a802c8588b639ae71 '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/details: get: summary: Get details of workload description: Get detailed information about the workload installed on the system. operationId: deployed_workload_details tags: - WORKLOADS x-permissions: - WORKLOAD_DETAILS:VIEW parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: Successful operation content: application/json: schema: oneOf: - description: Payload of the docker workload allOf: - type: object required: - state - workloadId - uniqueId - ovdmStatus - name - type - statusChangedTimestamp - versionName properties: state: type: integer description: Status enumeration that corresponds to the state of deployed workload minimum: 0 maximum: 13 message: type: string description: Message that states name of the workload and state that it is in. workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 uniqueId: description: Workload unique identifier in the queue type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ovdmStatus: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose statusChangedTimestamp: type: integer description: Time when state of the workload has changed in milliseconds. versionName: type: string description: Workload version name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) - type: object required: - envVars - ports - containerName - resources properties: envVars: description: List of docker environment variables type: array minItems: 0 maxItems: 1001 items: type: string pattern: ^[a-zA-Z_][a-zA-Z0-9_]+= ports: type: array description: A list of port mappings minItems: 0 maxItems: 1001 items: type: object description: Mapping a container port to a port on the Docker host to the outside world. required: - protocol - hostPort - containerPort additionalProperties: false properties: protocol: type: string description: The protocol used for the port mapping, either TCP or UDP enum: - tcp - udp hostPort: type: string pattern: ^\d+$ description: The port number on the host machine that is mapped to the container's port containerPort: type: string pattern: ^\d+$ description: The port number inside the Docker container that is being exposed containerName: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ resources: type: object description: Current and original values of defined cpu and memory limits additionalProperties: false properties: cpu: type: object description: Object containing the current and original values of defined CPU properties: current: description: Current values of defined CPU anyOf: - type: number minimum: 0.01 maximum: 256 - type: integer minimum: 1 maximum: 256 originally: description: Original values of defined CPU anyOf: - type: number minimum: 0.01 maximum: 256 - type: integer minimum: 1 maximum: 256 memory: type: object description: Object containing the current and original values of defined memory properties: current: description: Current values of defined memory type: integer minimum: 100000000 maximum: 20000000000 originally: description: Original values of defined memory type: integer minimum: 100000000 maximum: 20000000000 internalDockerRegistry: description: Is workload using internal Docker Registry as an docker image source type: boolean - description: Payload of the vm workload allOf: - type: object required: - state - workloadId - uniqueId - ovdmStatus - name - type - statusChangedTimestamp - versionName properties: state: type: integer description: Status enumeration that corresponds to the state of deployed workload minimum: 0 maximum: 13 message: type: string description: Message that states name of the workload and state that it is in. workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 uniqueId: description: Workload unique identifier in the queue type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ovdmStatus: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose statusChangedTimestamp: type: integer description: Time when state of the workload has changed in milliseconds. versionName: type: string description: Workload version name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) - type: object required: - resources - features properties: features: type: array description: List of specific workload features(e.g. snapshot) minItems: 0 maxItems: 1001 items: type: object required: - name - value additionalProperties: false properties: name: type: string description: Feature name value: type: object description: Object containing a property that indicates if the feature is enabled or not. resources: type: object description: Current and original values of defined cpu and memory limits additionalProperties: false properties: cpu: type: object description: Object containing the current and original values of defined CPU properties: current: description: Current values of defined CPU anyOf: - type: number minimum: 0.01 maximum: 256 - type: integer minimum: 1 maximum: 256 originally: description: Original values of defined CPU anyOf: - type: number minimum: 0.01 maximum: 256 - type: integer minimum: 1 maximum: 256 memory: type: object description: Object containing the current and original values of defined memory properties: current: description: Current values of defined memory type: integer minimum: 100000000 maximum: 20000000000 originally: description: Original values of defined memory type: integer minimum: 100000000 maximum: 20000000000 - description: Payload of the codesys workload type: object additionalProperties: false required: - state - workloadId - uniqueId - ovdmStatus - name - type - statusChangedTimestamp - versionName properties: state: type: integer description: Status enumeration that corresponds to the state of deployed workload minimum: 0 maximum: 13 message: type: string description: Message that states name of the workload and state that it is in. workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 uniqueId: description: Workload unique identifier in the queue type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ovdmStatus: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose statusChangedTimestamp: type: integer description: Time when state of the workload has changed in milliseconds. versionName: type: string description: Workload version name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) - description: Payload of the compose workload allOf: - type: object required: - state - workloadId - uniqueId - ovdmStatus - name - type - statusChangedTimestamp - versionName properties: state: type: integer description: Status enumeration that corresponds to the state of deployed workload minimum: 0 maximum: 13 message: type: string description: Message that states name of the workload and state that it is in. workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 uniqueId: description: Workload unique identifier in the queue type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ovdmStatus: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose statusChangedTimestamp: type: integer description: Time when state of the workload has changed in milliseconds. versionName: type: string description: Workload version name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) - type: object required: - webUiInfo - services - configurationUpdateInfo properties: webUiInfo: type: array minItems: 0 maxItems: 1001 description: Information about containers with defined web Ui items: type: object required: - serviceName - containerName - locationUrl properties: serviceName: type: string description: The name of the service defined in the docker-compose file. Service name can only contain numbers, letters,_ and -. pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ minLength: 1 maxLength: 40 containerName: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ locationUrl: type: string description: URL path for accessing the web UI of a container services: type: array description: Information about services defined within compose workload minItems: 1 maxItems: 1001 items: type: object required: - containerName - state - message - timestamp properties: containerName: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ state: type: integer description: Status enumeration that corresponds to the state of individual containers in compose workload minimum: 0 maximum: 12 message: type: string description: message describing state of individual containers enum: - container_running - container_created - container_restarting - container_paused - container_exited - container_dead - container_starting - container_stopping - container_pausing - container_resuming timestamp: description: Timestamp of the last state change in Unix epoch format type: integer configurationUpdateInfo: type: array minItems: 0 maxItems: 1001 description: List of configuration storages items: type: object description: Configuration storage information for docker workload required: - restartOnConfigurationUpdate - path - name - serviceName properties: restartOnConfigurationUpdate: type: boolean description: Indicator if container will be restarted when applying configuration default: false name: type: string description: 'The docker volume name. The name is extracted from docker-compose file. Volume name can only contain numbers, letters, _ and -. NOTE: For now only volume name is allowed. Bind mount points are not allowed.' pattern: ^[A-z0-9-.]*$ minLength: 1 maxLength: 1001 path: type: string description: Container destination path which is mounted to specified volume pattern: ^[A-z0-9/.-]*$ minLength: 1 maxLength: 1001 serviceName: type: string description: The name of the service defined in the docker-compose file. Service name can only contain numbers, letters,_ and -. pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ minLength: 1 maxLength: 40 internalDockerRegistry: description: Is workload using internal Docker Registry as an docker image source type: boolean examples: docker_workload: value: state: 8 message: Domain test docker started workloadId: 6615213ae61e8e68b2ec8a62 uniqueId: 09e834a8-e5c1-4821-a700-4b4d009a509d name: test docker type: docker statusChangedTimestamp: 1712822633403 ovdmStatus: Installed resources: cpu: current: 0.01 originally: 0.01 memory: current: 150000000 originally: 150000000 versionName: v1 envVars: - VARIABLE=value ports: - hostPort: '65535' containerPort: '12' protocol: tcp containerName: nginx vm_with_snapshot_workload: value: state: 8 message: Domain test vm started workloadId: 661537162d315340eb79be21 uniqueId: cee60672-482c-49b0-8cb1-00138bc2fd2b name: test vm type: vm statusChangedTimestamp: 1712829137281 ovdmStatus: Installed resources: memory: current: 100000000 originally: 150000000 cpu: current: 1 originally: 1 versionName: v1 features: - name: snapshot value: enabled: true space: 1GB vm_without_snapshot_workload: value: state: 8 message: Domain tinycore_kvm started workloadId: 661508ddd52be6af23415b69 uniqueId: 851f5101-213b-4343-bea6-fad3c9c0d62c name: tinycore_kvm type: vm statusChangedTimestamp: 1712817710733 ovdmStatus: Installed resources: memory: current: 1000000000 originally: 1000000000 cpu: current: 1 originally: 1 versionName: ver_01 features: - name: snapshot value: enabled: false space: '' codesys_workload: value: state: 8 message: Domain Codesys_Workload started workloadId: 65f43b4ea7316d23e867979a uniqueId: 1d92452a-554c-4937-8595-0f233b195897 name: Codesys_Workload type: codesys statusChangedTimestamp: 1712817711132 ovdmStatus: Installed versionName: Codesys_Workload compose_workload: value: state: 8 message: Domain compose with webUI started workloadId: 64be62c627d17a2ffc02457e uniqueId: afa64d3c-28b3-4e11-a067-98d595641f98 name: compose with webUI type: docker-compose statusChangedTimestamp: 1712817710688 ovdmStatus: Installed configurationUpdateInfo: [] versionName: v1 webUiInfo: - serviceName: test containerName: compose_with_webui_test_1 locationUrl: /webui/compose_with_webui_test_1/ services: - containerName: compose_with_webui_test_1 state: 8 message: container_running timestamp: 1712817710687 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/control/{command}: put: summary: Workload control description: Control workloads - start, stop, suspend, restart, resume or undeploy it. operationId: control_workload tags: - WORKLOADS x-permissions: - WORKLOAD:CONTROL parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 - name: command in: path required: true description: Operation to perform on codesys workload (start, stop, undeploy). schema: type: string enum: - START - STOP - SUSPEND - RESTART - RESUME - UNDEPLOY requestBody: content: application/json: schema: type: object description: Control workload route request payload additionalProperties: false required: - workloadId properties: workloadId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 removeImages: type: boolean default: false description: 'Determines whether Docker and Docker Compose images associated with the deployed workload should be removed. - If set to **true**, all images linked to the workload will be deleted from the system. - If set to **false**, the images will remain in the system. This setting applies specifically to workloads using the Management System Registry. ' example: workloadId: 64be62c627d17a2ffc02457e required: true responses: '200': description: Successful operation content: application/json: schema: type: object description: Object containing information on whether the command was successful or not additionalProperties: false required: - code properties: code: type: integer description: Values that represent if command was successfully executed or not - 0 meaning success and 1 meaning failure. enum: - 0 - 1 message: type: string description: Action initiated or error message examples: operation_successful: value: code: 0 operation_already_applied: value: code: 1 message: Command 'STOP' cannot be handled workload already STOPPED '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/apply-resources: post: summary: Update CPU and memory resources of VM workloads operationId: update_workload_resources tags: - WORKLOADS description: Update values for CPU and memory for specified workload(applicable only for VM workload) x-permissions: - WORKLOAD_RESOURCES:APPLY parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true content: application/json: schema: type: object description: Object containing the information regarding the resource allocation properties: cpu: type: integer minimum: 1 maximum: 256 description: CPU allocation memory: type: string description: Ram memory allocation minLength: 3 maxLength: 11 pattern: ^(?:(100000|[1-9][0-9]{5,6}|1[0-9]{7}|20000000)KB|(100|[1-9][0-9]{2,3}|1[0-9]{4}|20000)MB|(0\.[1-9]|[1-9](\.[0-9]+)?|1[0-9](\.[0-9]+)?|20(\.0)?)GB|(0\.000[1-9]|0\.00[1-9][0-9]?|0\.0[1-9][0-9]?|0\.[1-9][0-9]{0,2}|0\.01[0-9]?|0\.02)TB)$ examples: cpu_changed: value: cpu: 1 memory_changed: value: memory: 160MB memory_and_cpu_changed: value: cpu: 1 memory: 160MB responses: '204': description: successful operation, configuration applied '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/apply-configuration: post: summary: Apply configuration to workload description: The method is used to apply configuration to docker and docker-compose workloads. operationId: apply_workload_configuration tags: - WORKLOADS x-permissions: - WORKLOAD_DOCKER_CONFIGURATION:APPLY parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: description: Defines workload configuration required: true content: multipart/form-data: schema: type: object description: Object containing the configuration archive file and data regarding the workload for which the configuration is to be applied properties: file: type: string format: binary description: File to be uploaded data: type: object description: "Provides information about the workload and its configuration.\n**Example Request Data**:\n- **For Docker**:\n ```json\n {\n \"deviceId\": 111,\n \"user\": \"local@nerve.cloud\"\ ,\n \"timestamp\": 1713250137163,\n \"configurations\": [\n {\n \"volumeName\": \"volume\",\n \"containerPath\": \"/tmp\"\n }\n ],\n \"restartOnConfigurationUpdate\"\ : true\n }\n ```\n \n- **For Docker Compose**:\n ```json\n {\n \"deviceId\": 243,\n \"service\": \"nginx\",\n \"user\": \"local@nerve.cloud\",\n \"timestamp\": 1713251166323,\n\ \ \"configurations\": [\n {\n \"volumeName\": \"volume1\",\n \"containerPath\": \"/tmp\"\n }\n ],\n \"restartOnConfigurationUpdate\": false\n }\n ```\n\ \ \n**Notes**: - Ensure that the volume is created on the workload before applying the configuration. - After the volume is created, the workload needs to be (re)deployed." additionalProperties: false required: - configurations - user - timestamp - restartOnConfigurationUpdate properties: service: type: string description: The name of the service defined in the docker-compose file. Service name can only contain numbers, letters,_ and -. pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ minLength: 1 maxLength: 40 user: type: string description: The username of the user who initiated request to apply configuration minLength: 1 maxLength: 1001 pattern: .* configurations: type: array description: List of volume objects containing volume name and container path minItems: 0 maxItems: 1001 items: type: object properties: volumeName: type: string description: 'The docker volume name. The name is extracted from docker-compose file. Volume name can only contain numbers, letters, _ and -. NOTE: For now only volume name is allowed. Bind mount points are not allowed.' pattern: ^[A-z0-9-.]*$ minLength: 1 maxLength: 1001 containerPath: type: string description: Container destination path which is mounted to specified volume pattern: ^[A-z0-9/.-]*$ minLength: 1 maxLength: 1001 restartOnConfigurationUpdate: type: boolean description: Indicator if container will be restarted when applying configuration default: false timestamp: type: integer description: Time when configuration was applied to the workload(in milliseconds). responses: '204': description: successful operation, configuration applied '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response workload_does_not_exist: value: status: 500 msg: Workload for which configuration update is requested does not exist on the system. /api/workloads/{deviceId}/network-details: get: tags: - WORKLOADS NETWORKS summary: Gets network interface information of VM workload description: Provides detailed information about network interfaces of the specified VM workload operationId: get_workload_network_details x-permissions: - WORKLOAD_NETWORK_DETAILS:VIEW parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: Successfully fetched network details of a VM workload content: application/json: schema: type: object description: Object containing the list of network interfaces of a VM workload. required: - interfaces additionalProperties: false properties: interfaces: type: array description: List of network interfaces of a VM workload. minItems: 0 maxItems: 1001 items: required: - interface_name - type - source - mac_address - ip_address - received_bytes - transmitted_bytes properties: interface_name: description: Name of the network interface type: string type: description: Type of the network interface type: string enum: - bridge - network source: description: Name of the source (host) network interface type: string mac_address: description: MAC address type: string ip_address: type: array nullable: true description: List of IP addresses minItems: 0 maxItems: 1001 items: type: object required: - addr - prefix - type properties: addr: description: IP address. type: string prefix: description: Prefix of IP address. type: integer type: description: Type of IP address. type: integer additionalProperties: false received_bytes: description: Number of bytes received type: string transmitted_bytes: description: Number of bytes transmitted type: string additionalProperties: false example: interfaces: - interface_name: vnet3 type: network source: default mac_address: 52:54:00:48:4b:6e ip_address: - addr: 192.168.122.30 prefix: 24 type: 0 received_bytes: '10091' transmitted_bytes: '4258' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: Workload not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: vm_workload_not_found: value: status: 404 msg: Workload with the provided device ID not found '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/workloads/{deviceId}/snapshots: post: summary: Create snapshot of the selected VM workload operationId: create_vm_snapshot tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT:CREATE description: Used to initiate snapshot creation for specified VM workload. parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true description: Object contains the necessary information to create a snapshot of the virtual machine content: application/json: schema: type: object additionalProperties: false description: Object containing data on the snapshot name and description required: - name properties: name: type: string description: The name of the VM workload snapshot pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 description: type: string description: Snapshot description minLength: 0 maxLength: 1001 pattern: .* examples: vm_snapshot_with_just_name_req: value: name: Snapshot 3-8-2022 14:1:47 GMT+2 vm_snapshot_with_empty_description_req: value: name: Snapshot 3-8-2022 14:1:47 GMT+2 description: '' vm_snapshot_with_description_req: value: name: Snapshot 3-8-2022 14:1:47 GMT+2 description: Some description responses: '202': description: VM snapshot creation was successfully initiated content: application/json: schema: type: object description: Object containing details about created snapshot. required: - name - description - vmState - date additionalProperties: false properties: name: type: string description: The name of the VM workload snapshot pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 description: type: string description: Snapshot description minLength: 0 maxLength: 1001 pattern: .* vmState: type: string description: In which state vm was in moment when snapshot has been captured enum: - STARTED - STOPPED - SUSPENDED date: type: string description: Date when snapshot was captured (in milliseconds). pattern: ^[0-9]{0,13}$ maxLength: 13 minLength: 0 examples: vm_snapshot_creation: value: name: Snapshot 26-4-2024 23:0:4 GMT+2 description: '' vmState: STARTED date: '1714165204' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response delete: summary: Delete snapshot of the selected VM workload operationId: delete_vm_snapshot tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT:DELETE description: Used to delete snapshot of the VM workload parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 - name: name in: query description: The name of the snapshot to be deleted required: true allowReserved: true schema: type: string description: The name of the VM workload snapshot pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 responses: '200': description: Message that VM snapshot is deleted content: application/json: schema: type: string description: Message confirming the deletion of the snapshot examples: vm_snapshot_deleted: value: Snapshot deleted '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response put: summary: Restore snapshot to the selected VM workload operationId: revert_vm_snapshot tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT:REVERT description: Used to initiate the reverting VM workload to specified snapshot parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true description: Object contains name of the snapshot content: application/json: schema: type: object description: Object containing the 'name' property, representing the name of the snapshot to which the VM should be reverted additionalProperties: false required: - name properties: name: type: string description: The name of the VM workload snapshot pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 examples: vm_snapshot_with_just_name_req: value: name: Snapshot 3-8-2022 14:1:47 GMT+2 responses: '200': description: Reverting the VM to specified snapshot is initiated content: application/json: schema: type: string description: Message confirming the revert action has been initiated examples: vm_snapshot_revert: value: Snapshot applied '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Failed to restore snapshot or the response data does not match the schema. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response revert_snapshot_failed: value: status: 500 msg: Reverting workload to snapshot failed get: summary: Get snapshots of the selected VM workload operationId: get_vm_snapshots tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT:LIST description: Used to obtain the list of VM snapshots as well as the configuration of the schedule snapshot parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: List of VM snapshots and the current setup of the schedule snapshot option content: application/json: schema: type: object description: Object containing the list of VM snapshots and snapshot schedule configuration. required: - snapshots - scheduled additionalProperties: false properties: snapshots: type: array description: List of VM snapshots items: type: object description: Object containing details about created snapshot. required: - name - description - vmState - date additionalProperties: false properties: name: type: string description: The name of the VM workload snapshot pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 description: type: string description: Snapshot description minLength: 0 maxLength: 1001 pattern: .* vmState: type: string description: In which state vm was in moment when snapshot has been captured enum: - STARTED - STOPPED - SUSPENDED date: type: string description: Date when snapshot was captured (in milliseconds). pattern: ^[0-9]{0,13}$ maxLength: 13 minLength: 0 minItems: 0 maxItems: 1001 scheduled: type: object nullable: true description: Object containing the current schedule configuration, or NULL if no configuration is set oneOf: - type: object nullable: true additionalProperties: false - type: object description: Object containing information if and how creation of snapshots is or should be scheduled additionalProperties: false required: - type - intervalTime - day - dayTime - dayHours - dayMinutes - vmState - timeZone - timezoneOffset properties: type: type: string description: Type of schedule enum: - Interval - Day intervalTime: type: integer description: Interval in hours minimum: 1 maximum: 9999 day: oneOf: - type: string description: Day of the week enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday - Every day - type: string description: Empty string enum: - '' minLength: 0 maxLength: 0 pattern: ^$ dayTime: oneOf: - type: string description: Time of day when snapshot will be created minLength: 0 maxLength: 5 pattern: ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ - type: string description: Empty string enum: - '' minLength: 0 maxLength: 0 pattern: ^$ dayHours: type: integer description: Hour at which snapshot will be created minimum: 0 maximum: 23 dayMinutes: type: integer description: Minute of the hour at which snapshot will be created minimum: 0 maximum: 59 vmState: type: string description: State in which VM should be when snapshot is captured enum: - Current - Stopped timeZone: type: string description: The name of the timezone minLength: 0 maxLength: 1001 pattern: ^[A-Za-z]+\/[A-Za-z_]+$ timezoneOffset: type: string pattern: ^[+-]*[\d]+$ description: Timezone offset minLength: 0 maxLength: 1001 serialNumber: description: The serial number of the node type: string maxLength: 12 minLength: 12 pattern: ([A-Z0-9]){12} deviceId: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 initiator: type: object description: Who initiated the snapshot operation - returned when schedule is initiated from cloud properties: firstName: type: string description: User first name lastName: type: string description: User last name username: type: string description: Username of the user examples: get_snapshots_no_schedule: value: snapshots: - name: Snapshot 26-4-2024 23:20:1 GMT+2 description: '' vmState: STARTED date: '1714166401' scheduled: null get_snapshots_schedule_day: value: snapshots: - name: Snapshot 26-4-2024 23:20:1 GMT+2 description: '' vmState: STARTED date: '1714166401' scheduled: type: Day intervalTime: 1 day: Monday dayTime: '1:01' dayHours: 1 dayMinutes: 1 vmState: Current timeZone: Europe/Belgrade timezoneOffset: '+2' get_snapshots_schedule_interval: value: snapshots: - name: Snapshot 26-4-2024 23:20:1 GMT+2 description: '' vmState: STARTED date: '1714166401' scheduled: type: Interval intervalTime: 1 day: Monday dayTime: '' dayHours: 1 dayMinutes: 1 vmState: Current timeZone: Europe/Belgrade timezoneOffset: '+2' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/snapshots/schedule: delete: summary: Delete snapshot scheduled of the selected VM workload operationId: delete_vm_schedule_snapshot_config tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT_SCHEDULE:DELETE description: Used to delete the snapshot schedule parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: Schedule snapshot configuration successfully deleted content: application/json: schema: type: string description: Message confirming the delation of the schedule configuration examples: vm_scheduled_snapshot: value: Scheduled snapshot deleted '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response post: summary: Create a snapshot schedule for the selected VM workload operationId: create_vm_schedule_snapshot_config tags: - WORKLOADS SNAPSHOTS x-permissions: - SNAPSHOT_SCHEDULE:CREATE description: Used to create a snapshot schedule parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true content: application/json: schema: type: object description: Object containing information if and how creation of snapshots is or should be scheduled additionalProperties: false required: - type - intervalTime - day - dayTime - dayHours - dayMinutes - vmState - timeZone - timezoneOffset properties: type: type: string description: Type of schedule enum: - Interval - Day intervalTime: type: integer description: Interval in hours minimum: 1 maximum: 9999 day: oneOf: - type: string description: Day of the week enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday - Every day - type: string description: Empty string enum: - '' minLength: 0 maxLength: 0 pattern: ^$ dayTime: oneOf: - type: string description: Time of day when snapshot will be created minLength: 0 maxLength: 5 pattern: ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ - type: string description: Empty string enum: - '' minLength: 0 maxLength: 0 pattern: ^$ dayHours: type: integer description: Hour at which snapshot will be created minimum: 0 maximum: 23 dayMinutes: type: integer description: Minute of the hour at which snapshot will be created minimum: 0 maximum: 59 vmState: type: string description: State in which VM should be when snapshot is captured enum: - Current - Stopped timeZone: type: string description: The name of the timezone minLength: 0 maxLength: 1001 pattern: ^[A-Za-z]+\/[A-Za-z_]+$ timezoneOffset: type: string pattern: ^[+-]*[\d]+$ description: Timezone offset minLength: 0 maxLength: 1001 examples: vm_schedule_snapshot_config: value: type: Day intervalTime: 1 day: Friday dayTime: 06:15 dayHours: 1 dayMinutes: 1 vmState: Stopped timeZone: Europe/Belgrade timezoneOffset: '+2' responses: '201': description: Schedule snapshot creation successfully setup content: application/json: schema: type: string description: Message confirming the creation of the schedule configuration examples: vm_scheduled_snapshot: value: Snapshot creation scheduled '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: Invalid response /api/workloads/{deviceId}/backups: get: summary: Get backups for the specified VM workload operationId: get_vm_backups_history tags: - WORKLOADS BACKUPS x-permissions: - BACKUP:LIST description: Used to obtain the list of previously created backups of the provided VM workload parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: List of previously created backups(creation history) for the specific VM workload content: application/json: schema: type: object description: Object containing the list of backup creations for a specific VM workload. required: - backups additionalProperties: false properties: backups: type: array description: Objects representing information about previous backups created items: type: object additionalProperties: false required: - name - started - status - localRepository - serialNumber properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 started: type: integer description: Time when backup creation started (in milliseconds) status: type: string description: Status of backup creation operation enum: - COMPLETED - FAILED - STOPPING - IN_PROGRESS - ABORTED serialNumber: description: The serial number of the node type: string maxLength: 12 minLength: 12 pattern: ([A-Z0-9]){12} progress: type: integer description: Operation progress minimum: 0 maximum: 100 vmStateBeforeBackup: type: string description: State of VM before proceed with backup creation enum: - RUNNING - STOPPING - STOPPED - SUSPENDED finished: type: integer description: Time when backup creation completed(in milliseconds) error: type: string description: Reason why VM backup creation failed localRepository: type: object additionalProperties: false description: Information about the local repository that is used to store VM backups required: - url - protocol properties: url: type: string description: Url of HTTP server user: type: string nullable: true description: User for authentication to the HTTP server password: type: string nullable: true description: Password for authentication to the HTTP server protocol: type: string description: Protocol used for communication with the local repository enum: - nfs options: type: string description: Nfs server options minItems: 0 maxItems: 1001 examples: vm_backups: value: backups: - name: MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 started: 1714373918785 status: COMPLETED localRepository: url: 10.85.10.94:/nfs_shared user: null password: null protocol: nfs options: rw,nolock serialNumber: MMARKOVIC001 vmStateBeforeBackup: STOPPED progress: 100 finished: 1714373979899 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Failed to obtain list of backups or the response data does not match the schema. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response backup_not_supported: value: status: 500 msg: BACKUP_NOT_SUPPORTED_FOR_THAT_WORKLOAD_TYPE post: summary: Create backup for specified VM workload operationId: create_vm_backup tags: - WORKLOADS BACKUPS x-permissions: - BACKUP:CREATE description: Used to initiated the creation of backup for provided VM workload. parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true description: Object contains name of the backup content: application/json: schema: type: object description: Object containing the name of the backup to be created additionalProperties: false required: - name properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 examples: vm_snapshot_with_just_name_req: value: name: MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 responses: '202': description: VM backup creation was successfully initiated content: application/json: schema: description: Object contains the vm backup name used in requests for creating a new VM backup or restarting the failed one type: object required: - name - message additionalProperties: false properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 message: type: string description: Message indicating that the action is initiated examples: vm_snapshot_revert: value: name: MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 message: Creating a backup for vmwithsnapshot has been initiated '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Failed to initiate creation of backup or the response data does not match the schema. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response backup_not_supported: value: status: 500 msg: BACKUP_NOT_SUPPORTED_FOR_THAT_WORKLOAD_TYPE backup_not_possible: value: status: 500 msg: BACKUP_NOT_POSSIBLE_NODE_UPDATE_IS_IN_PROGRESS backup_already_exists: value: status: 500 msg: BACKUP_WITH_PROVIDED_NAME_ALREADY_EXISTS /api/workloads/{deviceId}/backups/restart: post: summary: Restart creation of VM backup operationId: restart_vm_backup_creation tags: - WORKLOADS BACKUPS x-permissions: - BACKUP:RESTART description: Used to restart VM backup creation parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 requestBody: required: true description: Object contains name of the snapshot content: application/json: schema: type: object description: Object containing information about the VM backup that needs to be re-created additionalProperties: false required: - name properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 examples: vm_snapshot_with_just_name_req: value: name: MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 responses: '200': description: Message that the backup creation for provided VM workload is restarted content: application/json: schema: description: Object contains the vm backup name used in requests for creating a new VM backup or restarting the failed one type: object required: - name - message additionalProperties: false properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 message: type: string description: Message indicating that the action is initiated examples: vm_snapshot_revert: value: name: MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 message: Backup MMARKOVIC001-vm with snapshot-backup 29-4-2024 8:58:34 GMT+2 for vm with snapshot is restarted '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Failed to restart VM backup or the response data does not match the schema. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response not_allowed_while_previous_in_progress: value: status: 500 msg: BACKUP_RESTART_NOT_POSSIBLE_UNTIL_PREVIOUS_ONE_IS_COMPLETED only_failed_can_be_restarted: value: status: 500 msg: ONLY_BACKUP_WITH_FAILED_STATUS_MAY_BE_RESTART /api/workloads/backups/deploy: post: summary: Deploy the selected backup from the local repository operationId: deploy_vm_backups tags: - WORKLOADS BACKUPS x-permissions: - BACKUP:DEPLOY description: Used to deploy selected backup from the local repository requestBody: required: true content: application/json: schema: type: object description: Object containing data about the VM backup to deploy on the node additionalProperties: false required: - name - deployAsBackup properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) minLength: 1 maxLength: 1001 deployAsBackup: type: boolean description: Flag that determines if the backed up vm is going to be deployed as a clone or as a backup. examples: vm_as_backup: value: name: 0000000000NS-vm with snapshot-backup 29-4-2024 14:42:37 GMT+2 deployAsBackup: true vm_as_clone: value: name: 0000000000NS-vm with snapshot-backup 29-4-2024 14:42:37 GMT+2 deployAsBackup: false responses: '200': description: List of previously created backups(creation history) for the specific VM workload content: application/json: schema: type: object description: Workload object additionalProperties: false required: - uniqueId - id - versionId - type - workloadName - status - deployTime - deployAsBackup properties: uniqueId: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ id: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 versionId: oneOf: - description: ID (from Management System) of the entry type: string pattern: ^[0-9a-fA-F]{24}$ minLength: 24 maxLength: 24 - description: ID created as workloadId(from database)-uniqueId(randomly generated uuid when workload is queued). type: string pattern: ^[0-9a-fA-F]{24}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 61 maxLength: 61 workloadName: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) status: type: string description: Status of workload in queue enum: - New - Reserved - Queued - Downloading - Downloaded - Installed - Removing - Removing_failed type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose deployTime: type: integer description: Time when workload has been deployed (in milliseconds). deployAsBackup: type: boolean description: Flag that determines if the backed up vm is going to be deployed as a clone or as a backup. examples: vm_backups_deploy: value: uniqueId: da844570-fe20-4b65-8110-f391899853d1 id: 661fda47608ed214c9e858e3-a48ad0c8-dd0c-4326-9c92-f02e13a82d6f versionId: 661fda47608ed214c9e858e4-a48ad0c8-dd0c-4326-9c92-f02e13a82d6f type: vm workloadName: vm with snapshot status: Queued deployTime: 1714395012408 deployAsBackup: false '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The VM backup file not found. The local repository is not defined(configured), and the node cannot retrieve the requested VM backup file. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: local_repository_not_defined: value: status: 404 msg: Local repository is not defined. '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Failed to deploy workload from backups repository or the response data does not match the schema. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: invalid_response: value: status: 500 msg: Invalid response update_not_supported: value: status: 500 msg: Workload update for virtual machines is not supported. /api/workloads/{deviceId}/compose-services-details: get: tags: - WORKLOADS COMPOSE summary: Get detailed information about docker-compose workload services description: Get detailed information about services of a docker-compose workload, including service names, container names, image names, environment variables, networks, ports, , restart policies and statuses of all services. operationId: get_compose_services_details x-permissions: - WORKLOAD_COMPOSE_SERVICE:VIEW parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 responses: '200': description: Successfully fetched docker-compose workload services details content: application/json: schema: type: object description: A list of docker-compose services along with the status of each service required: - servicesInformation - statuses properties: servicesInformation: description: Information about compose services and specific docker inspect outputs for each service container type: array minItems: 0 maxItems: 1001 items: type: object required: - containerName - envs - imageName - networks - ports - restartPolicy - serviceName - volumes properties: containerName: description: Name of the service container type: string envs: description: Environment variables used by the Docker container type: array minItems: 0 maxItems: 1001 items: type: string imageName: description: Name of the Docker image with the path to it in the repository, and the tag type: string networks: description: Network names type: array minItems: 0 maxItems: 1001 items: type: string ports: description: Port definitions type: array minItems: 0 maxItems: 1001 items: description: Port mapping defined in the Docker Compose file. type: object required: - containerPort - hostPort - protocol properties: containerPort: description: Port inside the container mapped to host port. type: string hostPort: description: Port on the host mapped to the defined container port. If it is not defined, any available port will be used. type: string protocol: description: Protocol used over this port. type: string additionalProperties: false restartPolicy: description: Restart policy of the Docker container type: string enum: - 'no' - on-failure - always - unless-stopped - '' serviceName: description: Name of the service defined in the Docker Compose file type: string volumes: description: Volume definitions type: array minItems: 0 maxItems: 1001 items: description: Docker volume defined in the Docker Compose file. type: object required: - name - destination properties: name: description: Name of the volume. type: string destination: description: Path to the volume inside the container. type: string additionalProperties: false additionalProperties: false statuses: description: Information about current status of each service type: object required: - services properties: services: type: array minItems: 1 maxItems: 50 description: List of compose services items: type: object required: - containerName - message - state - timestamp properties: containerName: description: Name of the Docker container type: string message: description: Service status message type: string state: description: Service state code type: integer timestamp: description: Timestamp of last state change in Unix epoch format type: integer additionalProperties: false additionalProperties: false additionalProperties: false example: servicesInformation: - containerName: container_1 serviceName: service_1 imageName: path/to/image_1:tag envs: - ENV_VAR_1=value_1 - ENV_VAR_2=value_2 volumes: - name: volume_1 destination: path/to/volume_1 ports: - containerPort: '5555' protocol: tcp hostPort: '5555' networks: - network_1 restartPolicy: unless-stopped - containerName: container_2 serviceName: service_2 imageName: path/to/image_2:tag envs: - ENV_VAR_3=value_3 volumes: - name: volume_2 destination: path/to/volume_2 - name: volume_3 destination: path/to/volume_3 ports: - containerPort: '6666' protocol: tcp hostPort: '6666' networks: - network_2 restartPolicy: always statuses: services: - containerName: container_1 state: 8 message: container_running timestamp: 1713262099295 - containerName: container_2 state: 8 message: container_running timestamp: 1713262099297 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/workloads/{deviceId}/compose-service-docker-inspect/{name}: get: tags: - WORKLOADS COMPOSE summary: Get docker inspect output for specified compose service Docker container description: Gets all data returned by running the docker inspect command for the specified Docker container. operationId: compose_service_inspect x-permissions: - WORKLOAD_COMPOSE_SERVICE:INSPECT parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 - name: name in: path required: true description: Name of the Docker container. schema: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ responses: '200': description: Docker container information returned by the docker inspect command. content: application/json: schema: type: object description: Object containing the output from the 'docker inspect' command example: Id: 3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be Created: '2024-04-25T22:09:52.802305466Z' Path: run_gateway.sh Args: - user_config/gateway_config.json State: Status: running Running: true Paused: false Restarting: false OOMKilled: false Dead: false Pid: 111206 ExitCode: 0 Error: '' StartedAt: '2024-04-25T22:09:57.163741048Z' FinishedAt: '0001-01-01T00:00:00Z' Image: sha256:c97df1d5942158d34eb259376bd234aefacf90224246e3a6f8a8147004a2b5ad ResolvConfPath: /opt/data/var/lib/docker/containers/3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be/resolv.conf HostnamePath: /opt/data/var/lib/docker/containers/3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be/hostname HostsPath: /opt/data/var/lib/docker/containers/3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be/hosts LogPath: /opt/data/var/lib/docker/containers/3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be/3069330c23e1c84f0ff2ae5db01aca3901b765c97ec6dd0e95879fdeb6ebe3be-json.log Name: /nerve-ds-node_gateway_1 RestartCount: 0 Driver: overlay2 Platform: linux MountLabel: '' ProcessLabel: '' AppArmorProfile: '' '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/workloads/{deviceId}/logs/{name}/events: get: tags: - WORKLOADS LOGS summary: Get the logs of specific docker container through an event stream description: Get logs about general Docker container information, like configuration and when it was started, through an SSE event stream. operationId: get_workload_log_event x-permissions: - WORKLOAD:VIEW_DOCKER_LOGS parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 - name: name in: path required: true description: Name of the Docker container. schema: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ responses: '200': description: Successfully subscribed to SSE event stream and fetched logs. content: text/event-stream: schema: type: object description: Object containing information about the logs from the Docker container. required: - event - data properties: event: description: Type of event type: string enum: - logs data: description: List of logs, formatted as a stringified JSON array of strings type: string example: '["2024-01-01 00:00:00,000: INFO: **************************************\n", "2024-01-01 00:00:00,000: INFO: *********** Configuration ************\n", ...]' additionalProperties: false '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/workloads/{deviceId}/logs/{name}: get: tags: - WORKLOADS LOGS summary: Download logs of a specific Docker container description: Download logs about general Docker container information, like configuration and when it was started, as a plain text file or a zip archive. operationId: get_workload_logs x-permissions: - WORKLOAD:DOWNLOAD_DOCKER_LOGS parameters: - name: deviceId in: path required: true description: Unique identifier of the deployed workload. Device is a term used for workloads. schema: type: string description: Id of the deployed workload pattern: ^\d+$ minLength: 1 maxLength: 1001 - name: name in: path required: true description: Name of the Docker container. schema: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ responses: '200': description: Successfully downloaded log file. content: text/plain: schema: description: Logs are downloaded as a plain text file if they are not archived on the system. type: string application/zip: schema: description: Logs are downloaded as a .zip archive if they are archived on the system. type: string format: binary '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/repositories: post: summary: Create local repository tags: - REPOSITORIES x-permissions: - REPOSITORY:CREATED description: Create a local repository to store backups. operationId: create_local_repository requestBody: required: true description: Create local repository. content: application/json: schema: oneOf: - allOf: - type: object description: Object containing required data to update specified local repository required: - path - protocol - type properties: path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string minLength: 3 maxLength: 5 pattern: ^(nfs|http|https)$ - type: object properties: protocol: type: string description: Specifies the protocol to be used for communication with the local repository. enum: - http - https user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* - allOf: - type: object description: Object containing required data to update specified local repository required: - path - protocol - type properties: path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string minLength: 3 maxLength: 5 pattern: ^(nfs|http|https)$ - type: object properties: protocol: type: string description: Specifies the protocol to be used for communication with the local repository. enum: - nfs options: description: Specifies the options for the NFS server. type: string enum: - rw,nolock - ro,nolock - '' default: rw,nolock example: options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads responses: '201': description: Successful operation. The local repository successfully created. content: application/json: schema: type: object description: Information regarding the configured local repository additionalProperties: false properties: user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string enum: - nfs - http - https id: description: Id of the local repository oneOf: - type: integer - type: string isMounted: description: Indicates whether the directory is mounted to an NFS server or not. type: boolean default: false options: description: Specifies the options for the NFS server. These options determine various settings and behaviors for the NFS mount. If the type of local repository is 'vmBackups', the default value is 'rw,nolock'. If the type of local repository is 'workloads', the default value is 'ro,nolock'. type: string nullable: true default: rw,nolock example: id: 1 isMounted: false options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* get: summary: Get list of repositories tags: - REPOSITORIES x-permissions: - REPOSITORY:LIST description: Returns a list of all configured local repositories. operationId: get_repository_list responses: '200': description: Successful operation. The list of repositories returned. content: application/json: schema: type: object description: Object containing the list of all configured repositories. required: - repositories additionalProperties: false properties: repositories: type: array description: A list of all configured local repositories. minItems: 0 maxItems: 1001 items: type: object additionalProperties: false properties: priority: nullable: true type: number description: Priority is used to sort or rank local repositories. user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string enum: - nfs - http - https id: description: Id of the local repository oneOf: - type: integer - type: string isMounted: description: Indicates whether the directory is mounted to an NFS server or not. type: boolean default: false options: description: Specifies the options for the NFS server. These options determine various settings and behaviors for the NFS mount. If the type of local repository is 'vmBackups', the default value is 'rw,nolock'. If the type of local repository is 'workloads', the default value is 'ro,nolock'. type: string nullable: true default: rw,nolock example: repositories: - priority: null password: '' user: '' id: 1 isMounted: false options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/repositories/{id}: get: summary: Get local repository tags: - REPOSITORIES x-permissions: - REPOSITORY:VIEW description: Retrieve the local repository by its ID. operationId: get_local_repository parameters: - in: path name: id required: true description: Id of local repository schema: type: string minLength: 1 maxLength: 1001 pattern: ^\d+$ responses: '200': description: Successful operation. The local repository successfully returned. content: application/json: schema: type: object description: Repository information retrieved from the database required: - id - type - protocol - path - user - password - options - priority additionalProperties: false properties: priority: nullable: true type: number description: Priority is used to sort or rank local repositories. user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string enum: - nfs - http - https id: description: Id of the local repository oneOf: - type: integer - type: string isMounted: description: Indicates whether the directory is mounted to an NFS server or not. type: boolean default: false options: description: Specifies the options for the NFS server. These options determine various settings and behaviors for the NFS mount. If the type of local repository is 'vmBackups', the default value is 'rw,nolock'. If the type of local repository is 'workloads', the default value is 'ro,nolock'. type: string nullable: true default: rw,nolock example: priority: null password: '' user: '' id: 1 isMounted: false options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: Not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: repository_not_found: value: status: 404 msg: local_repository_not_found '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* put: summary: Update local repository tags: - REPOSITORIES x-permissions: - REPOSITORY:EDIT description: Update local repository. operationId: update_local_repository parameters: - in: path name: id required: true description: Id of local repository schema: type: string minLength: 1 maxLength: 1001 pattern: ^\d+$ requestBody: required: true description: Update local repository. content: application/json: schema: oneOf: - allOf: - type: object description: Object containing required data to update specified local repository required: - path - protocol - type properties: path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string minLength: 3 maxLength: 5 pattern: ^(nfs|http|https)$ - type: object properties: protocol: type: string description: Specifies the protocol to be used for communication with the local repository. enum: - http - https user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* - allOf: - type: object description: Object containing required data to update specified local repository required: - path - protocol - type properties: path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string minLength: 3 maxLength: 5 pattern: ^(nfs|http|https)$ - type: object properties: protocol: type: string description: Specifies the protocol to be used for communication with the local repository. enum: - nfs options: description: Specifies the options for the NFS server. type: string enum: - rw,nolock - ro,nolock - '' default: rw,nolock example: options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads responses: '200': description: Successful operation. The local repository successfully updated. content: application/json: schema: type: object description: Repository basic information from database additionalProperties: false required: - id - type - protocol - path - user - password - options - priority properties: priority: nullable: true type: number description: Priority is used to sort or rank local repositories. user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string enum: - nfs - http - https id: description: Id of the local repository oneOf: - type: integer - type: string isMounted: description: Indicates whether the directory is mounted to an NFS server or not. type: boolean default: false options: description: Specifies the options for the NFS server. These options determine various settings and behaviors for the NFS mount. If the type of local repository is 'vmBackups', the default value is 'rw,nolock'. If the type of local repository is 'workloads', the default value is 'ro,nolock'. type: string nullable: true default: rw,nolock example: priority: null password: '' user: '' id: 1 isMounted: false options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: Not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: repository_not_found: value: status: 404 msg: local_repository_not_found '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* delete: summary: Delete local repository tags: - REPOSITORIES x-permissions: - REPOSITORY:DELETE description: Delete local repository. operationId: delete_local_repository parameters: - in: path name: id required: true description: Id of local repository schema: type: string minLength: 1 maxLength: 1001 pattern: ^\d+$ responses: '204': description: The local repository successfully deleted. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/repositories/list/backups: get: summary: Get the list of VM backups tags: - REPOSITORIES x-permissions: - REPOSITORY_BACKUP:LIST description: Get the list of VM backups on the local repository. operationId: get_backup_repository_list parameters: - name: limit in: query description: Number of items in result set when paging is applied schema: description: Number of items in result set when paging is applied type: integer default: 10 minimum: 1 maximum: 1000 - name: page in: query description: Page of results to get from backend schema: description: Page of results to get from backend type: integer default: 1 minimum: 1 maximum: 1000 - name: searchText in: query description: Number of items in result set when searching is applied schema: description: Number of items in result set when searching is applied type: string default: '' minLength: 0 maxLength: 1001 pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) allowEmptyValue: true - name: filterBackupsFromThisNode in: query description: Flag enables filtering for VM backups created only on this node. schema: type: boolean default: false responses: '200': description: Successful operation. The list of VM backups was successfully returned. content: application/json: schema: additionalProperties: false type: object description: List of virtual machine backup data and total number of backups properties: list: type: array description: List of VM backups minItems: 0 maxItems: 10001 items: type: object properties: name: type: string description: The name of VM workload backup pattern: (\s^)|(^[^\u0000-\u001f\u007f-\u009f]*$) date: type: number description: Date when backup was created. size: type: number description: Size of the vm workload. count: type: number description: Number of VM backups. example: list: - name: 000000000001-kvm-backup 22-5-2024 16:1:15 GMT+2 size: 536875572 date: 1716386478656 count: 1 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/repositories/{id}/mount: put: summary: Mount the NFS file system tags: - REPOSITORIES x-permissions: - REPOSITORY:MOUNT description: Mount an NFS file system on a predefined mount point (directory) on the node. operationId: mount_repository_to_nfs_server parameters: - in: path name: id required: true description: Id of local repository schema: type: string minLength: 1 maxLength: 1001 pattern: ^\d+$ responses: '200': description: Successful operation. The local repository successfully returned. content: application/json: schema: additionalProperties: false type: object description: Repository data from the database properties: priority: nullable: true type: number description: Priority is used to sort or rank local repositories. user: nullable: true type: string description: Username is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* password: nullable: true type: string description: Password is used to authenticate local repository. minLength: 0 maxLength: 1001 pattern: .* path: description: Specifies the local path where the repository is located. type: string minLength: 1 maxLength: 1001 type: description: Type of local repository type: string enum: - vmBackups - workloads protocol: description: Specifies the protocol to be used for communication with the local repository. type: string enum: - nfs - http - https id: description: Id of the local repository oneOf: - type: integer - type: string isMounted: description: Indicates whether the directory is mounted to an NFS server or not. type: boolean default: false options: description: Specifies the options for the NFS server. These options determine various settings and behaviors for the NFS mount. If the type of local repository is 'vmBackups', the default value is 'rw,nolock'. If the type of local repository is 'workloads', the default value is 'ro,nolock'. type: string nullable: true default: rw,nolock example: priority: null password: '' user: '' id: 1 isMounted: false options: ro,nolock path: 192.168.96.150:/nfs_shared protocol: nfs type: workloads '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/rc-requests: get: summary: Get a list of remote connections waiting for approval tags: - REMOTE CONNECTIONS x-permissions: - RC_REQUEST:LIST description: The list of requested connections awaiting approval before they can be established. operationId: get_remote_connections_waiting_approval responses: '200': description: Request successful. The list of requested remote connections awaiting approval returned. Approval is required for every remote connection with Local acknowledgment set to YES before establishment. content: application/json: schema: type: object description: Object containing the list of remote connections awaiting approval. required: - connections additionalProperties: false properties: connections: type: array description: The list of requested remote connections. minItems: 0 maxItems: 1001 items: type: object description: Object representing a remote connection required: - connectionRequestUid - connectionUid - initiator - name additionalProperties: false properties: connectionRequestUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ connectionUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ name: description: The name of the remote connection. type: string pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) initiator: description: Who initiated the remote connections operation. type: string nullable: true example: connections: - connectionRequestUid: 6448bbd0-fbfd-11ee-8950-b53c7a773c83 connectionUid: de89f39f-16b9-47ec-af8f-9ef425137b8b name: '444' initiator: Nikolina Babic '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/rc-requests/resolve: put: summary: Resolve remote connection requests before they can be established tags: - REMOTE CONNECTIONS x-permissions: - RC_REQUEST:APPROVE description: Remote connections require approval, before they can be established and connection requests need to be resolved. operationId: resolve_remote_connections_requests requestBody: required: true content: application/json: schema: type: object description: Object containing the connection UID and request UID followed by the connection approval status required: - connectionRequestUid - connectionUid - approved additionalProperties: false properties: connectionRequestUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ connectionUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ approved: type: boolean description: Indicate whether the remote connection is approved or not. Approval is required for every remote connection with Local acknowledgment set to YES before establishment. default: false responses: '200': description: Resolve remote connection requests. content: application/json: schema: type: object description: An object containing the message indicating whether the remote connection request has been approved or rejected. required: - message additionalProperties: false properties: message: type: string description: A notification indicating whether the remote connection request has been approved or rejected. example: message: Connection request d743fa70-6127-11ef-8334-cda9231bde22 has been approved. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/rc-settings: get: summary: Get the current configuration of the auto-approval option for remote connection tags: - REMOTE CONNECTIONS x-permissions: - RC_SETTINGS:VIEW operationId: get_auto_approval_configuration description: Get the current configuration of the auto-approval option for remote connection. responses: '200': description: Request successful, remote connections automatically approval returned. content: application/json: schema: type: object description: Object contains the 'auto_approve' property, which indicates whether all remote connections will be automatically approved required: - approve additionalProperties: false properties: approve: description: "Approval for remote connection set on Node side. \nCan be set to:\n0 - No restrictions on node side,\n1 - Auto approve,\n2 - All remote connections must be approved.\n\ Default value is 0.\n" enum: - 0 - 1 - 2 example: approve: 0 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden put: summary: Update auto-approval settings, enable or disable it tags: - REMOTE CONNECTIONS x-permissions: - RC_SETTINGS:EDIT operationId: update_auto_approval_settings description: Update the auto-approval settings. If disabled, explicit approval is required for every remote connection with Local acknowledgment set to YES before establishment. Conversely, enabling this option results in automatic approval for such connections. requestBody: description: Required parameters to change remote connections settings, set remote connections automatically approval. required: true content: application/json: schema: type: object description: Object contains the 'auto_approve' property, which indicates whether all remote connections will be automatically approved required: - approve additionalProperties: false properties: approve: description: "Approval for remote connection set on Node side. \nCan be set to:\n0 - No restrictions on node side,\n1 - Auto approve,\n2 - All remote connections must be approved.\nDefault\ \ value is 0.\n" enum: - 0 - 1 - 2 example: approve: 0 responses: '200': description: Successful operation. Auto-approve configuration updated. content: application/json: schema: type: object description: Object contains the 'auto_approve' property, which indicates whether all remote connections will be automatically approved required: - approve additionalProperties: false properties: approve: description: "Approval for remote connection set on Node side. \nCan be set to:\n0 - No restrictions on node side,\n1 - Auto approve,\n2 - All remote connections must be approved.\n\ Default value is 0.\n" enum: - 0 - 1 - 2 example: approve: 0 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/rc-connections: get: summary: Get the list of established remote connections tags: - REMOTE CONNECTIONS x-permissions: - RC_CONNECTION:LIST description: Get the list of established remote connections. operationId: get_remote_connections_list parameters: - name: search in: query description: Searching remote connections by name. required: false schema: type: string minLength: 0 maxLength: 1001 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) responses: '200': description: Request successful. The established remote connections list returned. content: application/json: schema: type: object description: Object containing the list of all established remote connections. required: - connections additionalProperties: false properties: connections: type: array description: The list of established remote connections minItems: 0 maxItems: 1001 items: type: object description: Remote connection basic information required: - connectionRequestUid - connectionType - connectionUid - created - initiator - name additionalProperties: false properties: connectionRequestUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ connectionUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ connectionType: description: The type of remote connection. type: string enum: - TUNNEL - SCREEN name: description: The name of the remote connection. type: string pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) initiator: description: Who initiated the remote connections operation. type: string nullable: true created: description: The timestamp indicating when the remote connection was established. type: number example: connections: - connectionUid: bfd94964-a856-4f93-a448-0134c003c338 connectionRequestUid: 5b10cf30-fbfd-11ee-8950-b53c7a773c83 name: ssh2 initiator: Nikolina Babic created: 1713277606841 connectionType: SCREEN - connectionUid: de89f39f-16b9-47ec-af8f-9ef425137b8b connectionRequestUid: 6448bbd0-fbfd-11ee-8950-b53c7a773c83 name: '444' initiator: Nikolina Babic created: 1713277622304 connectionType: TUNNEL '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Response received when the response does not match the schema or an unexpected error has occurred. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* example: status: 500 msg: URI malformed /api/rc-connections/terminate-connections: post: summary: Terminate established remote connections tags: - REMOTE CONNECTIONS x-permissions: - RC_CONNECTION:DELETE description: '[DELETE with body payload] - Terminate all remote connections passed in the request payload.' operationId: terminate_established_remote_connections requestBody: required: true content: application/json: schema: type: object description: Object contains 'rcList' property, which represents an array of connection IDs to be terminated (closed). required: - rcList properties: rcList: minItems: 1 maxItems: 1001 type: array description: List of remote connection IDs to be terminated items: type: object required: - connectionUid - connectionRequestUid additionalProperties: false properties: connectionUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ connectionRequestUid: description: Randomly generated uuid using uuidv4 library type: string minLength: 36 maxLength: 36 pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ responses: '200': description: Termination of the specified remote connections has been initiated successfully. content: application/json: schema: type: string description: Action initiated message enum: - Connection removal has been initiated example: Connection removal has been initiated '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/dna/target: get: tags: - DNA summary: Get target node configuration description: Used to get the target node configuration. operationId: get_dna_target_configuration x-permissions: - DNA:TARGET responses: '200': description: Successful operation headers: Content-Disposition: description: attachment; filename="config.zip" schema: type: string description: Value of the Content-Disposition header content: application/octet-stream: schema: type: string format: binary description: Represents binary data encoded as a string '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* put: tags: - DNA x-permissions: - DNA:APPLY summary: Apply target configuration description: Used to update the existing configuration of the selected node by using configuration file. operationId: apply_dna_configuration parameters: - name: continueInCaseOfRestart in: query description: The node will continue DNA reconfiguration when it comes back online. This option is available only for nodes with version >= 2.7.0. schema: type: boolean default: false - name: restartAllWorkloads in: query description: The default value is true and in that case all existing workloads on the node will be restarted. If the flag is false, existing workloads on the node will not be restarted. Available for node with version >= 2.9.0 schema: type: boolean default: true - name: removeDockerImages in: query schema: type: boolean default: true description: If the flag is set to true, Docker images will be removed from the node. If set to false, the images will be retained. Docker images are removed from the node as part of the undeployment that is executed before the DNA file is applied, to eliminate workloads that are not part of that DNA configuration. This setting applies specifically to workloads using the Management System Registry. Available only for nodes with version >= 2.10.0. requestBody: content: multipart/form-data: schema: type: object description: Object contains 'file' property, which represents the file to be uploaded properties: file: type: string description: The file to upload. format: binary required: true responses: '202': description: Successful operation content: application/json: schema: example: message: DNA configuration initiated tracking: /api/dna/status description: Representing a successful response with HTTP status code 202 (Accepted) required: - message - tracking type: object properties: message: type: string description: Action initiated message tracking: pattern: ^\/api\/dna\/status$ type: string description: The URI for getting completion status of job '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/dna/status: get: tags: - DNA summary: Get configuration status description: 'Used to get the current status of DNA configuration. ' operationId: dna_configuration_status x-permissions: - DNA:STATUS responses: '200': description: Successful operation content: application/json: schema: required: - message - status type: object properties: status: type: string description: The current state of DNA configuration enum: - APPLIED - INITIAL - UNDEFINED - RECONFIGURING - CANCELING - MODIFIED message: type: string description: The message describing configuration status fileName: pattern: ^[a-zA-Z0-9-_.]*\.(yaml|YAML|yml|YML|zip|ZIP)$ type: string description: The name of the DNA configuration file (target configuration) progress: type: object properties: percentage: maximum: 100 minimum: 0 type: integer description: The progress in percentage. message: type: string description: More detail about the current step in the configuration process. description: The progress of DNA node configuration updated: type: string format: date-time description: The date and time of the last change (UTC time) timezone: type: string description: The timezone setup on node user: type: string description: The name of the user who did the last change initiatedFrom: type: string description: The application from which the DNA configuration was done enum: - NODE-LOCAL-UI - NERVE-MS description: The DNA configuration status info example: status: RECONFIGURING message: Configuration in progress. fileName: my-config.zip progress: percentage: 56 message: Installing sample-name workload of type docker updated: '2023-01-12T09:36:10.528Z' timezone: Europe/Vienna user: John Doe initiatedFrom: NERVE-MS '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/dna/target/cancel: patch: tags: - DNA summary: Cancel DNA configuration in progress description: Used to cancel the DNA configuration operation which is in progress. operationId: cancel_dna_configuration x-permissions: - DNA:CANCEL responses: '202': description: Successful operation content: application/json: schema: example: message: DNA configuration cancellation initiated tracking: /api/dna/status description: Representing a successful response with HTTP status code 202 (Accepted) required: - message - tracking type: object properties: message: type: string description: Action initiated message tracking: pattern: ^\/api\/dna\/status$ type: string description: The URI for getting completion status of job '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/dna/current: get: tags: - DNA summary: Get current node configuration description: 'Used to get the current node configuration. ' operationId: dna_current_configuration x-permissions: - DNA:CURRENT responses: '200': description: Successful operation headers: Content-Disposition: description: attachment; filename="test_dna.yaml" schema: type: string description: Value of the Content-Disposition header content: application/octet-stream: schema: type: string format: binary description: Represents binary data encoded as a string '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden /api/dna/target/re-apply: put: tags: - DNA summary: Re-apply target configuration description: Used to re-apply the target configuration which was previously uploaded to the node operationId: re_apply_dna_configuration parameters: - name: continueInCaseOfRestart in: query description: The node will continue DNA reconfiguration when it comes back online. This option is available only for nodes with version >= 2.10.0. schema: type: boolean default: false - name: restartAllWorkloads in: query description: The default value is true and in that case all existing workloads on the node will be restarted. If the flag is false, existing workloads on the node will not be restarted. Available for node with version >= 2.10.0 schema: type: boolean default: true - name: removeDockerImages in: query schema: type: boolean default: true description: If the flag is set to true, Docker images will be removed from the node. If set to false, the images will be retained. Docker images are removed from the node as part of the undeployment that is executed before the DNA file is applied, to eliminate workloads that are not part of that DNA configuration. This setting applies specifically to workloads using the Management System Registry. Available only for nodes with version >= 2.10.0. x-permissions: - DNA:RE-APPLY responses: '202': description: Successful operation content: application/json: schema: example: message: DNA re-apply configuration initiated tracking: /api/dna/status description: Representing a successful response with HTTP status code 202 (Accepted) required: - message - tracking type: object properties: message: type: string description: Action initiated message tracking: pattern: ^\/api\/dna\/status$ type: string description: The URI for getting completion status of job '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The requested resource is temporarily unavailable. The node is not connected to the Management System and cannot retrieve the required workloads to proceed with the 're-apply' target configuration. content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: node_offline: value: status: 404 msg: Node is not connected to the cloud /api/docker-resources/volumes: get: tags: - DOCKER_RESOURCES_VOLUMES operationId: list_volumes summary: List all docker volumes from the node description: Retrieve a list of all docker volumes from the node. x-permissions: - DOCKER_RESOURCES:VOLUME_LIST responses: '200': description: Volumes successfully fetched from node. content: application/json: schema: description: List all docker volumes from the node type: object additionalProperties: false required: - volumes properties: volumes: type: array description: Docker volumes from the node minItems: 0 maxItems: 1001 items: type: object required: - name - usedByContainers - usedByWorkloads - size - createdAt additionalProperties: false properties: name: type: string description: Docker volume name minLength: 1 maxLength: 1000 pattern: ^[\x20-\x7E\t\n\r]*$ size: type: integer description: Size of the volume in bytes minimum: 0 maximum: 1073741824000 createdAt: type: string description: Creation date of the volume in ISO 8601 format format: date-time minLength: 24 maxLength: 24 usedByContainers: type: array description: Docker containers using the volume minItems: 0 maxItems: 1000 items: type: string description: Docker container name minLength: 2 maxLength: 100 pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$ usedByWorkloads: type: array description: Workloads using the volume minItems: 0 maxItems: 1000 items: type: object required: - name - type - versionName additionalProperties: false properties: name: type: string description: Workload name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) type: type: string description: Workload type enum: - vm - docker - codesys - docker-compose versionName: type: string description: Workload version name minLength: 1 maxLength: 40 pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$)) examples: docker_volumes: value: volumes: - name: volume1 size: 1000000 createdAt: '2025-03-20T10:04:22.000Z' usedByContainers: - container1 - container2 usedByWorkloads: - name: workload1 type: docker versionName: v1 - name: workload2 type: docker-compose versionName: v2 - name: volume2 size: 2000000 createdAt: '2025-03-28T12:02:53.000Z' usedByContainers: - container3 - container4 usedByWorkloads: - name: workload3 type: docker versionName: v1 - name: workload4 type: docker-compose versionName: v2 '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/docker-resources/volumes/{name}: delete: tags: - DOCKER_RESOURCES_VOLUMES operationId: delete_volume summary: Delete a docker volume description: Delete a docker volume from the node. Volume can ba deleted only if it is not used by any docker container. x-permissions: - DOCKER_RESOURCES:VOLUME_DELETE parameters: - name: name in: path required: true description: Name of the docker volume to be deleted. schema: type: string description: Docker volume name minLength: 1 maxLength: 1000 pattern: ^[\x20-\x7E\t\n\r]*$ responses: '204': description: The volume was successfully deleted. '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '409': description: Conflict content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: docker_compose_image_not_found: value: status: 409 msg: Local Docker image not found. Please try deploying the workload again. '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/docker-resources/volumes/{name}/import: post: summary: Import data to an existing docker volume description: Import data to an existing docker volume. The data is provided as a zip archive. operationId: import_data_to_volume tags: - DOCKER_RESOURCES_VOLUMES x-permissions: - DOCKER_RESOURCES:VOLUME_IMPORT parameters: - name: name in: path required: true description: The name of the Docker volume to which the data will be imported. schema: type: string description: Docker volume name minLength: 1 maxLength: 1000 pattern: ^[\x20-\x7E\t\n\r]*$ requestBody: description: Defines volume data to be imported required: true content: multipart/form-data: schema: type: object description: Object containing the zip archive file that includes both the data archive and its SHA256 hash. properties: file: type: string format: binary description: File to be uploaded minLength: 1 maxLength: 1000 responses: '200': description: successful operation, data applied to volume, new volume size returned content: application/json: schema: description: Object containing the size of the volume after the import operation. type: object required: - volumeSize additionalProperties: false properties: volumeSize: type: integer description: Size of the volume in bytes minimum: 1 maximum: 10000000000 example: volumeSize: 123456789 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '409': description: Conflict content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: docker_compose_image_not_found: value: status: 409 msg: Local Docker image not found. Please try deploying the workload again. '415': description: Unsupported media type content: application/json: schema: type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message example: status: 415 message: unsupported media type text/plain errors: - path: /api/setup/configurations message: unsupported media type text/plain '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/docker-resources/images/unused: delete: summary: Remove docker images that are not used by any docker container tags: - DOCKER_RESOURCES_IMAGES description: Removes unused Docker images. This route allows user to remove Docker images that are not used by any docker container on the system. operationId: remove_unused_docker_images x-permissions: - DOCKER_RESOURCES:REMOVE_UNUSED_IMAGES responses: '202': description: Successful operation content: application/json: schema: type: string description: Represents a successful response message minLength: 1 maxLength: 1001 pattern: ^[\x20-\x7E\t\n\r]*$ example: Unused Docker images have been removed from the system. '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '409': description: Conflict content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: docker_compose_image_not_found: value: status: 409 msg: Local Docker image not found. Please try deploying the workload again. '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/docker-resources/volumes/{name}/export: get: tags: - DOCKER_RESOURCES_VOLUMES operationId: export_volume summary: Export a Docker volume description: Export a Docker volume to a specified path. x-permissions: - DOCKER_RESOURCES:VOLUME_EXPORT parameters: - name: name in: path required: true description: Name of the docker volume to be exported. schema: type: string description: Docker volume name minLength: 1 maxLength: 1000 pattern: ^[\x20-\x7E\t\n\r]*$ responses: '200': description: The volume was successfully exported content: application/zip: schema: description: The volume data is downloaded as a .zip archive. type: string format: binary minLength: 1 maxLength: 1000 '400': description: Bad request content: application/json: schema: oneOf: - type: object description: Validation error. required: - status - message - errors additionalProperties: false properties: status: type: integer description: HTTP status code message: type: string minLength: 1 maxLength: 1001 description: The validation error message errors: type: array minItems: 1 maxItems: 1001 description: Detailed description of what does not match the schema items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message - type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden '404': description: The resource not found content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* '409': description: Conflict content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: docker_compose_image_not_found: value: status: 409 msg: Local Docker image not found. Please try deploying the workload again. '500': description: Internal Server Error content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* /api/auth/authenticate: get: summary: Authenticate Data Path user tags: - DATAPATH x-permissions: - DATAPATH:AUTHENTICATE_USER description: Authenticate a Data Path user for access. operationId: authenticate_data_path_user responses: '200': description: User authenticated successfully. content: text/plain; charset=utf-8: schema: description: Representing successfully response type: string example: OK '401': description: You are not authorized to perform this operation content: application/json: schema: oneOf: - type: object description: User not authorized required: - user additionalProperties: false properties: user: type: string description: Not authorized enum: - not authorized - type: object description: User not authorized required: - status - msg additionalProperties: false properties: status: type: integer minimum: 401 maximum: 401 description: HTTP status code msg: type: string description: Error message enum: - Not authorized - not authorized - type: object description: Cookie header is missing in the request required: - status - message - errors additionalProperties: false properties: status: description: HTTP status code type: integer enum: - 401 message: type: string description: The validation error message enum: - '''cookie'' header required' errors: type: array minItems: 1 maxItems: 1001 description: List of errors items: type: object properties: path: type: string minLength: 1 maxLength: 1001 description: Specified location within the document where the error occurred message: type: string minLength: 1 maxLength: 1001 description: Error message examples: not_authorized_usr: value: user: not authorized not_authorized_status: value: status: 401 msg: Not authorized '403': description: Forbidden content: application/json: schema: type: object description: Description of error associated with status code. required: - status - msg additionalProperties: false properties: status: type: integer description: HTTP status code msg: type: string minLength: 1 maxLength: 1001 description: Error message pattern: .* examples: forbidden: value: status: 403 msg: Forbidden components: securitySchemes: cookieAuth: type: apiKey in: header name: cookie basicAuth: type: http scheme: basic security: - cookieAuth: []