openapi: 3.2.0 info: version: 2.10.0 description: 'Nerve OVDM API to manage: - node configuration - system configuration - system network configuration - workloads - remote connections - dna' title: Nerve Node SYSTEM API contact: name: Nerve support email: support@tttech-industrial.com security: - cookieAuth: [] tags: - name: System paths: /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: .* components: securitySchemes: cookieAuth: type: apiKey in: header name: cookie basicAuth: type: http scheme: basic