{
  "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"
        },
        "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": "Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
                    "properties": {
                       "geometry_coordinates": {
                          "example": [
                             [
                                [
                                   -4.1777839187560915,
                                   50.34173405662855
                                ],
                                [
                                   -4.1777839187560915,
                                   50.33820949229701
                                ],
                                [
                                   -4.143667777943875,
                                   50.33820949229701
                                ],
                                [
                                   -4.143667777943875,
                                   50.34173405662855
                                ],
                                [
                                   -4.1777839187560915,
                                   50.34173405662855
                                ]
                             ]
                          ],
                          "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"
              },
              "region_of_interest": {
                 "description": "Region of interest for the entire operation",
                 "items": {
                    "description": "Using GEOJSON, exact 4-point region (rectangle shaped - 5 points)",
                    "properties": {
                       "geometry_coordinates": {
                          "example": [
                             [
                                [
                                   -4.1777839187560915,
                                   50.34173405662855
                                ],
                                [
                                   -4.1777839187560915,
                                   50.33820949229701
                                ],
                                [
                                   -4.143667777943875,
                                   50.33820949229701
                                ],
                                [
                                   -4.143667777943875,
                                   50.34173405662855
                                ],
                                [
                                   -4.1777839187560915,
                                   50.34173405662855
                                ]
                             ]
                          ],
                          "type": "array"
                       }
                    },
                    "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":"0.2"
  },
  "openapi": "3.0.2",
  "paths": {}
}