{ "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" }, "alert": { "properties": { "code": { "description": "Alert code", "example": 345, "type": "integer" }, "details": { "description": "Detailed reason for the alert ", "example": "Discrepancy between rudder and actuator positions : Rudder Pos=10.31\u00b0, Steering Actuator Pos=28.65\u00b0, Discrepancy=18.33\u00b0", "type": "string" }, "message_type": { "description": "Type of message", "enum": [ "alert" ], "example": "alert", "type": "string" }, "platform_ID": { "description": "Unique identifier for this platform", "example": "usvdecibel", "type": "string" }, "platform_timestamp": { "description": "Timestamp for onboard platform status message", "example": "2022-12-21T00:00:00Z", "format": "date-time", "type": "string" }, "severity": { "description": "Severity level of alert", "enum": [ "Emergency", "Alarm", "Warning", "Caution" ], "example": "Alarm", "type": "string" }, "subsystem": { "description": "System that generated the alert", "example": "Onboard Fault Monitor", "type": "string" }, "summary": { "description": "High level description of the alert", "example": "Steering Damage - Port Side", "type": "string" } }, "required": [ "message_type", "platform_ID", "code", "severity" ], "type": "object" }, "geojson.org.schema.Feature.json": { "$id": "https://geojson.org/schema/Feature.json", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "geometry": { "oneOf": [ { "type": "null" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "Point" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Point", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "LineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON LineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": { "enum": [ "Polygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Polygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPoint" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPoint", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiLineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiLineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPolygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPolygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "geometries": { "items": { "oneOf": [ { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "Point" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Point", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "LineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON LineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": { "enum": [ "Polygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Polygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPoint" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPoint", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiLineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiLineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPolygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPolygon", "type": "object" } ] }, "type": "array" }, "type": { "enum": [ "GeometryCollection" ], "type": "string" } }, "required": [ "type", "geometries" ], "title": "GeoJSON GeometryCollection", "type": "object" } ] }, "id": { "oneOf": [ { "type": "number" }, { "type": "string" } ] }, "properties": { "oneOf": [ { "type": "null" }, { "type": "object" } ] }, "type": { "enum": [ "Feature" ], "type": "string" } }, "required": [ "type", "properties", "geometry" ], "title": "GeoJSON Feature", "type": "object" }, "geojson.org.schema.FeatureCollection.json": { "$id": "https://geojson.org/schema/FeatureCollection.json", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "features": { "items": { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "geometry": { "oneOf": [ { "type": "null" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "Point" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Point", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "LineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON LineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": { "enum": [ "Polygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Polygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPoint" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPoint", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiLineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiLineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPolygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPolygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "geometries": { "items": { "oneOf": [ { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "Point" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Point", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "LineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON LineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": { "enum": [ "Polygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Polygon", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPoint" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPoint", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiLineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiLineString", "type": "object" }, { "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": "array" }, "type": { "enum": [ "MultiPolygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON MultiPolygon", "type": "object" } ] }, "type": "array" }, "type": { "enum": [ "GeometryCollection" ], "type": "string" } }, "required": [ "type", "geometries" ], "title": "GeoJSON GeometryCollection", "type": "object" } ] }, "id": { "oneOf": [ { "type": "number" }, { "type": "string" } ] }, "properties": { "oneOf": [ { "type": "null" }, { "type": "object" } ] }, "type": { "enum": [ "Feature" ], "type": "string" } }, "required": [ "type", "properties", "geometry" ], "title": "GeoJSON Feature", "type": "object" }, "type": "array" }, "type": { "enum": [ "FeatureCollection" ], "type": "string" } }, "required": [ "type", "features" ], "title": "GeoJSON FeatureCollection", "type": "object" }, "geojson.org.schema.LineString.json": { "$id": "https://geojson.org/schema/LineString.json", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "LineString" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON LineString", "type": "object" }, "geojson.org.schema.Point.json": { "$id": "https://geojson.org/schema/Point.json", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "type": { "enum": [ "Point" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Point", "type": "object" }, "geojson.org.schema.Polygon.json": { "$id": "https://geojson.org/schema/Polygon.json", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bbox": { "items": { "type": "number" }, "minItems": 4, "type": "array" }, "coordinates": { "items": { "items": { "items": { "type": "number" }, "minItems": 2, "type": "array" }, "minItems": 4, "type": "array" }, "type": "array" }, "type": { "enum": [ "Polygon" ], "type": "string" } }, "required": [ "type", "coordinates" ], "title": "GeoJSON Polygon", "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" }, "emergency": { "default": false, "description": "To indicate if this is an emergency. true = emergency and false = no emergency", "example": false, "type": "boolean" }, "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`.", "enum": [ "move", "payload", "dive", "send_hits", "scanline", "scanpoint", "go_home", "surface_now", "stop_mission", "abort_now" ], "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, y-coordinate", "example": 50.37072283932642, "format": "float", "type": "number" }, "start_point_longitude": { "description": "Start point, x-coordinate", "example": -4.187143188645706, "format": "float", "type": "number" }, "target_waypoint_latitude": { "description": "Target waypoint, y-coordinate", "example": 50.37072283932642, "format": "float", "type": "number" }, "target_waypoint_longitude": { "description": "Target waypoint, x-coordinate", "example": -4.187143188645706, "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 y-coordinate of point of interest", "example": 178.2, "format": "float", "type": "number" }, "longitude": { "description": "Identified x-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", "alert": "#/components/schemas/alert", "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", "survey": "#/components/schemas/survey", "survey_encoded": "#/components/schemas/survey_encoded" }, "propertyName": "message_type" }, "oneOf": [ { "$ref": "#/components/schemas/alert" }, { "$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" }, { "$ref": "#/components/schemas/survey" }, { "$ref": "#/components/schemas/survey_encoded" } ] }, "planning_configuration": { "properties": { "exclusion_zones": { "description": "Exclusion zones for all platforms", "items": { "description": "GeoJSON Polygon", "properties": { "geometry": { "$ref": "#/components/schemas/geojson.org.schema.Polygon.json" } }, "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" }, "region_of_interest": { "description": "Region of interest for the entire operation", "items": { "description": "GeoJSON Polygon", "properties": { "geometry": { "$ref": "#/components/schemas/geojson.org.schema.Polygon.json" } }, "type": "object" }, "type": "array" }, "squads": { "items": { "properties": { "no_of_platforms": { "description": "Number of platforms", "example": 3, "type": "integer" }, "platforms": { "description": "Squad consists of these platforms", "items": { "properties": { "active": { "description": "If platform is active = True, and inactive = False", "example": true, "type": "boolean" }, "additional_data": { "description": "Any addition fields/data to be added here", "example": { "new_sensor_a": "test_sensor", "range": 10.0 }, "type": "object" }, "beacon_ID": { "description": "Unique identifier (number) for the beacon associated to this platform", "example": 2407, "type": "number" }, "emergency": { "properties": { "safe_command": { "description": "Command/Action that is native to respective partner's platform/C2", "enum": [ "go_home", "abort_now", "stop_now", "surface_now" ], "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": "Y-coordinate safe place for respective platform", "example": 50.365, "format": "float", "type": "number" }, "target_waypoint_longitude": { "description": "X-coordinate safe place for respective platform", "example": -7.432, "format": "float", "type": "number" } }, "required": [ "target_waypoint_latitude", "target_waypoint_longitude", "target_depth" ], "type": "object" }, "endurance_relative_to_water_speed": { "properties": { "avg_battery_rating": { "description": "Battery endurance rating during standard operational speed usage (m/s)", "example": 1.9, "format": "float", "type": "number" }, "max_battery_rating": { "description": "Battery endurance rating during maximum speed usage (m/s)", "example": 1.23, "format": "float", "type": "number" }, "min_battery_rating": { "description": "Battery endurance rating during maximum speed usage (m/s)", "example": 3.32, "format": "float", "type": "number" } }, "type": "object" }, "max_velocity": { "description": "Maximum velocity set for platform", "example": 0.9, "format": "float", "type": "number" }, "min_altitude": { "description": "Minimum altitude set for platform", "example": 15.2, "format": "float", "type": "number" }, "min_velocity": { "description": "Minimum velocity set for platform", "example": 0.1, "format": "float", "type": "number" }, "model": { "example": "reav", "type": "string" }, "operator": { "description": "Operator of platform", "example": "noc", "type": "string" }, "platform_ID": { "description": "Unique identifier for this platform", "example": "reav-x-1", "type": "string" }, "scan_sensor": { "properties": { "angle": { "description": "Angle of range of swath width (in degrees)", "example": 140.0, "format": "float", "type": "number" }, "frequency": { "description": "Frequency of scanning sensor (in kHz)", "example": 700.0, "format": "float", "type": "number" }, "sensor_type": { "description": "Unique identifier for this platform", "enum": [ "SIDESCAN", "MBES" ], "example": "MBES", "type": "string" }, "swath_width": { "description": "Function of `target_altitude` for the platform's swath width (in metres)", "example": 38.0, "format": "float", "type": "number" }, "warmup_time": { "description": "Warmup time (seconds) for sensor to start up.", "example": 180.0, "format": "float", "type": "number" } }, "type": "object" }, "target_altitude": { "description": "Target altitude set for platform. This affects swath width", "example": 15.0, "format": "float", "type": "number" }, "turning_radius": { "description": "Turning radius of platform (in metres)", "example": 1.0, "format": "float", "type": "number" } }, "required": [ "operator", "platform_ID", "active", "model" ], "type": "object" }, "type": "array" }, "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" } }, "required": [ "squad_ID", "no_of_platforms", "platforms", "squad_mission_type" ], "type": "object" }, "type": "array" } }, "required": [ "message_type", "planning_config_ID", "squads", "exclusion_zones", "region_of_interest" ], "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_output": { "description": "Battery output in kW", "example": 80.2, "format": "float", "type": "number" }, "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" }, "endurance": { "description": "Estimate of hours of operation remaining based on present output or performance", "example": 7.4, "format": "float", "type": "number" }, "fuel_remaining_capacity": { "description": "Percentage remaining capacity", "example": 80.2, "format": "float", "type": "number" }, "fuel_volume": { "description": "Litres of liquid fuel", "example": 12.5, "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 (Y-coordinate) 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 (X-coordinate) 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" }, "survey": { "properties": { "latitude_A": { "description": "Latitude of point A(intersection of normal)from waypoint A to survey line", "example": 178.2, "format": "float", "type": "number" }, "latitude_B": { "description": "Latitude of point B(intersection of normal)from waypoint B to survey line", "example": 178.2, "format": "float", "type": "number" }, "latitude_C": { "description": "Latitude of point C(intersection of normal)from waypoint C to survey line", "example": 178.2, "format": "float", "type": "number" }, "latitude_D": { "description": "Latitude of point D(intersection of normal)from waypoint D to survey line", "example": 178.2, "format": "float", "type": "number" }, "latitude_E": { "description": "Latitude of point E(intersection of normal)from waypoint E to survey line", "example": 178.2, "format": "float", "type": "number" }, "longitude_A": { "description": "Longitude of point A(intersection of normal)from waypoint A to survey line", "example": -10.122, "format": "float", "type": "number" }, "longitude_B": { "description": "Longitude of point B(intersection of normal)from waypoint B to survey line", "example": -10.122, "format": "float", "type": "number" }, "longitude_C": { "description": "Longitude of point C(intersection of normal)from waypoint C to survey line", "example": -10.122, "format": "float", "type": "number" }, "longitude_D": { "description": "Longitude of point D(intersection of normal)from waypoint D to survey line", "example": -10.122, "format": "float", "type": "number" }, "longitude_E": { "description": "Longitude of point E(intersection of normal)from waypoint E to survey line", "example": -10.122, "format": "float", "type": "number" }, "message_type": { "description": "Type of message", "enum": [ "survey" ], "example": "survey", "type": "string" }, "platform_ID": { "description": "Unique identifier for this platform", "example": "ecosub-2", "type": "string" }, "timestamp": { "description": "Timestamp for onboard message", "example": "2022-12-21T00:00:00Z", "format": "date-time", "type": "string" }, "track_ID": { "description": "Track number of action(s) currently executed by platform", "example": 1, "type": "integer" } }, "required": [ "latitude_A", "longitude_A", "latitude_B", "longitude_B", "platform_ID" ], "type": "object" }, "survey_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": [ "survey_encoded" ], "example": "survey_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": {} }