asyncapi: '1.0.0' info: title: 'IoT Data simulator websocket/STOMP API' version: '1.0.0' x-logo: https://avatars0.githubusercontent.com/u/16401334?v=4&s=200 servers: - url: services:8080/ws description: sessions management API scheme: stomp topics: '/user/queue/error': subscribe: $ref: '#/components/messages/errorMessage' '/user/queue/sessions': subscribe: $ref: '#/components/messages/sessionStatusesCommandResultMessage' '/sessions': publish: $ref: '#/components/messages/sessionStatusesCommandMessage' '/user/queue/sessions.{sessionId}': subscribe: $ref: '#/components/messages/sessionManagementCommandResultMessage' '/sessions.{sessionId}': publish: $ref: '#/components/messages/sessionManagementCommandMessage' '/topic/sessions.{sessionId}': subscribe: $ref: '#/components/messages/sessionStatusMessage' '/topic/sessions.{sessionId}.payload': subscribe: $ref: '#/components/messages/sessionsPayloadMessage' '/topic/sessions.{sessionId}.analytics': subscribe: $ref: '#/components/messages/sessionsAnalyticsMessage' '/topic/sessions.{sessionId}.errors': subscribe: $ref: '#/components/messages/sessionsErrorMessage' components: messages: errorMessage: summary: Services unexpected error message. tags: - name: error payload: type: object properties: message: type: string description: error message property sessionStatusesCommandMessage: summary: An empty message to trigger provision of all active sessions statuses. tags: - name: sessions - name: status - name: command sessionManagementCommandMessage: summary: Message to manage session execution. tags: - name: sessions - name: management - name: command payload: type: object properties: sessionId: type: string description: session id property command: type: 'string' description: 'session management command. One of the following: "start" | "pause" | "stop" | "restart"' enum: - 'start' - 'pause' - 'stop' - 'restart' required: - sessionId - command sessionManagementCommandResultMessage: summary: Active sesssion managemnt command result. tags: - name: sessions - name: management - name: command - name: result payload: type: object properties: type: type: string default : 'session_management_command_result' description: '"session_management_command_result" message type' sessionId: type: string description: session id property result: $ref: '#/components/schemas/commandResult' errorMessage: $ref: '#/components/schemas/commandErrorMessage' sessionStatusesCommandResultMessage: summary: Active sesssions status information. tags: - name: session - name: status - name: command - name: result payload: type: object properties: type: type: string default : 'sessions_status_command_result' description: '"sessions_status_command_result" message type' result: $ref: '#/components/schemas/commandResult' errorMessage: $ref: '#/components/schemas/commandErrorMessage' statuses: type: 'array' description: active sessions statuses items: $ref: '#/components/schemas/sessionStatus' required: - type - statuses sessionStatusMessage: summary: Active sesssions status result message. tags: - name: session - name: status payload: type: object properties: type: type: string default : 'session_status' description: '"session_status" message type' status: $ref: '#/components/schemas/sessionStatus' sessionsPayloadMessage: summary: Active sesssions processed payload message. tags: - name: session - name: payload payload: type: object properties: type: type: string default : 'session_payload' description: '"session_payload" message type' sessionId: type: string description: session id property message: type: string description: session payload message which has been successfully sent to external target system timestamp: type: number format: int64 description: unix format timestamp sessionsAnalyticsMessage: summary: Active sesssion analytics message. tags: - name: session - name: analytics payload: type: object properties: type: type: string default : 'session_analytics' description: '"session_analytics" message type' tag: type: string description: 'session analytics tag. One of the following: "sessions_started" | "session_completed" | "session_paused" | "session_failed"' enum: - 'sessions_started' - 'session_completed' - 'session_paused' - 'session_failed' sessionId: type: string description: session id property message: type: string description: session analytics message timestamp: type: number format: int64 description: unix format timestamp sessionsErrorMessage: summary: Active sesssion error message. tags: - name: session - name: error payload: type: object properties: type: type: string default : 'session_error' description: '"session_error" message type' sessionId: type: string description: session id property message: type: string description: error message timestamp: type: number format: int64 description: unix format timestamp schemas: sessionStatus: type: object properties: sessionId: type: string description: session id property state: type: string description: 'current active session state. One of the following: "running" | "paused" | "completed" | "failed"' enum: - 'running' - 'paused' - 'completed' - 'failed' errors: type: array description: 'contains session errors in case of session state "failed"' items: type: string commandResult: type: string description: 'command processing result. One of the following: "success" | "failure"' enum: - 'success' - 'failure' commandErrorMessage: type: string description: 'contains error description in case of result: "failure"'