Final Draft of 16schedule.json
All checks were successful
Generate and Release Protos / release (push) Successful in 36s
All checks were successful
Generate and Release Protos / release (push) Successful in 36s
This commit is contained in:
@@ -2,20 +2,183 @@
|
|||||||
"$id": "https://schema.owlboard.info/data-ingress/pushport16-schedule.schema.json",
|
"$id": "https://schema.owlboard.info/data-ingress/pushport16-schedule.schema.json",
|
||||||
"$schema": "https://json-schema.org/draft-07/schema#",
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
||||||
"title": "PushPortSchedule",
|
"title": "PushPortSchedule",
|
||||||
|
"description": "Consolidated object definition for Darwin Schedule messages",
|
||||||
"definitions": {
|
"definitions": {
|
||||||
"SchedLocAttr": {
|
"SchedLocAttributes": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "Attributes common to all schedule locations",
|
"description": "Attributes common to all schedule locations",
|
||||||
"required": ["tpl"],
|
"required": [
|
||||||
|
"tpl"
|
||||||
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"tpl": {"type": "string", "description": "TIPLOC"},
|
"tpl": {
|
||||||
"act": {"type": "string", "description": "Activities at this location"},
|
"type": "string",
|
||||||
"planAct": {"type": "string", "description": "Planned activities at this location"},
|
"description": "TIPLOC"
|
||||||
"can": {"type": "boolean", "description": "Train cancelled flag"},
|
},
|
||||||
"fid": {"type": "boolean", "description": "Unique identifier of the trains formation"}
|
"act": {
|
||||||
|
"type": "string",
|
||||||
|
"default": " ",
|
||||||
|
"description": "Current Activity Codes"
|
||||||
|
},
|
||||||
|
"planAct": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Planned Activity Codes"
|
||||||
|
},
|
||||||
|
"can": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Cancelled flag"
|
||||||
|
},
|
||||||
|
"fid": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique identifier of the formation data (v3) "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Call Point Attributes.
|
},
|
||||||
|
"CallPtAttributes": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Attributes for Calling Points (Optional for Operational variants)",
|
||||||
|
"properties": {
|
||||||
|
"pta": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Public Scheduled Time of Arrival"
|
||||||
|
},
|
||||||
|
"ptd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Public Scheduled Time of Departure"
|
||||||
|
},
|
||||||
|
"avgLoading": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Average Loading value based on long-term averages (v3) "
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"originPoint": {
|
||||||
|
"description": "Merged Origin (OR / OPOR). The starting point of the journey.",
|
||||||
|
"required": [
|
||||||
|
"wtd"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/SchedLocAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/CallPtAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"wta": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Arrival (Optional)"
|
||||||
|
},
|
||||||
|
"wtd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Departure (Required)"
|
||||||
|
},
|
||||||
|
"fd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "False Destination TIPLOC (Passenger only)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"callingPoint": {
|
||||||
|
"description": "Merged Intermediate Point (IP / OPIP). An intermediate stop requiring dwell time.",
|
||||||
|
"required": [
|
||||||
|
"wta",
|
||||||
|
"wtd"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/SchedLocAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/CallPtAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"wta": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Arrival (Required)"
|
||||||
|
},
|
||||||
|
"wtd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Departure (Required)"
|
||||||
|
},
|
||||||
|
"rdelay": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 0,
|
||||||
|
"description": "Route delay value"
|
||||||
|
},
|
||||||
|
"fd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "False Destination (Passenger only)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"passPoint": {
|
||||||
|
"description": "Intermediate Passing Point (PP). Purely operational.",
|
||||||
|
"required": [
|
||||||
|
"wtp"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/SchedLocAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"wtp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Passing (Required)"
|
||||||
|
},
|
||||||
|
"rdelay": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 0,
|
||||||
|
"description": "Route delay value"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"destinationPoint": {
|
||||||
|
"description": "Merged Destination (DT / OPDT). The termination point of the journey.",
|
||||||
|
"required": [
|
||||||
|
"wta"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/SchedLocAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/CallPtAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"wta": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Arrival (Required)"
|
||||||
|
},
|
||||||
|
"wtd": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Working Scheduled Time of Departure (Optional)"
|
||||||
|
},
|
||||||
|
"rdelay": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 0,
|
||||||
|
"description": "Route delay value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -38,14 +201,7 @@
|
|||||||
},
|
},
|
||||||
"data_kind": {
|
"data_kind": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"const": "PushPort16Schedule",
|
||||||
"pis",
|
|
||||||
"timetable",
|
|
||||||
"knowledgebase",
|
|
||||||
"darwin_schedule",
|
|
||||||
"darwin_ts",
|
|
||||||
"darwin_ref"
|
|
||||||
],
|
|
||||||
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
|
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
|
||||||
},
|
},
|
||||||
"payload": {
|
"payload": {
|
||||||
@@ -59,187 +215,42 @@
|
|||||||
"locations"
|
"locations"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"rid": {
|
"rid": {"type": "string", "description": "Rail Identifier - Unique value for the service"},
|
||||||
"type": "string",
|
"uid": {"type": "string", "description": "Unique ID - Unique value for the timetable entry - maps to Network Rail CIF schedules"},
|
||||||
"description": "Unique service ID"
|
"ssd": {"type": "string", "format": "date", "description": "Service Start Date - The date the service commences"},
|
||||||
},
|
"trainId": {"type": "string", "description": "Headcode"},
|
||||||
"uid": {
|
"toc": {"type": "string", "minLength": 2, "maxLength": 2, "description": "Train Operator (ATOC Code)"},
|
||||||
"type": "string",
|
"rsid": {"type": "string", "description": "Retail Service ID"},
|
||||||
"description": "Unique schedule ID - maps to NR CIF"
|
"status": {"type": "string", "default": "P", "description": "P = Permanent, L = Long Term, S = Short Term"},
|
||||||
},
|
"trainCat": {"type": "string", "default": "OO", "description": "Train Category"},
|
||||||
"trainId": {
|
"isPassenger": {"type": "boolean", "default": true, "description": "Declares the service as a passenger service"},
|
||||||
"type": "string",
|
"isActive": {"type": "boolean", "default": false, "description": "UNKNOWN"},
|
||||||
"description": "Train Headcode"
|
"isCharter": {"type": "boolean", "default": false, "description": "Declares the service as a charter service"},
|
||||||
},
|
"cancelReason": {"type": "integer", "description": "Cancellation Reason code"},
|
||||||
"ssd": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date",
|
|
||||||
"description": "Schedule Start Date (When the service commences)"
|
|
||||||
},
|
|
||||||
"toc": {
|
|
||||||
"type": "string",
|
|
||||||
"minLength": 2,
|
|
||||||
"maxLength": 2,
|
|
||||||
"description": "TOC Code"
|
|
||||||
},
|
|
||||||
"isPassenger": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "If service is for passengers",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"isCharter": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "If train is charter service",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"train",
|
|
||||||
"bus",
|
|
||||||
"ship"
|
|
||||||
],
|
|
||||||
"default": "train"
|
|
||||||
},
|
|
||||||
"isDelayedDelivery": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "If message is sent as part of Darwin service recovery"
|
|
||||||
},
|
|
||||||
"cancelReason": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"null"
|
|
||||||
],
|
|
||||||
"description": "Reason code for cancellation"
|
|
||||||
},
|
|
||||||
"isDeleted": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Whether schedule should be deleted",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"locations": {
|
"locations": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Merged and flattened location objects",
|
||||||
|
"properties": {
|
||||||
|
"OR": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"description": "OR/OPOR Values - Trains Origin",
|
||||||
"type": "object",
|
"items": {"$ref": "#/definitions/originPoint"}
|
||||||
"required": [
|
|
||||||
"tpl",
|
|
||||||
"seq"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"tpl": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "TIPLOC of location"
|
|
||||||
},
|
},
|
||||||
"seq": {
|
"IP": {
|
||||||
"type": "integer",
|
"type": "array",
|
||||||
"description": "The order of the stop for sorting and handling repeated TIPLOCs"
|
"description": "IP/OPIP Values - Intermediate Points",
|
||||||
|
"items": {"$ref": "#/definitions/callingPoint"}
|
||||||
},
|
},
|
||||||
"wta": {
|
"PP": {
|
||||||
"type": [
|
"type": "array",
|
||||||
"string",
|
"description": "Passing Points (Non-stop)",
|
||||||
"null"
|
"items": {"$ref": "#/definitions/passPoint"}
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"wtd": {
|
"DT": {
|
||||||
"type": [
|
"type": "array",
|
||||||
"string",
|
"description": "DT/OPDT Values - Trains Destination",
|
||||||
"null"
|
"items": {"$ref": "#/definitions/destinationPoint"}
|
||||||
]
|
|
||||||
},
|
|
||||||
"wtp": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"null"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"pta": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"null"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ptd": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"null"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"plat": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"null"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"isCancelled": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"isSupressed": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"description": "Defines whether the service should be hidden to the public"
|
|
||||||
},
|
|
||||||
"activities": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"pass": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates that the train does not stop, it only passes this location"
|
|
||||||
},
|
|
||||||
"pickUpDropOff": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates the train stops for passengers to board and alight"
|
|
||||||
},
|
|
||||||
"requestStop": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if the train stops only when required"
|
|
||||||
},
|
|
||||||
"pickUpOnly": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicated the service picks up passengers only"
|
|
||||||
},
|
|
||||||
"dropOffOnly": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates the service drops off passengers only"
|
|
||||||
},
|
|
||||||
"tokenExchange": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if the train stops for exhanging a token/staff or similar"
|
|
||||||
},
|
|
||||||
"vehiclesAttached": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if vehicles are attached at this location"
|
|
||||||
},
|
|
||||||
"vehiclesDetached": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if vehicles are detached at this location"
|
|
||||||
},
|
|
||||||
"trainCrewChange": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if train stops to exchange crew at this location"
|
|
||||||
},
|
|
||||||
"changeLocomotive": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if train stops to exchange locomotive at this location"
|
|
||||||
},
|
|
||||||
"changeEnds": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if the train reverses or driver changes ends at this location"
|
|
||||||
},
|
|
||||||
"staffStop": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates that the train stops for staff use only"
|
|
||||||
},
|
|
||||||
"unadvertised": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates that the stop is not advertised to the public"
|
|
||||||
},
|
|
||||||
"passesAnotherTrain": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Indicates if the train stops to pass another train on a single line crossing point"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -252,5 +263,5 @@
|
|||||||
"data_type",
|
"data_type",
|
||||||
"sent_timestamp"
|
"sent_timestamp"
|
||||||
],
|
],
|
||||||
"additionalProperties": true
|
"additionalProperties": false
|
||||||
}
|
}
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
"definitions": {
|
|
||||||
"SchedLocAttributes": {
|
|
||||||
"type": "object",
|
|
||||||
"description": "Attributes common to all schedule locations",
|
|
||||||
"required": ["tpl"],
|
|
||||||
"properties": {
|
|
||||||
"tpl": { "type": "string", "description": "TIPLOC" },
|
|
||||||
"act": { "type": "string", "default": " ", "description": "Current Activity Codes" },
|
|
||||||
"planAct": { "type": "string", "description": "Planned Activity Codes" },
|
|
||||||
"can": { "type": "boolean", "default": false, "description": "Cancelled flag" },
|
|
||||||
"fid": { "type": "string", "description": "Unique identifier of the formation data (v3) " }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"CallPtAttributes": {
|
|
||||||
"type": "object",
|
|
||||||
"description": "Attributes for Calling Points (Optional for Operational variants)",
|
|
||||||
"properties": {
|
|
||||||
"pta": { "type": "string", "description": "Public Scheduled Time of Arrival" },
|
|
||||||
"ptd": { "type": "string", "description": "Public Scheduled Time of Departure" },
|
|
||||||
"avgLoading": { "type": "string", "description": "Average Loading value based on long-term averages (v3) " }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"originPoint": {
|
|
||||||
"description": "Merged Origin (OR / OPOR). The starting point of the journey.",
|
|
||||||
"required": ["wtd"],
|
|
||||||
"allOf": [
|
|
||||||
{ "$ref": "#/definitions/SchedLocAttributes" },
|
|
||||||
{ "$ref": "#/definitions/CallPtAttributes" },
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"wta": { "type": "string", "description": "Working Scheduled Time of Arrival (Optional)" },
|
|
||||||
"wtd": { "type": "string", "description": "Working Scheduled Time of Departure (Required)" },
|
|
||||||
"fd": { "type": "string", "description": "False Destination TIPLOC (Passenger only)" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"callingPoint": {
|
|
||||||
"description": "Merged Intermediate Point (IP / OPIP). An intermediate stop requiring dwell time.",
|
|
||||||
"required": ["wta", "wtd"],
|
|
||||||
"allOf": [
|
|
||||||
{ "$ref": "#/definitions/SchedLocAttributes" },
|
|
||||||
{ "$ref": "#/definitions/CallPtAttributes" },
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"wta": { "type": "string", "description": "Working Scheduled Time of Arrival (Required)" },
|
|
||||||
"wtd": { "type": "string", "description": "Working Scheduled Time of Departure (Required)" },
|
|
||||||
"rdelay": { "type": "integer", "default": 0, "description": "Route delay value" },
|
|
||||||
"fd": { "type": "string", "description": "False Destination (Passenger only)" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"passPoint": {
|
|
||||||
"description": "Intermediate Passing Point (PP). Purely operational.",
|
|
||||||
"required": ["wtp"],
|
|
||||||
"allOf": [
|
|
||||||
{ "$ref": "#/definitions/SchedLocAttributes" },
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"wtp": { "type": "string", "description": "Working Scheduled Time of Passing (Required)" },
|
|
||||||
"rdelay": { "type": "integer", "default": 0, "description": "Route delay value" }
|
|
||||||
},
|
|
||||||
"additionalProperties": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"destinationPoint": {
|
|
||||||
"description": "Merged Destination (DT / OPDT). The termination point of the journey.",
|
|
||||||
"required": ["wta"],
|
|
||||||
"allOf": [
|
|
||||||
{ "$ref": "#/definitions/SchedLocAttributes" },
|
|
||||||
{ "$ref": "#/definitions/CallPtAttributes" },
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"wta": { "type": "string", "description": "Working Scheduled Time of Arrival (Required)" },
|
|
||||||
"wtd": { "type": "string", "description": "Working Scheduled Time of Departure (Optional)" },
|
|
||||||
"rdelay": { "type": "integer", "default": 0, "description": "Route delay value" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user