openapi: 3.0.0 servers: [] info: description: '' version: 1.0.0 title: Audit Module API termsOfService: 'http://www.belladati.com' contact: email: developer@belladati.com name: Developer @ Belladati tags: [] paths: /auth/token: post: description: Issue JWT token operationId: authTokenPost requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserPassword' responses: '200': description: Authentication successful content: application/json: schema: $ref: '#/components/schemas/Token' '401': description: Authentication failed /pause: get: summary: Pause module description: '' parameters: - name: name in: query required: true schema: type: string operationId: pause responses: '200': description: Pause OK '400': description: Invalid module name /resume: get: summary: Resume module description: '' parameters: - name: name in: query required: true schema: type: string operationId: resume responses: '200': description: Resume OK content: application/json: schema: {} '400': description: Invalid module name /shutdown: get: summary: Shutdown the host description: Will issue a system command to turn of the host operationId: shutdown responses: '200': description: Shutdown OK content: application/json: schema: {} '400': description: Invalid module name /restart: get: summary: Restart the host description: Will issue a system command to restart the host operationId: restart responses: '200': description: Restart OK content: application/json: schema: {} '400': description: Invalid module name /reload: post: summary: Reload module description: '' parameters: - name: name in: query required: true schema: type: string operationId: reload responses: '200': description: Reload OK content: application/json: schema: {} '400': description: Invalid module name /status: get: summary: '' description: '' parameters: [] operationId: status responses: '200': description: Status response content: application/json: schema: $ref: '#/components/schemas/StatusResponse' /config: post: description: Handle post config for existing module parameters: - name: name in: query required: true schema: type: string operationId: config responses: '200': description: Config OK '400': description: Config error requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AnyValue' description: Config JSON /module: post: description: Handle adding new module with config parameters: - name: name description: Name of the main module to add this new module into, use /mainmodules to get name of mainmodules in: query required: true schema: type: string operationId: modulePost requestBody: required: true description: Config JSON in various forms content: text/plain: schema: type: string description: Config JSON as plain string application/json: schema: $ref: '#/components/schemas/AnyValue' description: Config JSON responses: '200': description: Post config OK '400': description: Post config error content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete module parameters: - name: name description: Main module name in: query schema: type: string - name: moduleName description: Module name in: query schema: type: string operationId: moduleDelete responses: '200': description: Delete module '400': description: Delete module error content: application/json: schema: $ref: '#/components/schemas/AnyValue' get: description: Get module status operationId: moduleGet parameters: - name: name description: Module name in: query schema: type: string responses: '404': description: Module not found '200': description: Module status content: application/json: schema: $ref: '#/components/schemas/ModuleStatusResponse' /modules: get: description: List all connected modules and information about them, including audit itself operationId: modules responses: '200': description: OK response content: application/json: schema: $ref: '#/components/schemas/ModulesResponse' /mainmodules: get: description: Lists main modules and their submodules, typically there will be 2 main modules - GEN_SENDER and GEN_RECEIVER and one submodule for each operationId: mainmodules responses: 200: description: Get main modules OK response content: application/json: schema: $ref: '#/components/schemas/MainmodulesResponse' /setlicense: post: description: Propagates license from audit to all modules operationId: setlicense responses: 200: description: Set license OK /user: post: description: Add or update user operationId: userPost parameters: - name: name description: Submodule name to post user to, not required in: query schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' responses: '200': description: Post user OK content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' '400': description: Post user error content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete user operationId: userDelete parameters: - name: name description: Submodule name to post user to, not required in: query schema: type: string - name: username in: query schema: type: string responses: '200': description: Delete user OK content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' '400': description: Delete user error content: application/json: schema: $ref: '#/components/schemas/AnyValue' /sensors: get: description: Get sensors operationId: sensors responses: '200': description: Sensors statuses content: application/json: schema: $ref: '#/components/schemas/AnyValue' /data: parameters: - name: name in: query required: true schema: type: string - name: start in: query schema: type: integer - name: limit in: query schema: type: integer - name: order in: query schema: type: string get: description: Get receiver data operationId: dataGet responses: '200': description: Data from receiver content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete receiver data, produces query DELETE FROM ... WHERE id > start AND id <= stop AND rownum() <= limit operationId: dataDelete parameters: - in: query name: start schema: type: integer - in: query name: stop schema: type: integer - in: query name: limit schema: type: integer responses: '200': description: Data deleted content: text/plain: schema: type: integer description: Number of deleted message /module/{moduleName}: parameters: - in: path name: moduleName description: Module name schema: type: string required: true get: description: Get module status operationId: moduleStatus responses: '404': description: Module not found '200': description: Module status content: application/json: schema: $ref: '#/components/schemas/ModuleStatusResponse' /module/{moduleName}/pause: get: description: Pause module operationId: modulePause parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module paused /module/{moduleName}/resume: get: description: Resume module operationId: moduleResume parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module resumed /module/{moduleName}/reload: get: description: Reload module config operationId: moduleReload parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module reload post: description: Reload module config operationId: moduleReloadPost parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module reload /module/{moduleName}/logs: get: description: Module logs operationId: moduleLogs parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Plain text logs content: text/plain: schema: type: string /module/{moduleName}/users: post: description: Add new user to a module operationId: moduleUsersPost parameters: - in: path name: moduleName schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' responses: '200': description: User was added successfully content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' /module/{moduleName}/users/{username}: delete: description: Delete user from a module operationId: moduleUsersDelete parameters: - in: path name: moduleName schema: type: string required: true - in: path name: username schema: type: string required: true responses: '200': description: User was deleted successfully content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' /receivers/{moduleName}/data: parameters: - in: path name: moduleName schema: type: string required: true get: description: Get list of the current messages operationId: receiverDataGet responses: '200': description: Current receiever data that receiver has received and has not been deleted yet content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete receiver data operationId: receiverDataDelete parameters: - in: query name: start schema: type: integer - in: query name: stop schema: type: integer - in: query name: limit schema: type: integer responses: '200': description: Data deleted content: text/plain: schema: type: integer description: Number of deleted message /devices: get: description: List all connected devices operationId: devicesGet parameters: - in: query name: receiver_id description: Filter list by receiver schema: type: string - in: query name: device_id description: Filter list by device ID schema: type: string - in: query name: start description: Filter list by timestamp from schema: type: string - in: query name: stop description: Filter list by timestamp to schema: type: string - in: query name: sensor_id description: Filter list by sensor schema: type: string - in: query name: order description: List order by device ID, choose direction schema: type: string enum: - ASC - DESC responses: '200': description: Filtered list of devices content: application/json: schema: $ref: '#/components/schemas/DevicesList' /deviceGroups: get: description: List of defined device groups operationId: deviceGroupsGet responses: '200': description: Filtered list of devices content: application/json: schema: $ref: '#/components/schemas/DeviceGroups' post: description: Create new device group operationId: deviceGroupsPost requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeviceGroup' responses: '200': description: Device group has been created /deviceGroups/{id}: delete: description: Delete device group operationId: deviceGroupsDelete parameters: - in: path name: id description: Filter list by receiver schema: type: integer responses: '200': description: Device group has been deleted /logs: get: description: Fetch module logs operationId: logs parameters: - in: query name: name schema: type: string required: true - in: query name: position schema: type: integer - in: query name: count schema: type: integer responses: '200': description: Plain text logs content: text/plain: schema: type: string /logout: get: description: Logout user from module operationId: logout responses: '401': description: User was logged out components: schemas: AnyValue: {} Users: type: object properties: username: type: string roles: type: array items: type: String StatusResponse: type: object properties: type: type: string name: type: string version: type: string status: type: string totalSensors: type: int datetime: type: string timestamp: type: string localMemberUUID: type: string clusterMembersUUID: type: array items: type: string sid: type: string licenseValid: type: string licenseError: type: string startupError: type: string config: type: AnyValue users: type: Users MainmodulesResponse: type: array items: type: AnyValue UserRequest: type: object properties: username: type: string password: type: string role: type: string UserPostResponse: type: object properties: username: type: string result: type: string enum: - ok - error error: type: string UserResponse: type: object properties: username: type: string password: type: string roles: type: array items: type: string AuthResponse: type: object properties: drop: type: boolean enabled: type: boolean merge: type: boolean users: type: array items: type: UserResponse ModuleStatusResponse: type: object properties: config: description: Module specific configuration, includes auth settings, every module has a different response type: AnyValue status: description: Module specific status information, with some common properties like status or name type: AnyValue ModulesResponse: type: array items: type: ModuleResponseArrayItem ModuleResponseArrayItem: type: object properties: name: type: string registration: type: string status: enum: - UP - PAUSED - TO_PAUSED type: type: string location: type: object properties: endpoint: type: string host: type: string port: type: integer root: type: string ssl: type: boolean metadata: type: object properties: type: type: string DevicesList: type: array items: type: object properties: id: type: integer json: type: string receiver_id: type: string sensor_id: type: string timestamp: type: number DeviceGroups: type: array items: type: DeviceGroup DeviceGroup: type: object properties: id: type: string type: type: string description: Type assignment method enum: - IP_BASED - CERTIFICATE_BASED - TOPIC_BASED - ID_BASED - RECEIVER_BASED - MANUAL typeValue: type: string description: > IP range (comma separated), for IP_BASED Certificate (PEM format), for CERTIFICATE_BASED Select receiver, for RECEIVER_BASED Device IDs (comma separated). for ID_BASED MQTT topic name, for TOPIC_BASED deviceType: type: integer description: ID of device type UserPassword: type: object properties: username: type: string password: type: string Token: type: object properties: token: type: string |
openapi: 3.0.0 servers: [] info: description: '' version: 1.0.0 title: Audit Module API termsOfService: 'http://www.belladati.com' contact: email: developer@belladati.com name: Developer @ Belladati tags: [] paths: /auth/token: post: description: Issue JWT token operationId: authTokenPost requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserPassword' responses: '200': description: Authentication successful content: application/json: schema: $ref: '#/components/schemas/Token' '401': description: Authentication failed /pause: get: summary: Pause module description: '' parameters: - name: name in: query required: true schema: type: string operationId: pause responses: '200': description: Pause OK '400': description: Invalid module name /resume: get: summary: Resume module description: '' parameters: - name: name in: query required: true schema: type: string operationId: resume responses: '200': description: Resume OK content: application/json: schema: {} '400': description: Invalid module name /shutdown: get: summary: Shutdown the host description: Will issue a system command to turn of the host operationId: shutdown responses: '200': description: Shutdown OK content: application/json: schema: {} '400': description: Invalid module name /restart: get: summary: Restart the host description: Will issue a system command to restart the host operationId: restart responses: '200': description: Restart OK content: application/json: schema: {} '400': description: Invalid module name /reload: post: summary: Reload module description: '' parameters: - name: name in: query required: true schema: type: string operationId: reload responses: '200': description: Reload OK content: application/json: schema: {} '400': description: Invalid module name /status: get: summary: '' description: '' parameters: [] operationId: status responses: '200': description: Status response content: application/json: schema: $ref: '#/components/schemas/StatusResponse' /config: post: description: Handle post config for existing module parameters: - name: name in: query required: true schema: type: string operationId: config responses: '200': description: Config OK '400': description: Config error requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AnyValue' description: Config JSON /module: post: description: Handle adding new module with config parameters: - name: name description: Name of the main module to add this new module into, use /mainmodules to get name of mainmodules in: query required: true schema: type: string operationId: modulePost requestBody: required: true description: Config JSON in various forms content: text/plain: schema: type: string description: Config JSON as plain string application/json: schema: $ref: '#/components/schemas/AnyValue' description: Config JSON responses: '200': description: Post config OK '400': description: Post config error content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete module parameters: - name: name description: Main module name in: query schema: type: string - name: moduleName description: Module name in: query schema: type: string operationId: moduleDelete responses: '200': description: Delete module '400': description: Delete module error content: application/json: schema: $ref: '#/components/schemas/AnyValue' get: description: Get module status operationId: moduleGet parameters: - name: name description: Module name in: query schema: type: string responses: '404': description: Module not found '200': description: Module status content: application/json: schema: $ref: '#/components/schemas/ModuleStatusResponse' /modules: get: description: List all connected modules and information about them, including audit itself operationId: modules responses: '200': description: OK response content: application/json: schema: $ref: '#/components/schemas/ModulesResponse' /mainmodules: get: description: Lists main modules and their submodules, typically there will be 2 main modules - GEN_SENDER and GEN_RECEIVER and one submodule for each operationId: mainmodules responses: 200: description: Get main modules OK response content: application/json: schema: $ref: '#/components/schemas/MainmodulesResponse' /setlicense: post: description: Propagates license from audit to all modules operationId: setlicense responses: 200: description: Set license OK /user: post: description: Add or update user operationId: userPost parameters: - name: name description: Submodule name to post user to, not required in: query schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' responses: '200': description: Post user OK content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' '400': description: Post user error content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete user operationId: userDelete parameters: - name: name description: Submodule name to post user to, not required in: query schema: type: string - name: username in: query schema: type: string responses: '200': description: Delete user OK content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' '400': description: Delete user error content: application/json: schema: $ref: '#/components/schemas/AnyValue' /sensors: get: description: Get sensors operationId: sensors responses: '200': description: Sensors statuses content: application/json: schema: $ref: '#/components/schemas/AnyValue' /data: parameters: - name: name in: query required: true schema: type: string - name: start in: query schema: type: integer - name: limit in: query schema: type: integer - name: order in: query schema: type: string get: description: Get receiver data operationId: dataGet responses: '200': description: Data from receiver content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete receiver data, produces query DELETE FROM ... WHERE id > start AND id <= stop AND rownum() <= limit operationId: dataDelete parameters: - in: query name: start schema: type: integer - in: query name: stop schema: type: integer - in: query name: limit schema: type: integer responses: '200': description: Data deleted content: text/plain: schema: type: integer description: Number of deleted message /module/{moduleName}: parameters: - in: path name: moduleName description: Module name schema: type: string required: true get: description: Get module status operationId: moduleStatus responses: '404': description: Module not found '200': description: Module status content: application/json: schema: $ref: '#/components/schemas/ModuleStatusResponse' /module/{moduleName}/pause: get: description: Pause module operationId: modulePause parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module paused /module/{moduleName}/resume: get: description: Resume module operationId: moduleResume parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module resumed /module/{moduleName}/reload: get: description: Reload module config operationId: moduleReload parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module reload post: description: Reload module config operationId: moduleReloadPost parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Module reload /module/{moduleName}/logs: get: description: Module logs operationId: moduleLogs parameters: - in: path name: moduleName schema: type: string required: true responses: '200': description: Plain text logs content: text/plain: schema: type: string /module/{moduleName}/users: post: description: Add new user to a module operationId: moduleUsersPost parameters: - in: path name: moduleName schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRequest' responses: '200': description: User was added successfully content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' /module/{moduleName}/users/{username}: delete: description: Delete user from a module operationId: moduleUsersDelete parameters: - in: path name: moduleName schema: type: string required: true - in: path name: username schema: type: string required: true responses: '200': description: User was deleted successfully content: application/json: schema: $ref: '#/components/schemas/UserPostResponse' /receivers/{moduleName}/data: parameters: - in: path name: moduleName schema: type: string required: true get: description: Get list of the current messages operationId: receiverDataGet responses: '200': description: Current receiever data that receiver has received and has not been deleted yet content: application/json: schema: $ref: '#/components/schemas/AnyValue' delete: description: Delete receiver data operationId: receiverDataDelete parameters: - in: query name: start schema: type: integer - in: query name: stop schema: type: integer - in: query name: limit schema: type: integer responses: '200': description: Data deleted content: text/plain: schema: type: integer description: Number of deleted message /devices: get: description: List all connected devices operationId: devicesGet parameters: - in: query name: receiver_id description: Filter list by receiver schema: type: string - in: query name: device_id description: Filter list by device ID schema: type: string - in: query name: start description: Filter list by timestamp from schema: type: string - in: query name: stop description: Filter list by timestamp to schema: type: string - in: query name: sensor_id description: Filter list by sensor schema: type: string - in: query name: order description: List order by device ID, choose direction schema: type: string enum: - ASC - DESC responses: '200': description: Filtered list of devices content: application/json: schema: $ref: '#/components/schemas/DevicesList' /deviceGroups: get: description: List of defined device groups operationId: deviceGroupsGet responses: '200': description: Filtered list of devices content: application/json: schema: $ref: '#/components/schemas/DeviceGroups' post: description: Create new device group operationId: deviceGroupsPost requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeviceGroup' responses: '200': description: Device group has been created /deviceGroups/{id}: delete: description: Delete device group operationId: deviceGroupsDelete parameters: - in: path name: id description: Filter list by receiver schema: type: integer responses: '200': description: Device group has been deleted /logs: get: description: Fetch module logs operationId: logs parameters: - in: query name: name schema: type: string required: true - in: query name: position schema: type: integer - in: query name: count schema: type: integer responses: '200': description: Plain text logs content: text/plain: schema: type: string /logout: get: description: Logout user from module operationId: logout responses: '401': description: User was logged out components: schemas: AnyValue: {} Users: type: object properties: username: type: string roles: type: array items: type: String StatusResponse: type: object properties: type: type: string name: type: string version: type: string status: type: string totalSensors: type: int datetime: type: string timestamp: type: string localMemberUUID: type: string clusterMembersUUID: type: array items: type: string sid: type: string licenseValid: type: string licenseError: type: string startupError: type: string config: type: AnyValue users: type: Users MainmodulesResponse: type: array items: type: AnyValue UserRequest: type: object properties: username: type: string password: type: string role: type: string UserPostResponse: type: object properties: username: type: string result: type: string enum: - ok - error error: type: string UserResponse: type: object properties: username: type: string password: type: string roles: type: array items: type: string AuthResponse: type: object properties: drop: type: boolean enabled: type: boolean merge: type: boolean users: type: array items: type: UserResponse ModuleStatusResponse: type: object properties: config: description: Module specific configuration, includes auth settings, every module has a different response type: AnyValue status: description: Module specific status information, with some common properties like status or name type: AnyValue ModulesResponse: type: array items: type: ModuleResponseArrayItem ModuleResponseArrayItem: type: object properties: name: type: string registration: type: string status: enum: - UP - PAUSED - TO_PAUSED type: type: string location: type: object properties: endpoint: type: string host: type: string port: type: integer root: type: string ssl: type: boolean metadata: type: object properties: type: type: string DevicesList: type: array items: type: object properties: id: type: integer json: type: string receiver_id: type: string sensor_id: type: string timestamp: type: number DeviceGroups: type: array items: type: DeviceGroup DeviceGroup: type: object properties: id: type: string type: type: string description: Type assignment method enum: - IP_BASED - CERTIFICATE_BASED - TOPIC_BASED - ID_BASED - RECEIVER_BASED - MANUAL typeValue: type: string description: > IP range (comma separated), for IP_BASED Certificate (PEM format), for CERTIFICATE_BASED Select receiver, for RECEIVER_BASED Device IDs (comma separated). for ID_BASED MQTT topic name, for TOPIC_BASED deviceType: type: integer description: ID of device type UserPassword: type: object properties: username: type: string password: type: string Token: type: object properties: token: type: string |