{ "components":{ "schemas":{ "MESSAGE":{ "description":"Full message definition with message-metadata in `header` and different message type schemas under `payload`", "properties":{ "header":{ "$ref":"#/components/schemas/header" }, "payload":{ "$ref":"#/components/schemas/payload" } }, "required":[ "header", "payload" ], "type":"object" }, "acknowledgement":{ "properties":{ "approved":{ "description":"Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected", "type":"boolean" }, "autonomy_engine_plan_ID":{ "description":"Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform", "example":1, "type":"integer" }, "message_type":{ "description":"Type of message", "enum":[ "acknowledgement" ], "example":"acknowledgement", "type":"string" }, "platform_ID":{ "description":"Unique identifier for this platform", "example":"reav-x-1", "type":"string" } }, "required":[ "message_type", "autonomy_engine_plan_ID", "platform_ID", "approved" ], "type":"object" }, "header":{ "discriminator":{ "propertyName":"message_type" }, "properties":{ "delivery_type":{ "default":"publish", "description":"To publish or broadcast this message.", "enum":[ "broadcast", "publish" ], "example":"publish", "type":"string" }, "destination":{ "description":"Publisher topic; What is the destination of this message", "example":"ah1", "type":"string" }, "encoded":{ "description":"Indicate that message raw (encoded) or decoded. Options: encoded=True, decoded=False", "example":false, "type":"boolean" }, "message_ID":{ "description":"An identifier for the type of message received.", "example":"b427003c-0000-11aa-a1eb-bvcdfghjgfdd", "type":"string" }, "source":{ "description":"The sender; Where is this message from", "example":"autonomy_engine", "type":"string" }, "timestamp":{ "description":"Timestamp of message", "example":"2022-11-16T00:00:00Z", "format":"date-time", "type":"string" }, "version":{ "description":"Version of comms backbone message format protocol", "example":2.0, "format":"float", "type":"number" } }, "type":"object" }, "mission_plan":{ "properties":{ "autonomy_engine_plan_ID":{ "description":"Unique identifier for this plangenerated by the Autonomy Engine", "example":3, "type":"integer" }, "message_type":{ "description":"Type of message", "enum":[ "mission_plan" ], "example":"mission_plan", "type":"string" }, "plan":{ "items":{ "properties":{ "action":{ "description":"Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`.", "example":"move", "type":"string" }, "activate_payload":{ "description":"To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`", "example":true, "type":"boolean" }, "altitude":{ "description":"Altitude of next action", "example":15.0, "format":"float", "type":"number" }, "depth":{ "description":"Depth of next action", "example":15.0, "format":"float", "type":"number" }, "start_point_latitude":{ "description":"Start point, x-coordinate", "example":-4.187143188645706, "format":"float", "type":"number" }, "start_point_longitude":{ "description":"Start point, y-coordinate", "example":50.37072283932642, "format":"float", "type":"number" }, "target_waypoint_latitude":{ "description":"Target waypoint, x-coordinate", "example":-4.187143188645706, "format":"float", "type":"number" }, "target_waypoint_longitude":{ "description":"Target waypoint, y-coordinate", "example":50.37072283932642, "format":"float", "type":"number" }, "timeout":{ "description":"Timeout set to perform action", "example":1800.0, "format":"float", "type":"number" } }, "required":[ "target_waypoint_latitude", "target_waypoint_longitude" ], "type":"object" }, "type":"array" }, "platform_ID":{ "description":"Unique identifier for this platform", "example":"reav-x-1", "type":"string" } }, "required":[ "message_type", "autonomy_engine_plan_ID", "platform_ID", "plan" ], "type":"object" }, "mission_plan_encoded":{ "properties":{ "data":{ "description":"encoded string. E.g. Base64 encoded", "example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==", "type":"string" }, "file_name":{ "description":"Name of file", "example":"ah1-0238126349247372.bin", "type":"string" }, "is_binary":{ "description":"True if the data field contains binary format data encoded as base64. False if the data field contains ascii content such as NMEA.", "example":true, "type":"boolean" }, "message_type":{ "description":"Type of message", "enum":[ "mission_plan_encoded" ], "example":"mission_plan_encoded", "type":"string" }, "mime_type":{ "description":"MIME type", "example":"application/gzip", "type":"string" } }, "required":[ "data", "is_binary" ], "type":"object" }, "observation":{ "properties":{ "additional_data":{ "description":"Placeholder field for any additional data", "example":{ "sensor_payload":false } }, "message_type":{ "description":"Type of message", "enum":[ "observation" ], "example":"observation", "type":"string" }, "platform_ID":{ "description":"Unique identifier for this platform", "example":"reav-x-1", "type":"string" }, "points_of_interest":{ "description":"Points from features of interest identified by platform if any found.", "items":{ "properties":{ "latitude":{ "description":"Identified x-coordinate of point of interest", "example":178.2, "format":"float", "type":"number" }, "longitude":{ "description":"Identified y-coordinate of point of interest", "example":-10.122, "format":"float", "type":"number" }, "quality_of_point":{ "description":"Quality/strength of points from features of interest identified by platform.", "example":0.98, "format":"float", "type":"number" } }, "required":[ "latitude", "longitude" ], "type":"object" }, "type":"array" }, "region_surveyed":{ "description":"Region surveyed by given platform. GEOJSON", "example":"", "nullable":true } }, "required":[ "message_type", "platform_ID" ], "type":"object" }, "observation_encoded":{ "properties":{ "data":{ "description":"encoded string. E.g. Base64 encoded", "example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==", "type":"string" }, "file_name":{ "description":"Name of file", "example":"ah1-0238126349247372.bin", "type":"string" }, "is_binary":{ "description":"True if the data field contains binary format data encoded as base64. False if the data field contains ascii content such as NMEA.", "example":true, "type":"boolean" }, "message_type":{ "description":"Type of message", "enum":[ "observation_encoded" ], "example":"observation_encoded", "type":"string" }, "mime_type":{ "description":"MIME type", "example":"application/gzip", "type":"string" } }, "required":[ "data", "is_binary" ], "type":"object" }, "payload":{ "discriminator":{ "mapping":{ "acknowledgement":"#/components/schemas/acknowledgement", "mission_plan":"#/components/schemas/mission_plan", "mission_plan_encoded":"#/components/schemas/mission_plan_encoded", "observation":"#/components/schemas/observation", "observation_encoded":"#/components/schemas/observation_encoded", "planning_configuration":"#/components/schemas/planning_configuration", "platform_status":"#/components/schemas/platform_status", "platform_status_encoded":"#/components/schemas/platform_status_encoded" }, "propertyName":"message_type" }, "oneOf":[ { "$ref":"#/components/schemas/acknowledgement" }, { "$ref":"#/components/schemas/mission_plan" }, { "$ref":"#/components/schemas/mission_plan_encoded" }, { "$ref":"#/components/schemas/observation" }, { "$ref":"#/components/schemas/observation_encoded" }, { "$ref":"#/components/schemas/planning_configuration" }, { "$ref":"#/components/schemas/platform_status" }, { "$ref":"#/components/schemas/platform_status_encoded" } ] }, "planning_configuration":{ "properties":{ "exclusion_zones":{ "description":"Exclusion zones for all platforms", "items":{ "description":"Using GEOJSON, exact 4-point region (rectangle shaped)", "properties":{ "geometry_coordinates":{ "example":[ [ [ -4.187143188645706, 50.37072283932642 ], [ -4.202697005964865, 50.368816892405874 ], [ -4.203156724702808, 50.365640144076906 ], [ -4.19449868846155, 50.362267670845654 ] ] ], "type":"array" } }, "type":"object" }, "type":"array" }, "message_type":{ "description":"Type of message", "enum":[ "planning_configuration" ], "example":"planning_configuration", "type":"string" }, "planning_config_ID":{ "description":"Unique identifier tagged to version of this configuration plan", "example":3, "type":"integer" }, "squads":{ "items":{ "properties":{ "no_of_platforms":{ "description":"Number of platforms", "example":3, "type":"integer" }, "platforms":{ "description":"Squad consists of these platforms", "items":{ "properties":{ "additional_data":{ "description":"Any addition fields/data to be added here", "example":{ "scan_type":"DVL", "swath_width":10.0 }, "type":"object" }, "emergency":{ "properties":{ "additional_data":{ "type": "object", "description":"Any addition fields/data to be added here", "example":{ } }, "safe_command":{ "description":"Command/Action that is native to respective partner's platform/C2", "enum":[ "go_home", "abort_now", "stop_mission" ], "example":"go_home", "type":"string" }, "target_depth":{ "description":"Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`", "example":10.0, "format":"float", "type":"number" }, "target_waypoint_latitude":{ "description":"X-coordinate safe place for respective platform", "example":-7.432, "format":"float", "type":"number" }, "target_waypoint_longitude":{ "description":"Y-coordinate safe place for respective platform", "example":50.365, "format":"float", "type":"number" } }, "required":[ "target_waypoint_latitude", "target_waypoint_longitude", "target_depth" ], "type":"object" }, "max_velocity":{ "description":"Maximum altitude set for squad.", "example":0.9, "format":"float", "type":"number" }, "min_altitude":{ "description":"Minimum altitude set for squad.", "example":15.2, "format":"float", "type":"number" }, "min_velocity":{ "description":"Minimum velocity set for squad.", "example":0.1, "format":"float", "type":"number" }, "model":{ "example":"reav", "type":"string" }, "platform_ID":{ "description":"Unique identifier for this platform", "example":"reav-x-1", "type":"string" } }, "required":[ "platform_ID", "model", "emergency", "min_altitude", "min_velocity", "max_velocity" ], "type":"object" }, "type":"array" }, "region_of_interest":{ "description":"Using GEOJSON, exact 4-point region (rectangle shaped)", "properties":{ "geometry_coordinates":{ "example":[ [ [ -4.187143188645706, 50.37072283932642 ], [ -4.202697005964865, 50.368816892405874 ], [ -4.203156724702808, 50.365640144076906 ], [ -4.19449868846155, 50.362267670845654 ] ] ], "type":"array" } }, "type":"object" }, "squad_ID":{ "description":"Identifier of given squad", "example":23, "type":"integer" }, "squad_mission_type":{ "description":"Mission of given squad: `tracking`, `survey`, `inspection`", "enum":[ "tracking", "survey", "inspection" ], "example":"survey", "type":"string" }, "squad_state":{ "description":"In execution, Waiting.. ", "example":false, "type":"string" } }, "required":[ "squad_ID", "no_of_platforms", "platforms", "squad_mission_type", "squad_state" ], "type":"object" }, "type":"array" } }, "required":[ "message_type", "planning_config_ID", "squads", "exclusion_zones" ], "type":"object" }, "platform_status":{ "properties":{ "altitude":{ "description":"Target altitude in metres", "example":20.0, "format":"float", "type":"number" }, "autonomy_engine_plan_ID":{ "description":"Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform", "example":1, "type":"integer" }, "battery_remaining_capacity":{ "description":"Battery remaining % provided by respective C2", "example":80.2, "format":"float", "type":"number" }, "depth":{ "default":0.0, "description":"Target depth in metres", "example":50.0, "format":"float", "type":"number" }, "heading":{ "description":"Angular distance relative to north, usually 000\u00b0 at north, clockwise through 359\u00b0, in degrees", "example":124.3, "format":"float", "type":"number" }, "health_status":{ "description":"Health status where 0 is OK, 1 is platform has an ERROR", "example":false, "type":"boolean" }, "latitude":{ "description":"Latitude in decimal degrees.", "example":178.2, "format":"float", "type":"number" }, "localisation_east_error":{ "description":"Difference in EAST between deadreckoningand USBL update.", "example":0.000129, "format":"float", "type":"number" }, "localisation_north_error":{ "description":"Difference in NORTH between deadreckoning and USBL update.", "example":0.000129, "format":"float", "type":"number" }, "longitude":{ "description":"Longitude in decimal degrees.", "example":-10.122, "format":"float", "type":"number" }, "message_type":{ "description":"Type of message", "enum":[ "platform_status" ], "example":"platform_status", "type":"string" }, "mission_plan_ID":{ "description":"Mission plan ID according to platform-C2 system", "example":1, "type":"integer" }, "mission_track_ID":{ "description":"Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)", "example":4, "type":"integer" }, "platform_ID":{ "description":"Unique identifier for this platform", "example":"reav-x-1", "type":"string" }, "platform_state":{ "description":"Current state executed by platform. E.g. STOP, IDLE, ABORT.", "example":"ABORT", "type":"string" }, "platform_timestamp":{ "description":"Timestamp for onboard platform status message", "example":"2022-12-21T00:00:00Z", "format":"date-time", "type":"string" }, "range_to_go":{ "description":"Estimated distance to reach next waypoint", "example":124.3, "format":"float", "type":"number" }, "sensor_config":{ "description":"Scanning sensor on platform available to be controlled by the Autonomy Engine", "properties":{ "additional_data":{ "description":"Any addition fields/data to be added here", "example":{ "payload":[ 1.2, 434 ] }, "type":"object" }, "sensor_on":{ "description":"Sensor switched on (True) or off (False)", "example":true, "type":"boolean" }, "sensor_serial":{ "description":"serial number of sensor", "example":"mbes-002a", "type":"string" } }, "type":"object" }, "speed_over_ground":{ "description":"Speed over ground", "example":124.3, "format":"float", "type":"number" }, "status_source":{ "description":"Indicate if this status message is from the platform or USBL", "enum":[ "usbl", "onboard_platform" ], "example":"usbl", "type":"string" }, "thrust_applied":{ "description":"Thrust applied", "example":124.3, "format":"float", "type":"number" }, "transmission_mode":{ "description":"Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)", "enum":[ "acoustics", "iridium", "wifi", "starlink" ], "example":"wifi", "type":"string" }, "usbl_fix_seconds_ago":{ "description":"USBL Fix received x second ago.", "example":10.0, "format":"float", "type":"number" }, "water_current_velocity":{ "description":"Water current magnitude and direction", "example":"124.3NE", "type":"string" } }, "required":[ "message_type", "platform_ID", "status_source", "platform_timestamp", "latitude", "longitude" ], "type":"object" }, "platform_status_encoded":{ "properties":{ "data":{ "description":"encoded string. E.g. Base64 encoded", "example":"SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==", "type":"string" }, "file_name":{ "description":"Name of file", "example":"ah1-0238126349247372.bin", "type":"string" }, "is_binary":{ "description":"True if the data field contains binary format data encoded as base64. False if the data field contains ascii content such as NMEA.", "example":true, "type":"boolean" }, "message_type":{ "description":"Type of message", "enum":[ "platform_status_encoded" ], "example":"platform_status_encoded", "type":"string" }, "mime_type":{ "description":"MIME type", "example":"application/gzip", "type":"string" } }, "required":[ "data", "is_binary" ], "type":"object" } } }, "info":{ "description":"SoAR message protocol in schemas", "title":"SoAR Backbone Message Formats", "version":"1.0" }, "openapi":"3.0.2", "paths":{ } }