UNPKG

tfl-api-wrapper

Version:

A Node JS wrapper for the Transport for London API

1,358 lines 54.3 kB
export default interface TfL { 'AccidentStats.AccidentDetail': { /** Format: int32 */ id?: number; /** Format: double */ lat?: number; /** Format: double */ lon?: number; location?: string; /** Format: date-time */ date?: string; severity?: string; borough?: string; casualties?: TfL['AccidentStats.Casualty'][]; vehicles?: TfL['AccidentStats.Vehicle'][]; }; 'AccidentStats.Casualty': { /** Format: int32 */ age?: number; class?: string; severity?: string; mode?: string; ageBand?: string; }; 'AccidentStats.Vehicle': { type?: string; }; 'AccidentStats.AccidentStatsOrderedSummary': { /** Format: int32 */ year?: number; borough?: string; /** Format: int32 */ accidents?: number; }; 'System.Object': { [key: string]: unknown; }; Place: { /** @description A unique identifier. */ id?: string; /** @description The unique location of this resource. */ url?: string; /** @description A human readable name. */ commonName?: string; /** * Format: double * @description The distance of the place from its search point, if this is the result * of a geographical search, otherwise zero. */ distance?: number; /** @description The type of Place. See /Place/Meta/placeTypes for possible values. */ placeType?: string; /** @description A bag of additional key/value pairs with extra information about this place. */ additionalProperties?: TfL['AdditionalProperties'][]; children?: TfL['Place'][]; childrenUrls?: string[]; /** * Format: double * @description WGS84 latitude of the location. */ lat?: number; /** * Format: double * @description WGS84 longitude of the location. */ lon?: number; }; AdditionalProperties: { category?: string; key?: string; sourceSystemKey?: string; value?: string; /** Format: date-time */ modified?: string; }; CycleSuperhighway: { /** @description The Id */ id?: string; /** @description The long label to show on maps when zoomed in */ label?: string; /** @description The short label to show on maps */ labelShort?: string; /** @description A LineString or MultiLineString that forms the route of the highway */ geography?: TfL['System.Data.Spatial.DbGeography']; /** @description True if the route is split into segments */ segmented?: boolean; /** * Format: date-time * @description When the data was last updated */ modified?: string; /** @description Cycle route status i.e Proposed, Existing etc */ status?: 'Unknown' | 'All' | 'Open' | 'In Progress' | 'Planned' | 'Planned - Subject to feasibility and consultation.' | 'Not Open'; /** @description Type of cycle route e.g CycleSuperhighways, Quietways, MiniHollands etc */ routeType?: 'Unknown' | 'All' | 'Cycle Superhighways' | 'Quietways' | 'Cycleways' | 'Mini-Hollands' | 'Central London Grid' | 'Streetspace Route'; }; 'System.Data.Spatial.DbGeography': { geography?: TfL['System.Data.Spatial.DbGeographyWellKnownValue']; }; 'System.Data.Spatial.DbGeographyWellKnownValue': { /** Format: int32 */ coordinateSystemId?: number; wellKnownText?: string; /** Format: byte */ wellKnownBinary?: string; }; 'Fares.Fare': { /** Format: int32 */ id?: number; passengerType?: string; /** Format: date-time */ validFrom?: string; /** Format: date-time */ validUntil?: string; ticketTime?: string; ticketType?: string; cost?: string; /** Format: double */ cap?: number; description?: string; zone?: string; mode?: string; }; 'Fares.FaresSection': { header?: string; /** Format: int32 */ index?: number; journey?: TfL['Fares.Journey']; rows?: TfL['Fares.FareDetails'][]; messages?: TfL['Message'][]; }; 'Fares.Journey': { fromStation?: TfL['Fares.FareStation']; toStation?: TfL['Fares.FareStation']; }; 'Fares.FareDetails': { /** Format: int32 */ boundsId?: number; /** Format: date-time */ startDate?: string; /** Format: date-time */ endDate?: string; mode?: string; passengerType?: string; contactlessPAYGOnlyFare?: boolean; from?: string; to?: string; fromStation?: string; toStation?: string; via?: string; routeCode?: string; displayName?: string; /** Format: int32 */ displayOrder?: number; routeDescription?: string; validatorInformation?: string; operator?: string; specialFare?: boolean; throughFare?: boolean; isTour?: boolean; ticketsAvailable?: TfL['Fares.Ticket'][]; messages?: TfL['Message'][]; }; Message: { /** Format: int32 */ bulletOrder?: number; header?: boolean; messageText?: string; linkText?: string; url?: string; }; 'Fares.FareStation': { atcoCode?: string; commonName?: string; fareCategory?: 'Cash' | 'Oyster' | 'Contactless' | 'ContactlessOnly' | 'All'; }; 'Fares.Ticket': { passengerType?: string; ticketType?: TfL['Fares.TicketType']; ticketTime?: TfL['Fares.TicketTime']; cost?: string; description?: string; mode?: string; /** Format: int32 */ displayOrder?: number; messages?: TfL['Message'][]; }; 'Fares.TicketType': { type?: string; description?: string; }; 'Fares.TicketTime': { type?: string; description?: string; }; 'Fares.FareBounds': { /** Format: int32 */ id?: number; from?: string; to?: string; via?: string; routeCode?: string; description?: string; displayName?: string; operator?: string; /** Format: int32 */ displayOrder?: number; isPopularFare?: boolean; isPopularTravelCard?: boolean; isTour?: boolean; messages?: TfL['Message'][]; }; 'Fares.FaresPeriod': { /** Format: int32 */ id?: number; /** Format: date-time */ startDate?: string; /** Format: date-time */ viewableDate?: string; /** Format: date-time */ endDate?: string; isFuture?: boolean; }; 'Fares.FaresMode': { /** Format: int32 */ id?: number; name?: string; description?: string; }; 'Fares.PassengerType': { type?: string; description?: string; displayName?: string; /** Format: int32 */ displayOrder?: number; }; Coordinate: { /** Format: double */ longitude?: number; /** Format: double */ latitude?: number; /** Format: double */ easting?: number; /** Format: double */ northing?: number; /** Format: int32 */ xCoord?: number; /** Format: int32 */ yCoord?: number; }; GeoCodeSearchMatch: { /** @description The type of the place e.g. "street_address" */ types?: string[]; /** @description A string describing the formatted address of the place. Adds additional context to the place's Name. */ address?: string; id?: string; url?: string; name?: string; /** Format: double */ lat?: number; /** Format: double */ lon?: number; }; Mode: { isTflService?: boolean; isFarePaying?: boolean; isScheduledService?: boolean; modeName?: string; }; /** @description A DTO representing a list of possible journeys. */ 'JourneyPlanner.ItineraryResult': { journeys?: TfL['JourneyPlanner.Journey'][]; lines?: TfL['Line'][]; cycleHireDockingStationData?: TfL['JourneyPlanner.JourneyPlannerCycleHireDockingStationData']; stopMessages?: string[]; /** Format: int32 */ recommendedMaxAgeMinutes?: number; searchCriteria?: TfL['JourneyPlanner.SearchCriteria']; journeyVector?: TfL['JourneyPlanner.JourneyVector']; }; /** @description Object that represents an end to end journey (see schematic). */ 'JourneyPlanner.Journey': { /** Format: date-time */ startDateTime?: string; /** Format: int32 */ duration?: number; /** Format: date-time */ arrivalDateTime?: string; legs?: TfL['JourneyPlanner.Leg'][]; fare?: TfL['JourneyPlanner.JourneyFare']; }; Line: { id?: string; name?: string; modeName?: string; disruptions?: TfL['Disruption'][]; /** Format: date-time */ created?: string; /** Format: date-time */ modified?: string; lineStatuses?: TfL['LineStatus'][]; routeSections?: TfL['MatchedRoute'][]; serviceTypes?: TfL['LineServiceTypeInfo'][]; crowding?: TfL['Crowding']; }; 'JourneyPlanner.JourneyPlannerCycleHireDockingStationData': { /** Format: int32 */ originNumberOfBikes?: number; /** Format: int32 */ destinationNumberOfBikes?: number; /** Format: int32 */ originNumberOfEmptySlots?: number; /** Format: int32 */ destinationNumberOfEmptySlots?: number; originId?: string; destinationId?: string; }; 'JourneyPlanner.SearchCriteria': { /** Format: date-time */ dateTime?: string; dateTimeType?: 'Arriving' | 'Departing'; timeAdjustments?: TfL['JourneyPlanner.TimeAdjustments']; }; 'JourneyPlanner.JourneyVector': { from?: string; to?: string; via?: string; uri?: string; }; 'JourneyPlanner.Leg': { /** Format: int32 */ duration?: number; speed?: string; /** * @description Describes the action the user need to take for this section, E.g. "walk to the * district line" */ instruction?: TfL['Instruction']; obstacles?: TfL['JourneyPlanner.Obstacle'][]; /** Format: date-time */ departureTime?: string; /** Format: date-time */ arrivalTime?: string; departurePoint?: TfL['Point']; arrivalPoint?: TfL['Point']; path?: TfL['JourneyPlanner.Path']; routeOptions?: TfL['JourneyPlanner.RouteOption'][]; mode?: TfL['Identifier']; disruptions?: TfL['Disruption'][]; plannedWorks?: TfL['JourneyPlanner.PlannedWork'][]; /** Format: double */ distance?: number; isDisrupted?: boolean; hasFixedLocations?: boolean; }; 'JourneyPlanner.JourneyFare': { /** Format: int32 */ totalCost?: number; fares?: TfL['JourneyPlanner.Fare'][]; caveats?: TfL['JourneyPlanner.FareCaveat'][]; }; /** @description Represents a disruption to a route within the transport network. */ Disruption: { /** @description Gets or sets the category of this dispruption. */ category?: 'Undefined' | 'RealTime' | 'PlannedWork' | 'Information' | 'Event' | 'Crowding' | 'StatusAlert'; /** @description Gets or sets the disruption type of this dispruption. */ type?: string; /** @description Gets or sets the description of the category. */ categoryDescription?: string; /** @description Gets or sets the description of this disruption. */ description?: string; /** @description Gets or sets the summary of this disruption. */ summary?: string; /** @description Gets or sets the additionaInfo of this disruption. */ additionalInfo?: string; /** * Format: date-time * @description Gets or sets the date/time when this disruption was created. */ created?: string; /** * Format: date-time * @description Gets or sets the date/time when this disruption was last updated. */ lastUpdate?: string; /** @description Gets or sets the routes affected by this disruption */ affectedRoutes?: TfL['DisruptedRoute'][]; /** @description Gets or sets the stops affected by this disruption */ affectedStops?: TfL['StopPoint'][]; /** @description Text describing the closure type */ closureText?: string; }; LineStatus: { /** Format: int32 */ id?: number; lineId?: string; /** Format: int32 */ statusSeverity?: number; statusSeverityDescription?: string; reason?: string; /** Format: date-time */ created?: string; /** Format: date-time */ modified?: string; validityPeriods?: TfL['ValidityPeriod'][]; disruption?: TfL['Disruption']; }; /** @description Description of a Route used in Route search results. */ MatchedRoute: { /** @description The route code */ routeCode?: string; /** @description Name such as "72" */ name?: string; /** @description Inbound or Outbound */ direction?: string; /** @description The name of the Origin StopPoint */ originationName?: string; /** @description The name of the Destination StopPoint */ destinationName?: string; /** @description The Id (NaPTAN code) of the Origin StopPoint */ originator?: string; /** @description The Id (NaPTAN code) or the Destination StopPoint */ destination?: string; /** @description Regular or Night */ serviceType?: string; /** * Format: date-time * @description The DateTime that the Service containing this Route is valid until. */ validTo?: string; /** * Format: date-time * @description The DateTime that the Service containing this Route is valid from. */ validFrom?: string; }; LineServiceTypeInfo: { name?: string; uri?: string; }; Crowding: { /** @description Busiest times at a station (static information) */ passengerFlows?: TfL['PassengerFlow'][]; /** @description Train Loading on a scale 1-6, 1 being "Very quiet" and 6 being "Exceptionally busy" (static information) */ trainLoadings?: TfL['TrainLoading'][]; }; 'JourneyPlanner.TimeAdjustments': { earliest?: TfL['JourneyPlanner.TimeAdjustment']; earlier?: TfL['JourneyPlanner.TimeAdjustment']; later?: TfL['JourneyPlanner.TimeAdjustment']; latest?: TfL['JourneyPlanner.TimeAdjustment']; }; Instruction: { summary?: string; detailed?: string; steps?: TfL['InstructionStep'][]; }; 'JourneyPlanner.Obstacle': { type?: string; incline?: string; /** Format: int32 */ stopId?: number; position?: string; }; /** @description Represents a point located at a latitude and longitude using the WGS84 co-ordinate system. */ Point: { /** * Format: double * @description WGS84 latitude of the location. */ lat?: number; /** * Format: double * @description WGS84 longitude of the location. */ lon?: number; }; 'JourneyPlanner.Path': { lineString?: string; stopPoints?: TfL['Identifier'][]; elevation?: TfL['Tfl.Api.Common.JourneyPlanner.JpElevation'][]; }; 'JourneyPlanner.RouteOption': { /** @description The Id of the route */ id?: string; /** @description Name such as "72" */ name?: string; directions?: string[]; /** @description The line identifier (e.g. District Line), from where you can obtain line status information e.g. the rainbow board status "good service". */ lineIdentifier?: TfL['Identifier']; }; Identifier: { id?: string; name?: string; uri?: string; fullName?: string; type?: string; crowding?: TfL['Crowding']; routeType?: 'Unknown' | 'All' | 'Cycle Superhighways' | 'Quietways' | 'Cycleways' | 'Mini-Hollands' | 'Central London Grid' | 'Streetspace Route'; status?: 'Unknown' | 'All' | 'Open' | 'In Progress' | 'Planned' | 'Planned - Subject to feasibility and consultation.' | 'Not Open'; }; 'JourneyPlanner.PlannedWork': { id?: string; description?: string; /** Format: date-time */ createdDateTime?: string; /** Format: date-time */ lastUpdateDateTime?: string; }; 'JourneyPlanner.Fare': { /** Format: int32 */ lowZone?: number; /** Format: int32 */ highZone?: number; /** Format: int32 */ cost?: number; chargeProfileName?: string; isHopperFare?: boolean; chargeLevel?: string; /** Format: int32 */ peak?: number; /** Format: int32 */ offPeak?: number; taps?: TfL['JourneyPlanner.FareTap'][]; }; 'JourneyPlanner.FareCaveat': { text?: string; type?: string; }; /** @description keep old RouteSection name so as not to break contract */ DisruptedRoute: { /** @description The Id of the route */ id?: string; /** @description The Id of the Line */ lineId?: string; /** @description The route code */ routeCode?: string; /** @description Name such as "72" */ name?: string; /** @description The co-ordinates of the route's path as a geoJSON lineString */ lineString?: string; /** @description Inbound or Outbound */ direction?: string; /** @description The name of the Origin StopPoint */ originationName?: string; /** @description The name of the Destination StopPoint */ destinationName?: string; /** @description (where applicable) via Charing Cross / Bank / King's Cross / Embankment / Newbury Park / Woodford */ via?: TfL['RouteSectionNaptanEntrySequence']; /** @description Whether this represents the entire route section */ isEntireRouteSection?: boolean; /** * Format: date-time * @description The DateTime that the Service containing this Route is valid until. */ validTo?: string; /** * Format: date-time * @description The DateTime that the Service containing this Route is valid from. */ validFrom?: string; routeSectionNaptanEntrySequence?: TfL['RouteSectionNaptanEntrySequence'][]; }; StopPoint: { naptanId?: string; platformName?: string; /** @description The indicator of the stop point e.g. "Stop K" */ indicator?: string; /** @description The stop letter, if it could be cleansed from the Indicator e.g. "K" */ stopLetter?: string; modes?: string[]; icsCode?: string; smsCode?: string; stopType?: string; stationNaptan?: string; accessibilitySummary?: string; hubNaptanCode?: string; lines?: TfL['Identifier'][]; lineGroup?: TfL['LineGroup'][]; lineModeGroups?: TfL['LineModeGroup'][]; fullName?: string; naptanMode?: string; status?: boolean; /** @description A unique identifier. */ id?: string; /** @description The unique location of this resource. */ url?: string; /** @description A human readable name. */ commonName?: string; /** * Format: double * @description The distance of the place from its search point, if this is the result * of a geographical search, otherwise zero. */ distance?: number; /** @description The type of Place. See /Place/Meta/placeTypes for possible values. */ placeType?: string; /** @description A bag of additional key/value pairs with extra information about this place. */ additionalProperties?: TfL['AdditionalProperties'][]; children?: TfL['Place'][]; childrenUrls?: string[]; /** * Format: double * @description WGS84 latitude of the location. */ lat?: number; /** * Format: double * @description WGS84 longitude of the location. */ lon?: number; }; /** @description Represents a period for which a planned works is valid. */ ValidityPeriod: { /** * Format: date-time * @description Gets or sets the start date. */ fromDate?: string; /** * Format: date-time * @description Gets or sets the end date. */ toDate?: string; /** @description If true is a realtime status rather than planned or info */ isNow?: boolean; }; PassengerFlow: { /** @description Time in 24hr format with 15 minute intervals e.g. 0500-0515, 0515-0530 etc. */ timeSlice?: string; /** * Format: int32 * @description Count of passenger flow towards a platform */ value?: number; }; TrainLoading: { /** @description The Line Name e.g. "Victoria" */ line?: string; /** @description Direction of the Line e.g. NB, SB, WB etc. */ lineDirection?: string; /** @description Direction displayed on the platform e.g. NB, SB, WB etc. */ platformDirection?: string; /** @description Direction in regards to Journey Planner i.e. inbound or outbound */ direction?: string; /** @description Naptan of the adjacent station */ naptanTo?: string; /** @description Time in 24hr format with 15 minute intervals e.g. 0500-0515, 0515-0530 etc. */ timeSlice?: string; /** * Format: int32 * @description Scale between 1-6, * 1 = Very quiet, 2 = Quiet, 3 = Fairly busy, 4 = Busy, 5 = Very busy, 6 = Exceptionally busy */ value?: number; }; 'JourneyPlanner.TimeAdjustment': { date?: string; time?: string; timeIs?: string; uri?: string; }; InstructionStep: { description?: string; turnDirection?: string; streetName?: string; /** Format: int32 */ distance?: number; /** Format: int32 */ cumulativeDistance?: number; /** Format: int32 */ skyDirection?: number; skyDirectionDescription?: 'North' | 'NorthEast' | 'East' | 'SouthEast' | 'South' | 'SouthWest' | 'West' | 'NorthWest'; /** Format: int32 */ cumulativeTravelTime?: number; /** Format: double */ latitude?: number; /** Format: double */ longitude?: number; pathAttribute?: TfL['PathAttribute']; descriptionHeading?: string; trackType?: 'CycleSuperHighway' | 'CanalTowpath' | 'QuietRoad' | 'ProvisionForCyclists' | 'BusyRoads' | 'None' | 'PushBike' | 'Quietway'; }; 'Tfl.Api.Common.JourneyPlanner.JpElevation': { /** Format: int32 */ distance?: number; /** Format: double */ startLat?: number; /** Format: double */ startLon?: number; /** Format: double */ endLat?: number; /** Format: double */ endLon?: number; /** Format: int32 */ heightFromPreviousPoint?: number; /** Format: double */ gradient?: number; }; 'JourneyPlanner.FareTap': { atcoCode?: string; tapDetails?: TfL['JourneyPlanner.FareTapDetails']; }; RouteSectionNaptanEntrySequence: { /** Format: int32 */ ordinal?: number; stopPoint?: TfL['StopPoint']; }; LineGroup: { naptanIdReference?: string; stationAtcoCode?: string; lineIdentifier?: string[]; }; LineModeGroup: { modeName?: string; lineIdentifier?: string[]; }; PathAttribute: { name?: string; value?: string; }; 'JourneyPlanner.FareTapDetails': { modeType?: string; validationType?: string; hostDeviceType?: string; busRouteId?: string; /** Format: int32 */ nationalLocationCode?: number; /** Format: date-time */ tapTimestamp?: string; }; StatusSeverity: { modeName?: string; /** Format: int32 */ severityLevel?: number; description?: string; }; RouteSequence: { lineId?: string; lineName?: string; direction?: string; isOutboundOnly?: boolean; mode?: string; lineStrings?: string[]; stations?: TfL['MatchedStop'][]; stopPointSequences?: TfL['StopPointSequence'][]; orderedLineRoutes?: TfL['OrderedRoute'][]; }; MatchedStop: { /** Format: int32 */ routeId?: number; parentId?: string; stationId?: string; icsId?: string; topMostParentId?: string; direction?: string; towards?: string; modes?: string[]; stopType?: string; stopLetter?: string; zone?: string; accessibilitySummary?: string; hasDisruption?: boolean; lines?: TfL['Identifier'][]; status?: boolean; id?: string; url?: string; name?: string; /** Format: double */ lat?: number; /** Format: double */ lon?: number; }; StopPointSequence: { lineId?: string; lineName?: string; direction?: string; /** * Format: int32 * @description The id of this branch. */ branchId?: number; /** * @description The ids of the next branch(es) in the sequence. Note that the next and previous branch id can be * identical in the case of a looped route e.g. the Circle line. */ nextBranchIds?: number[]; /** * @description The ids of the previous branch(es) in the sequence. Note that the next and previous branch id can be * identical in the case of a looped route e.g. the Circle line. */ prevBranchIds?: number[]; stopPoint?: TfL['MatchedStop'][]; serviceType?: 'Regular' | 'Night'; }; OrderedRoute: { name?: string; naptanIds?: string[]; serviceType?: string; }; 'Tfl.Api.Common.DateRange': { /** Format: date-time */ startDate?: string; /** Format: date-time */ endDate?: string; }; RouteSearchResponse: { input?: string; searchMatches?: TfL['RouteSearchMatch'][]; }; RouteSearchMatch: { lineId?: string; mode?: string; lineName?: string; lineRouteSection?: TfL['LineRouteSection'][]; matchedRouteSections?: TfL['MatchedRouteSections'][]; matchedStops?: TfL['MatchedStop'][]; id?: string; url?: string; name?: string; /** Format: double */ lat?: number; /** Format: double */ lon?: number; }; LineRouteSection: { /** Format: int32 */ routeId?: number; direction?: string; destination?: string; fromStation?: string; toStation?: string; serviceType?: string; vehicleDestinationText?: string; }; MatchedRouteSections: { /** Format: int32 */ id?: number; }; TimetableResponse: { lineId?: string; lineName?: string; direction?: string; pdfUrl?: string; stations?: TfL['MatchedStop'][]; stops?: TfL['MatchedStop'][]; timetable?: TfL['Timetable']; disambiguation?: TfL['Timetables.Disambiguation']; statusErrorMessage?: string; }; Timetable: { departureStopId?: string; routes?: TfL['TimetableRoute'][]; }; 'Timetables.Disambiguation': { disambiguationOptions?: TfL['Timetables.DisambiguationOption'][]; }; TimetableRoute: { stationIntervals?: TfL['StationInterval'][]; schedules?: TfL['Schedule'][]; }; 'Timetables.DisambiguationOption': { description?: string; uri?: string; }; StationInterval: { id?: string; intervals?: TfL['Interval'][]; }; Schedule: { name?: string; knownJourneys?: TfL['KnownJourney'][]; firstJourney?: TfL['KnownJourney']; lastJourney?: TfL['KnownJourney']; periods?: TfL['Period'][]; }; Interval: { stopId?: string; /** Format: double */ timeToArrival?: number; }; KnownJourney: { hour?: string; minute?: string; /** Format: int32 */ intervalId?: number; }; Period: { type?: 'Normal' | 'FrequencyHours' | 'FrequencyMinutes' | 'Unknown'; fromTime?: TfL['TwentyFourHourClockTime']; toTime?: TfL['TwentyFourHourClockTime']; frequency?: TfL['ServiceFrequency']; }; TwentyFourHourClockTime: { hour?: string; minute?: string; }; ServiceFrequency: { /** Format: double */ lowestFrequency?: number; /** Format: double */ highestFrequency?: number; }; /** @description DTO to capture the prediction details */ Prediction: { /** @description The identitier for the prediction */ id?: string; /** * Format: int32 * @description The type of the operation (1: is new or has been updated, 2: should be deleted from any client cache) */ operationType?: number; /** @description The actual vehicle in transit (for train modes, the leading car of the rolling set) */ vehicleId?: string; /** @description Identifier for the prediction */ naptanId?: string; /** @description Station name */ stationName?: string; /** @description Unique identifier for the Line */ lineId?: string; /** @description Line Name */ lineName?: string; /** @description Platform name (for bus, this is the stop letter) */ platformName?: string; /** @description Direction (unified to inbound/outbound) */ direction?: string; /** @description Bearing (between 0 to 359) */ bearing?: string; /** @description Naptan Identifier for the prediction's destination */ destinationNaptanId?: string; /** @description Name of the destination */ destinationName?: string; /** * Format: date-time * @description Timestamp for when the prediction was inserted/modified (source column drives what objects are broadcast on each iteration) */ timestamp?: string; /** * Format: int32 * @description Prediction of the Time to station in seconds */ timeToStation?: number; /** @description The current location of the vehicle. */ currentLocation?: string; /** @description Routing information or other descriptive text about the path of the vehicle towards the destination */ towards?: string; /** * Format: date-time * @description The expected arrival time of the vehicle at the stop/station */ expectedArrival?: string; /** * Format: date-time * @description The expiry time for the prediction */ timeToLive?: string; /** @description The mode name of the station/line the prediction relates to */ modeName?: string; /** @description Keep the original timestamp from MongoDb fo debugging purposes */ timing?: TfL['PredictionTiming']; }; PredictionTiming: { countdownServerAdjustment?: string; /** Format: date-time */ source?: string; /** Format: date-time */ insert?: string; /** Format: date-time */ read?: string; /** Format: date-time */ sent?: string; /** Format: date-time */ received?: string; }; ActiveServiceType: { mode?: string; serviceType?: string; }; /** @description Represent travel network status */ NetworkStatus: { operator?: string; status?: string; message?: string; /** Format: int32 */ statusLevel?: number; }; CarParkOccupancy: { id?: string; bays?: TfL['Bay'][]; name?: string; carParkDetailsUrl?: string; }; Bay: { bayType?: string; /** Format: int32 */ bayCount?: number; /** Format: int32 */ free?: number; /** Format: int32 */ occupied?: number; }; ChargeConnectorOccupancy: { /** Format: int32 */ id?: number; sourceSystemPlaceId?: string; status?: string; }; /** @description Bike point occupancy */ BikePointOccupancy: { /** @description Id of the bike point such as BikePoints_1 */ id?: string; /** @description Name / Common name of the bike point */ name?: string; /** * Format: int32 * @description Total bike counts */ bikesCount?: number; /** * Format: int32 * @description Empty docks */ emptyDocks?: number; /** * Format: int32 * @description Total docks available */ totalDocks?: number; }; PlaceCategory: { category?: string; availableKeys?: string[]; }; SearchResponse: { query?: string; /** Format: int32 */ from?: number; /** Format: int32 */ page?: number; /** Format: int32 */ pageSize?: number; provider?: string; /** Format: int32 */ total?: number; matches?: TfL['SearchMatch'][]; /** Format: double */ maxScore?: number; }; SearchMatch: { id?: string; url?: string; name?: string; /** Format: double */ lat?: number; /** Format: double */ lon?: number; }; 'Tfl.Api.Common.PostcodeInput': { postcode?: string; }; PlacePolygon: { geoPoints?: TfL['Tfl.Api.Common.GeoPoint'][]; commonName?: string; }; 'Tfl.Api.Common.GeoPoint': { /** Format: double */ lat: number; /** Format: double */ lon: number; }; 'Tfl.Api.Common.PlaceGeo': { /** Format: double */ swLat?: number; /** Format: double */ swLon?: number; /** Format: double */ neLat?: number; /** Format: double */ neLon?: number; /** Format: double */ lat?: number; /** Format: double */ lon?: number; }; RoadCorridor: { /** @description The Id of the Corridor e.g. "A406" */ id?: string; /** * @description The display name of the Corridor e.g. "North Circular (A406)". This * may be identical to the Id. */ displayName?: string; /** @description The group name of the Corridor e.g. "Central London". Most corridors are not grouped, in which case this field can be null. */ group?: string; /** @description Standard multi-mode status severity code */ statusSeverity?: string; /** @description Description of the status severity as applied to RoadCorridors */ statusSeverityDescription?: string; /** * @description The Bounds of the Corridor, given by the south-east followed by the north-west co-ordinate * pair in geoJSON format e.g. "[[-1.241531,51.242151],[1.641223,53.765721]]" */ bounds?: string; /** * @description The Envelope of the Corridor, given by the corner co-ordinates of a rectangular (four-point) polygon * in geoJSON format e.g. "[[-1.241531,51.242151],[-1.241531,53.765721],[1.641223,53.765721],[1.641223,51.242151]]" */ envelope?: string; /** * Format: date-time * @description The start of the period over which status has been aggregated, or null if this is the current corridor status. */ statusAggregationStartDate?: string; /** * Format: date-time * @description The end of the period over which status has been aggregated, or null if this is the current corridor status. */ statusAggregationEndDate?: string; /** @description URL to retrieve this Corridor. */ url?: string; }; 'Tfl.Api.Common.DateRangeNullable': { /** Format: date-time */ startDate?: string; /** Format: date-time */ endDate?: string; }; RoadDisruption: { /** @description Unique identifier for the road disruption */ id?: string; /** @description URL to retrieve this road disruption */ url?: string; /** @description Latitude and longitude (WGS84) of the centroid of the disruption, stored in a geoJSON-formatted string. */ point?: string; /** @description A description of the severity of the disruption. */ severity?: string; /** * Format: int32 * @description An ordinal of the disruption based on severity, level of interest and corridor. */ ordinal?: number; /** @description Describes the nature of disruption e.g. Traffic Incidents, Works */ category?: string; /** @description Describes the sub-category of disruption e.g. Collapsed Manhole, Abnormal Load */ subCategory?: string; /** @description Full text of comments describing the disruption, including details of any road closures and diversions, where appropriate. */ comments?: string; /** * @description Text of the most recent update from the LSTCC on the state of the * disruption, including the current traffic impact and any advice to * road users. */ currentUpdate?: string; /** * Format: date-time * @description The time when the last CurrentUpdate description was recorded, * or null if no CurrentUpdate has been applied. */ currentUpdateDateTime?: string; /** @description The Ids of affected corridors, if any. */ corridorIds?: string[]; /** * Format: date-time * @description The date and time which the disruption started. For a planned disruption (i.e. planned road works) this date will be in the future. * For unplanned disruptions, this will default to the date on which the disruption was first recorded, but may be adjusted by the operator. */ startDateTime?: string; /** * Format: date-time * @description The date and time on which the disruption ended. For planned disruptions, this date will have a valid value. For unplanned * disruptions in progress, this field will be omitted. */ endDateTime?: string; /** * Format: date-time * @description The date and time on which the disruption was last modified in the system. This information can reliably be used by a developer to quickly * compare two instances of the same disruption to determine if it has been changed. */ lastModifiedTime?: string; /** * @description This describes the level of potential impact on traffic operations of the disruption. * High = e.g. a one-off disruption on a major or high profile route which will require a high level of operational attention * Medium = This is the default value * Low = e.g. a frequently occurring disruption which is well known */ levelOfInterest?: string; /** @description Main road name / number (borough) or preset area name where the disruption is located. This might be useful for a map popup where space is limited. */ location?: string; /** * @description This describes the status of the disruption. * Active = currently in progress * Active Long Term = currently in progress and long term * Scheduled = scheduled to start within the next 180 days * Recurring Works = planned maintenance works that follow a regular routine or pattern and whose next occurrence is to start within the next 180 days. * Recently Cleared = recently cleared in the last 24 hours * Note that the status of Scheduled or Recurring Works disruptions will change to Active when they start, and will change status again when they end. */ status?: string; /** * @description Geography version of Point for output as GeoJSON. * Can not use Geometry in a consistent way as non-TIMS disruptions do not have a polygon */ geography?: TfL['System.Data.Spatial.DbGeography']; /** * @description GeoJSON formatted latitude/longitude (WGS84) pairs forming an enclosed polyline or polygon. The polygon will only be included where affected streets information * is not available for the disruption, would be inappropriate (e.g. a very large number of streets), or is centred on an area without streets (e.g. a football stadium). */ geometry?: TfL['System.Data.Spatial.DbGeography']; /** @description A collection of zero or more streets affected by the disruption. */ streets?: TfL['Street'][]; /** @description True if the disruption is planned on a future date that is open to change */ isProvisional?: boolean; /** * @description True if any of the affected Streets have a "Full Closure" status, false otherwise. A RoadDisruption that has HasClosures is considered a * Severe or Serious disruption for severity filtering purposes. */ hasClosures?: boolean; /** @description The text of any associated link */ linkText?: string; /** @description The url of any associated link */ linkUrl?: string; /** @description Any associated road project */ roadProject?: TfL['RoadProject']; /** * Format: date-time * @description TDM Additional properties */ publishStartDate?: string; /** Format: date-time */ publishEndDate?: string; timeFrame?: string; roadDisruptionLines?: TfL['RoadDisruptionLine'][]; roadDisruptionImpactAreas?: TfL['RoadDisruptionImpactArea'][]; recurringSchedules?: TfL['RoadDisruptionSchedule'][]; }; Street: { /** @description Street name */ name?: string; /** * @description Type of road closure. Some example values: * Open = road is open, not blocked, not closed, not restricted. It maybe that the disruption has been moved out of the carriageway. * Partial Closure = road is partially blocked, closed or restricted. * Full Closure = road is fully blocked or closed. */ closure?: string; /** * @description The direction of the disruption on the street. Some example values: * All Directions * All Approaches * Clockwise * Anti-Clockwise * Northbound * Eastbound * Southbound * Westbound * Both Directions */ directions?: string; /** @description Geographic description of the sections of this street that are affected. */ segments?: TfL['StreetSegment'][]; /** * Format: int64 * @description The ID from the source system of the disruption that this street belongs to. */ sourceSystemId?: number; /** @description The key of the source system of the disruption that this street belongs to. */ sourceSystemKey?: string; }; RoadProject: { projectId?: string; schemeName?: string; projectName?: string; projectDescription?: string; projectPageUrl?: string; consultationPageUrl?: string; /** Format: date-time */ consultationStartDate?: string; /** Format: date-time */ consultationEndDate?: string; /** Format: date-time */ constructionStartDate?: string; /** Format: date-time */ constructionEndDate?: string; boroughsBenefited?: string[]; cycleSuperhighwayId?: string; phase?: 'Unscoped' | 'Concept' | 'ConsultationEnded' | 'Consultation' | 'Construction' | 'Complete'; contactName?: string; contactEmail?: string; externalPageUrl?: string; projectSummaryPageUrl?: string; }; RoadDisruptionLine: { /** Format: int32 */ id?: number; roadDisruptionId?: string; isDiversion?: boolean; multiLineString?: TfL['System.Data.Spatial.DbGeography']; /** Format: date-time */ startDate?: string; /** Format: date-time */ endDate?: string; startTime?: string; endTime?: string; }; RoadDisruptionImpactArea: { /** Format: int32 */ id?: number; roadDisruptionId?: string; polygon?: TfL['System.Data.Spatial.DbGeography']; /** Format: date-time */ startDate?: string; /** Format: date-time */ endDate?: string; startTime?: string; endTime?: string; }; RoadDisruptionSchedule: { /** Format: date-time */ startTime?: string; /** Format: date-time */ endTime?: string; }; StreetSegment: { /** @description A 16 digit unique integer identifying a OS ITN (Ordnance Survey Integrated Transport Network) road link. */ toid?: string; /** @description geoJSON formatted LineString containing two latitude/longitude (WGS84) pairs that identify the start and end points of the street segment. */ lineString?: string; /** * Format: int64 * @description The ID from the source system of the disruption that this street belongs to. */ sourceSystemId?: number; /** @description The key of the source system of the disruption that this street belongs to. */ sourceSystemKey?: string; }; Redirect: { shortUrl?: string; longUrl?: string; active?: boolean; }; StopPointCategory: { category?: string; availableKeys?: string[]; }; LineServiceType: { lineName?: string; lineSpecificServiceTypes?: TfL['LineSpecificServiceType'][]; }; LineSpecificServiceType: { serviceType?: TfL['LineServiceTypeInfo']; stopServesServiceType?: boolean; }; /** @description DTO to capture the prediction details */ ArrivalDeparture: { /** @description Platform name (for bus, this is the stop letter) */ platformName?: string; /** @description Naptan Identifier for the prediction's destination */ destinationNaptanId?: st