add device communication
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
14ba34237b
commit
f26558c337
@ -1,2 +1,7 @@
|
||||
# asyncapi
|
||||
# AsyncAPI Definition
|
||||
|
||||
Specification of MQ based API in the Birbnetes system.
|
||||
|
||||
Check summary here: https://asyncapi.kmlabz.com/
|
||||
|
||||
Reading of rendered summary does not replace careful reading of the full API definition.
|
186
birbnetes.yml
186
birbnetes.yml
@ -1,54 +1,196 @@
|
||||
asyncapi: 2.0.0
|
||||
info:
|
||||
title: Birbnetes API
|
||||
version: '1.0.0'
|
||||
version: '2.0.0'
|
||||
description: |
|
||||
Async messages sent between major components of the Birbnetes system.
|
||||
contact:
|
||||
name: KMLabz Team
|
||||
url: https://xwiki.kmlabz.com
|
||||
email: birbnetes@kmlabz.com
|
||||
license:
|
||||
name: Apache 2.0
|
||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
||||
servers:
|
||||
production:
|
||||
kubernetes:
|
||||
url: birb-rabbitmq:{port}
|
||||
protocol: amqp
|
||||
protocolVersion: "0.9.1"
|
||||
description: RabbitMQ
|
||||
security:
|
||||
- user_pass: []
|
||||
variables:
|
||||
port:
|
||||
description: Available in the birbnetes namespace of Kubernetes.
|
||||
default: '5672'
|
||||
edge:
|
||||
url: activemq.kmlabz.com:{port}
|
||||
protocol: secure-mqtt
|
||||
protocolVersion: "3.x"
|
||||
bindings:
|
||||
mqtt:
|
||||
clientId: iot
|
||||
cleanSession: true
|
||||
lastWill:
|
||||
topic: /last-wills
|
||||
qos: 2
|
||||
message: Guest gone offline.
|
||||
retain: false
|
||||
keepAlive: 60
|
||||
bindingVersion: 0.1.0
|
||||
description: Apache ActiveMQ Artemis
|
||||
variables:
|
||||
port:
|
||||
description: Only usable over mqtt-nio+ssl for better security.
|
||||
default: '61616'
|
||||
|
||||
defaultContentType: application/json
|
||||
|
||||
channels:
|
||||
wave:
|
||||
kubernetes/wave:
|
||||
bindings:
|
||||
amqp:
|
||||
queue:
|
||||
name: please-declare
|
||||
durable: true
|
||||
autoDelete: false
|
||||
vhost: /
|
||||
exchange:
|
||||
name: wave
|
||||
type: fanout
|
||||
durable: true
|
||||
autoDelete: false
|
||||
vhost: /
|
||||
bindingVersion: 0.1.0
|
||||
description: IDs of recieved sound files.
|
||||
subscribe:
|
||||
summary: Used to trigger processing of recieved waveforms.
|
||||
summary: Trigger classification
|
||||
description: Used to trigger processing of recieved waveforms.
|
||||
operationId: receiveMeasurement
|
||||
message:
|
||||
$ref: '#/components/messages/wave'
|
||||
output:
|
||||
publish:
|
||||
summary: Trigger classification
|
||||
description: Trigger processing of a waveform.
|
||||
operationId: triggerProcessing
|
||||
message:
|
||||
$ref: '#/components/messages/wave'
|
||||
kubernetes/output:
|
||||
bindings:
|
||||
amqp:
|
||||
ack: false
|
||||
queue:
|
||||
name: please-declare
|
||||
durable: true
|
||||
autoDelete: false
|
||||
vhost: /
|
||||
exchange:
|
||||
name: output
|
||||
type: fanout
|
||||
durable: true
|
||||
autoDelete: false
|
||||
vhost: /
|
||||
bindingVersion: 0.1.0
|
||||
description: Confidence of AI
|
||||
subscribe:
|
||||
summary: Probaility attached to a particular sample.
|
||||
summary: AI Output
|
||||
description: Probaility attached to a particular sample.
|
||||
operationId: receiveProbability
|
||||
message:
|
||||
$ref: '#/components/messages/output'
|
||||
publish:
|
||||
summary: AI Output
|
||||
description: Probaility attached to a particular sample.
|
||||
operationId: sendprobability
|
||||
message:
|
||||
$ref: '#/components/messages/output'
|
||||
edge/sensor:
|
||||
bindings:
|
||||
mqt:
|
||||
qos: 1
|
||||
retain: true
|
||||
bindingVersion: 0.1.0
|
||||
description: Sensor measurement
|
||||
subscribe:
|
||||
summary: Recieve sensor data
|
||||
description: Measurement of a sensor on a particular device.
|
||||
operationId: recieveSensorData
|
||||
message:
|
||||
$ref: '#/components/messages/sensor'
|
||||
publish:
|
||||
summary: Send sensor data
|
||||
description: Measurement of a sensor.
|
||||
operationId: sendSensorData
|
||||
message:
|
||||
$ref: '#/components/messages/sensor'
|
||||
edge/control:
|
||||
bindings:
|
||||
mqt:
|
||||
qos: 2
|
||||
retain: true
|
||||
bindingVersion: 0.1.0
|
||||
description: Command messages sent by the cloud
|
||||
subscribe:
|
||||
summary: Recieve control messages
|
||||
description: Shutdown and powerof messages sent by cloud
|
||||
operationId: recieveCommand
|
||||
message:
|
||||
$ref: '#/components/messages/controlmessage'
|
||||
publish:
|
||||
summary: Send control messages
|
||||
description: Send shutdown and poweron commands to a device or sensor.
|
||||
operationId: sendCommand
|
||||
message:
|
||||
$ref: '#/components/messages/controlmessage'
|
||||
|
||||
components:
|
||||
securitySchemes:
|
||||
user_pass:
|
||||
type: userPassword
|
||||
description: Defined by helm chart.
|
||||
|
||||
messages:
|
||||
wave:
|
||||
name: wave
|
||||
title: Recieve ID
|
||||
summary: Unique ID used to identify a particular sample in the system.
|
||||
contentType: application/json
|
||||
bindings:
|
||||
amqp:
|
||||
bindingVersion: 0.1.0
|
||||
payload:
|
||||
$ref: "#/components/schemas/wavePayload"
|
||||
output:
|
||||
name: output
|
||||
title: Recieve ID
|
||||
summary: Unique ID used to identify a particular sample in the system.
|
||||
title: AI Output
|
||||
summary: Confidence of AI attached to unique ID of sample.
|
||||
contentType: application/json
|
||||
bindings:
|
||||
amqp:
|
||||
bindingVersion: 0.1.0
|
||||
payload:
|
||||
$ref: "#/components/schemas/probabilityPayload"
|
||||
sensor:
|
||||
name: sensorsample
|
||||
title: Sample measurement data
|
||||
summary: Measurement made by a sensor on a device.
|
||||
contentType: application/json
|
||||
bindings:
|
||||
mqtt:
|
||||
bindingVersion: 0.1.0
|
||||
payload:
|
||||
$ref: "#/components/schemas/samplePayload"
|
||||
controlmessage:
|
||||
name: controlmessage
|
||||
title: Control message
|
||||
summary: Control message used to shut down and bring online devices
|
||||
contentType: application/json
|
||||
bindings:
|
||||
mqtt:
|
||||
bindingVersion: 0.1.0
|
||||
payload:
|
||||
$ref: "#/components/schemas/controlPayload"
|
||||
|
||||
schemas:
|
||||
wavePayload:
|
||||
@ -68,3 +210,31 @@ components:
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
summary: Probability of detection
|
||||
samplePayload:
|
||||
type: object
|
||||
properties:
|
||||
deviceID:
|
||||
type: string
|
||||
format: uuid
|
||||
summary: Unique ID used to identify a particular device in the system.
|
||||
sensorID:
|
||||
type: string
|
||||
format: uuid
|
||||
summary: Unique ID used to identify a particular sensor on a device.
|
||||
measurement:
|
||||
type: string
|
||||
summary: Measurement data
|
||||
controlPayload:
|
||||
type: object
|
||||
properties:
|
||||
deviceID:
|
||||
type: string
|
||||
format: uuid
|
||||
summary: Unique ID used to identify a particular device in the system.
|
||||
sensorID:
|
||||
type: string
|
||||
format: uuid
|
||||
summary: Unique ID used to identify a particular sensor on a device.
|
||||
command:
|
||||
type: string
|
||||
enom: ["online", "offline"]
|
Loading…
Reference in New Issue
Block a user