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
Overview
Content Tools