From a8699352413cf53a4a40f8076e36713084bcc89c Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Sat, 28 Mar 2026 22:20:53 +0000 Subject: [PATCH] Add Knowledgebase Stations schema --- .../knowledgebase/kb-stations.json | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 schemas/data-ingress/knowledgebase/kb-stations.json diff --git a/schemas/data-ingress/knowledgebase/kb-stations.json b/schemas/data-ingress/knowledgebase/kb-stations.json new file mode 100644 index 0000000..ad17ec3 --- /dev/null +++ b/schemas/data-ingress/knowledgebase/kb-stations.json @@ -0,0 +1,125 @@ +{ + "$id": "https://schema.owlboard.info/data-ingress/knowledgebase/stations.schema.json", + "$schema": "https://json-schema.org/draft-07/schema#", + "title": "KnowledgebaseStations", + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "Name of the service submitting the update" + }, + "service_id": { + "type": "string", + "description": "ID of the service sending the message - usually a hostname" + }, + "data_type": { + "type": "string", + "const": "raw", + "description": "The type of data contained in this message object" + }, + "sent_timestamp": { + "type": "integer", + "description": "Unix timestamp representing the time the message was sent" + }, + "data_kind": { + "type": "string", + "const": "kb-stations" + }, + "payload": { + "type": "array", + "additionalItems": false, + "items": { + "station": { + "type": "object", + "required": ["c", "l", "o"], + "properties": { + "c": { + "type": "string", + "name": "CRS Code", + "description": "Station CRS (Primary Key)" + }, + "n": { + "type": "string", + "name": "NLC Code", + "description": "Station NLC Code" + }, + "mc": { + "type": "number", + "name": "Minimum Connection Time", + "description": "The minimum connection time at this station" + }, + "a": { + "type": "object", + "name": "Address", + "description": "The address of the station", + "properties": { + "l1": { + "type": "string", + "name": "Line 1" + }, + "l2": { + "type": "string", + "name": "Line 2" + }, + "l3": { + "type": "string", + "name": "Line 3" + }, + "l4": { + "type": "string", + "name": "Line 4" + }, + "l5": { + "type": "string", + "name": "Line 5" + }, + "pc": { + "type": "string", + "name": "Postcode" + } + } + }, + "l": { + "type": "object", + "name": "Location", + "description": "LatLon of the station", + "properties": { + "lt": { + "type": "number", + "name": "Latitude", + "description": "Stations Latitude" + }, + "ln": { + "type": "number", + "name": "Longitude", + "description": "Stations Longitude" + } + } + }, + "o": { + "type": "string", + "name": "Operator", + "description": "The two character code denoting the stations operator" + }, + "m": { + "type": "string", + "name": "Map URL" + }, + "r": { + "name": "Request", + "type": "boolean", + "description": "Denotes whether station is Request Stop" + }, + "d": { + "name": "Defibrillator", + "type": "boolean", + "description": "Denotes whether defibrillator is available" + } + } + } + } + } + }, + "required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"], + "additionalProperties": false +} \ No newline at end of file