diff --git a/schemas/data-ingress/pushport/ts.json b/schemas/data-ingress/pushport/ts.json new file mode 100644 index 0000000..ff81cf7 --- /dev/null +++ b/schemas/data-ingress/pushport/ts.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schema.owlboard.info/data-ingress/pushport-ts.schema.json", + "$schema": "https://json-schema.org/draft-07/schema#", + "title": "PushPortTS", + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "Unique ID for the train service (eg. 2026022217610103)", + "pattern": "^[0-9]{15}$" + }, + "uid": { + "type": "string", + "description": "Schedule ID - The permanent ID for the schedule in the static timetable" + }, + "ssd": { + "type": "string", + "format": "date", + "description": "Scheduled Start Data, the date the train service started its journey" + }, + "isDelayed": { + "type": "boolean", + "description": "Indicated if the message is delayed due to PushPort service disruption" + }, + "locations": { + "type": "array", + "description": "A list of one or more locations where the train has recorded a movement or forecast", + "items": { "$ref": "ts_location.json" } + } + } +} \ No newline at end of file diff --git a/schemas/data-ingress/pushport/ts_location.json b/schemas/data-ingress/pushport/ts_location.json new file mode 100644 index 0000000..de91525 --- /dev/null +++ b/schemas/data-ingress/pushport/ts_location.json @@ -0,0 +1,50 @@ +{ + "$id": "https://schema.owlboard.info/data-ingress/pushport-ts-location.schema.json", + "$schema": "https://json-schema.org/draft-07/schema#", + "title": "PushPortTSLocation", + "type": "object", + "required": ["tpl"], + "definitions": { + "TSTime": { + "type": "object", + "properties": { + "at": {"type": "string", "description": "Actual time"}, + "et": {"type": "string", "description": "Estimated time"}, + "wet": {"type": "string", "description": "Working estimated time"}, + "src": {"type": "string", "description": "Data source (TD/Darwin/etc)"}, + "atClass": {"type": "string", "description": "Time source Automatic/Manual"}, + "delayed": {"type": "boolean", "description": "is train delayed with no estimated time"}, + "srcInst": {"type": "string", "description": "Source instance (what caused the update)"} + } + } + }, + "properties": { + "tpl": {"type": "string", "description": "TIPLOC for the location"}, + "wta": {"type": "string", "description": "Scheduled working time arrival"}, + "wtd": {"type": "string", "description": "Scheduled working time departure"}, + "wtp": {"type": "string", "description": "Scheduled working time pass"}, + "pta": {"type": "string", "description": "Scheduled public arrival time"}, + "ptd": {"type": "string", "description": "Scheduled public departure time"}, + "arr": {"$ref": "#/definitions/TSTime"}, + "dep": {"$ref": "#/definitions/TSTime"}, + "pass": {"$ref": "#/definitions/TSTime"}, + "plat": { + "type": "object", + "description": "Platform data", + "properties": { + "value": {"type": "string", "description": "Platform number/letter"}, + "platsrc": {"type": "string", "enum": ["A", "M", "P"], "description": "Source of data Automatic/Manual/Planned"}, + "platsup": {"type": "boolean", "description": "Is platform suppressed from public display"}, + "cisPlatsup": {"type": "boolean", "description": "Whether CIS or Darwin Workstation has supressed the platform"}, + "conf": {"type": "boolean", "description": "Whether platform has been confirmed by the local CIS"} + } + }, + "suppr": {"type": "boolean", "description": "Whether location is supressed"}, + "length": {"type": "integer", "description": "Train length (no. of coaches)"}, + "detachFront": {"type": "boolean","description": "Indicated if coaches will detatch from front"}, + "detachRead": {"type": "boolean", "description": "Indicates if coaches will detatch from rear"}, + "attachFront": {"type": "boolean", "description": "Indicates if coaches will attach to front"}, + "attachRear": {"type": "boolean", "description": "Indicates if coaches will be attached to rear"}, + "adhoc": {"type": "boolean", "description": "Whether this is an ad-hoc stop"} + } +} \ No newline at end of file