@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api The Water Linked Underwater GPS API
@base http://demo.waterlinked.com
@endpoints 38
@hint download_for_search
@toc api(38)

@endpoint GET /api/
@desc ApiVersion about
@returns(200) OK

@endpoint GET /api/v1/about
@desc Get about
@returns(200) OK

@endpoint POST /api/v1/about/factoryreset
@desc FactoryReset about
@returns(200) OK
@errors {404: Not Found, 500: Internal Server Error, 503: Service Unavailable}

@endpoint GET /api/v1/about/led
@desc LED about
@returns(200) OK
@errors {404: Not Found}

@endpoint GET /api/v1/about/status
@desc Status about
@returns(200) OK

@endpoint GET /api/v1/about/temperature
@desc Temperature about
@returns(200) OK

@endpoint GET /api/v1/config/antenna
@desc GetAntennaConfig config
@returns(200) OK

@endpoint PUT /api/v1/config/antenna
@desc ModifyAntennaConfig config
@required {payload: map # Configuration parameters for antenna set up}
@returns(200) OK
@errors {400: Bad Request, 500: Internal Server Error, 503: Service Unavailable}

@endpoint GET /api/v1/config/generic
@desc Get config
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint PUT /api/v1/config/generic
@desc Modify config
@required {payload: map # Configuration parameters}
@returns(200) OK
@errors {400: Bad Request, 500: Internal Server Error, 503: Service Unavailable}

@endpoint GET /api/v1/config/ip
@desc GetIP config
@returns(200) OK

@endpoint PUT /api/v1/config/ip
@desc ModifyIP config
@required {payload: map # Configuration parameters}
@returns(200) OK
@errors {400: Bad Request, 500: Internal Server Error, 503: Service Unavailable}

@endpoint GET /api/v1/config/receivers/
@desc ListReceiver config
@returns(200) Returned list of receivers

@endpoint GET /api/v1/config/receivers/{ID}
@desc ShowReceiver config
@required {ID: any # Identifier}
@returns(200) OK
@errors {404: Not Found}

@endpoint PUT /api/v1/config/receivers/{ID}
@desc ModifyReceiver config
@required {ID: any # Identifier, payload: map # A receiver configuration}
@returns(204) No Content
@errors {404: Not Found}

@endpoint GET /api/v1/config/wifi
@desc GetWIFI config
@returns(200) OK

@endpoint PUT /api/v1/config/wifi
@desc ModifyWIFI config
@required {payload: map # Configuration parameters}
@returns(200) OK
@errors {400: Bad Request, 500: Internal Server Error, 503: Service Unavailable}

@endpoint PUT /api/v1/external/depth
@desc SetDepth external
@required {payload: map # Current locator depth and temperature}
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/external/imu
@desc GetVehicleIMU external
@returns(200) OK
@returns(204) No Content

@endpoint PUT /api/v1/external/imu
@desc SetVehicleIMU external
@required {payload: map # Set current rotation and acceleration of vehicle}
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint PUT /api/v1/external/master
@desc SetMaster external
@required {payload: map # Global master position from external source}
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/external/orientation
@desc GetOrientation external
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint PUT /api/v1/external/orientation
@desc SetOrientation external
@required {payload: map # Set current compass heading of ROV/locator}
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/imu/calibrate
@desc Get imu
@returns(200) OK

@endpoint POST /api/v1/imu/calibrate
@desc Calibrate imu
@required {payload: map # IMU calibration action}
@returns(200) OK
@errors {408: Request Timeout, 409: Conflict}

@endpoint POST /api/v1/imu/resetgyros
@desc ResetGyro imu
@returns(200) OK
@errors {408: Request Timeout, 409: Conflict}

@endpoint POST /api/v1/imu/setnorth
@desc SetNorth imu
@required {payload: map # IMU set north}
@returns(200) OK
@errors {400: Bad Request, 408: Request Timeout, 409: Conflict}

@endpoint GET /api/v1/poi/
@desc List poi
@returns(200) Return list of all POIs
@errors {404: Not Found}

@endpoint POST /api/v1/poi/
@desc Create poi
@required {payload: map # A list of all POI}
@returns(201) Resource created
@errors {400: Bad Request, 403: Forbidden}

@endpoint GET /api/v1/poi/{ID}
@desc Show poi
@required {ID: any}
@returns(200) OK
@errors {404: Not Found}

@endpoint DELETE /api/v1/poi/{ID}
@desc Delete poi
@required {ID: any}
@returns(204) No Content
@errors {400: Bad Request, 404: Not Found}

@endpoint PATCH /api/v1/poi/{ID}
@desc Update poi
@required {ID: any, payload: map # A list of all POI}
@returns(204) No Content
@errors {400: Bad Request, 404: Not Found}

@endpoint GET /api/v1/position/acoustic/filtered
@desc AcousticFiltered position
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/position/acoustic/raw
@desc AcousticRaw position
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/position/global
@desc Get position
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/position/master
@desc GetMaster position
@returns(200) OK
@errors {500: Internal Server Error}

@endpoint GET /api/v1/status_report/
@desc Get status_report
@returns(200) OK

@endpoint GET /api/v1/warnings/
@desc Get warnings
@returns(200) OK
@errors {500: Internal Server Error}

@end
