UNPKG

@signalk/freeboard-sk

Version:

Openlayers chart plotter implementation for Signal K

353 lines (352 loc) 12.6 kB
{ "openapi": "3.0.0", "info": { "version": "2.18.0", "title": "Freeboard-SK API", "description": "API endpoints exposed by Freeboard-SK to support application functionality and experimental features.", "termsOfService": "http://signalk.org/terms/", "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } }, "externalDocs": { "url": "http://signalk.org/specification/", "description": "Signal K specification." }, "servers": [ { "url": "/" } ], "tags": [ { "name": "Alarms", "description": "Standard alarms." }, { "name": "Areas", "description": "Area alarms." } ], "components": { "schemas": { "Position": { "type": "object", "required": ["latitude", "longitude"], "properties": { "latitude": { "type": "number", "format": "float" }, "longitude": { "type": "number", "format": "float" } } }, "IsoTime": { "type": "string", "description": "Date / Time when data values were recorded", "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)((-(\\d{2}):(\\d{2})|Z)?)$", "example": "2022-04-22T05:02:56.484Z" }, "AreaAlarmDef": { "type": "object", "required": ["trigger", "geometry"], "properties": { "geometry": { "type": "string", "enum": ["polygon", "circle", "region"] }, "trigger": { "type": "string", "enum": ["entry", "exit"] }, "coords": { "type": "array", "items": { "$ref": "#/components/schemas/Position" }, "description": "Coordinates of the alarm area. `(required when geometry = 'polygon')`" }, "center": { "$ref": "#/components/schemas/Position", "description": "Center of circlular area. `(required when geometry = 'circle')`" }, "radius": { "type": "number", "description": "Circle radius in meters. `(required when geometry = 'circle')`" }, "name": { "type": "string" } } } }, "responses": { "200OKResponse": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "description": "Request success response", "properties": { "state": { "type": "string", "enum": ["COMPLETED"] }, "statusCode": { "type": "number", "enum": [200] } }, "required": ["state", "statusCode"] } } } }, "ErrorResponse": { "description": "Failed operation", "content": { "application/json": { "schema": { "type": "object", "description": "Request error response", "properties": { "state": { "type": "string", "enum": ["FAILED"] }, "statusCode": { "type": "number", "enum": [404] }, "message": { "type": "string" } }, "required": ["state", "statusCode", "message"] } } } } }, "parameters": { "AlarmIdParam": { "in": "path", "required": true, "name": "id", "description": "Alarm identifier.", "schema": { "type": "number" } }, "AlarmTypeParam": { "in": "path", "required": true, "name": "alarmType", "description": "Alarm type.", "schema": { "type": "string", "enum": [ "mob", "fire", "sinking", "flooding", "collision", "grounding", "listing", "adrift", "piracy", "abandon", "aground" ] } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" }, "cookieAuth": { "type": "apiKey", "in": "cookie", "name": "JAUTHENTICATION" } } }, "security": [{ "cookieAuth": [] }, { "bearerAuth": [] }], "paths": { "/signalk/v2/api/alarms/area": { "post": { "tags": ["Areas"], "summary": "Set Alarm area.", "requestBody": { "description": "Sets the defined area to monitor for vessel entry /exit.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AreaAlarmDef" } } } }, "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } }, "/signalk/v2/api/alarms/area/{id}": { "parameters": [ { "$ref": "#/components/parameters/AlarmIdParam" } ], "put": { "tags": ["Areas"], "summary": "Update Alarm area OR Set the `Region` resource with the supplied identifier as the alarm area.", "requestBody": { "description": "Updates the area details for the supplied area identfier.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AreaAlarmDef" } } } }, "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } }, "delete": { "tags": ["Areas"], "summary": "Clear / cancel Area Alarm.", "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } }, "/signalk/v2/api/alarms/area/{id}/silence": { "parameters": [ { "$ref": "#/components/parameters/AlarmIdParam" } ], "post": { "tags": ["Areas"], "summary": "Silence Area Alarm.", "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } }, "/signalk/v2/api/alarms/{alarmType}": { "parameters": [ { "$ref": "#/components/parameters/AlarmTypeParam" } ], "post": { "tags": ["Alarms"], "summary": "Raise Alarm.", "requestBody": { "description": "Alarm message text.", "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Alarm message text.", "example": "Person overboard!" } } } } } }, "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } }, "/signalk/v2/api/alarms/{alarmType}/{id}": { "parameters": [ { "$ref": "#/components/parameters/AlarmTypeParam" }, { "$ref": "#/components/parameters/AlarmIdParam" } ], "delete": { "tags": ["Alarms"], "summary": "Clear / cancel Alarm.", "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } }, "/signalk/v2/api/alarms/{alarmType}/{id}/silence": { "parameters": [ { "$ref": "#/components/parameters/AlarmTypeParam" }, { "$ref": "#/components/parameters/AlarmIdParam" } ], "post": { "tags": ["Alarms"], "summary": "Silence Alarm.", "responses": { "200ActionResponse": { "$ref": "#/components/responses/200OKResponse" }, "default": { "$ref": "#/components/responses/ErrorResponse" } } } } } }