Closed lmmx closed 2 years ago
Package update to use names
subcommand: ae74bbe9808e366650dfd1387f960852f5969b46
data/openapi/v1
and data/openapi/v3
: dac559b9c2305a1267866a0efe6136a79d71ad4dnaming.md
done in api_schema_inventory
function in openapi.scan
moduleThe two options to search through are:
A report on the 'remaining' part of the problem: 793aa78861d52b52aa6e87adc6187e3433d39746, dea7f02d999b687439af61f71150a00c90998e97
[Reference(schema='occupancy',
alias='Tfl-2',
referential_property='bays',
is_array=True,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
{'Tfl': ['Tfl.Api.Presentation.Entities.Bay'],
'Tfl-2': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.ChargeConnectorOccupancy'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.BikePointOccupancy']}
[Reference(schema='StopPoint',
alias='Tfl-5',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='StopPoint',
alias='Tfl-5',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-4')]
Completable: 2, incomplete: 0
[Reference(schema='StopPoint',
alias='Tfl-6',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 0, incomplete: 1
[Reference(schema='StopPoint',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='StopPoint',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 1, incomplete: 1
[Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 3, incomplete: 2
[Reference(schema='StopPoint',
alias='Tfl-13',
referential_property='serviceType',
is_array=False,
entity='#/components/schemas/Tfl-12')]
Completable: 1, incomplete: 0
[Reference(schema='StopPoint',
alias='Tfl-14',
referential_property='lineSpecificServiceTypes',
is_array=True,
entity='#/components/schemas/Tfl-13')]
Completable: 0, incomplete: 1
[Reference(schema='StopPoint',
alias='Tfl-16',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-15')]
Completable: 1, incomplete: 0
[Reference(schema='StopPoint',
alias='Tfl-17',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-15')]
Completable: 1, incomplete: 0
[Reference(schema='StopPoint',
alias='Tfl-20',
referential_property='stopPoints',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 1
[Reference(schema='StopPoint',
alias='Tfl-22',
referential_property='matches',
is_array=True,
entity='#/components/schemas/Tfl-21')]
Completable: 1, incomplete: 0
{'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-13': [],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-16': [],
'Tfl-17': [],
'Tfl-18': ['Tfl.Api.Presentation.Entities.StopPointRouteSection'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.DisruptedPoint'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-20': [],
'Tfl-21': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-22': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-5': [],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']}
[Reference(schema='Search',
alias='Tfl-2',
referential_property='matches',
is_array=True,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
{'Tfl': ['Tfl.Api.Presentation.Entities.SearchMatch'], 'Tfl-2': []}
[Reference(schema='Mode',
alias='Tfl.Api.Presentation.Entities.Prediction',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.PredictionTiming')]
Completable: 1, incomplete: 0
{'Tfl.Api.Presentation.Entities.ActiveServiceType': ['Tfl.Api.Presentation.Entities.ActiveServiceType'],
'Tfl.Api.Presentation.Entities.Prediction': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl.Api.Presentation.Entities.PredictionTiming': ['Tfl.Api.Presentation.Entities.PredictionTiming']}
[Reference(schema='Vehicle',
alias='Tfl-2',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
{'Tfl': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-2': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.VehicleMatch']}
[Reference(schema='AccidentStats',
alias='Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
referential_property='casualties',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AccidentStats.Casualty'),
Reference(schema='AccidentStats',
alias='Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
referential_property='vehicles',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AccidentStats.Vehicle')]
Completable: 2, incomplete: 0
{'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail': ['Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail'],
'Tfl.Api.Presentation.Entities.AccidentStats.Casualty': ['Tfl.Api.Presentation.Entities.AccidentStats.Casualty'],
'Tfl.Api.Presentation.Entities.AccidentStats.Vehicle': ['Tfl.Api.Presentation.Entities.AccidentStats.Vehicle']}
[Reference(schema='Road',
alias='System-2',
referential_property='geography',
is_array=False,
entity='#/components/schemas/System')]
Completable: 1, incomplete: 0
[Reference(schema='Road',
alias='Tfl-3',
referential_property='segments',
is_array=True,
entity='#/components/schemas/Tfl-2')]
Completable: 1, incomplete: 0
[Reference(schema='Road',
alias='Tfl-5',
referential_property='multiLineString',
is_array=False,
entity='#/components/schemas/System-2')]
Completable: 0, incomplete: 1
[Reference(schema='Road',
alias='Tfl-6',
referential_property='polygon',
is_array=False,
entity='#/components/schemas/System-2')]
Completable: 0, incomplete: 1
[Reference(schema='Road',
alias='Tfl-8',
referential_property='geography',
is_array=False,
entity='#/components/schemas/System-2'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='geometry',
is_array=False,
entity='#/components/schemas/System-2'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='streets',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadProject',
is_array=False,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadDisruptionLines',
is_array=True,
entity='#/components/schemas/Tfl-5'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadDisruptionImpactAreas',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='recurringSchedules',
is_array=True,
entity='#/components/schemas/Tfl-7')]
Completable: 2, incomplete: 5
{'System': ['System.Data.Spatial.DbGeographyWellKnownValue'],
'System-2': [],
'System-3': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.RoadCorridor'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StreetSegment'],
'Tfl-3': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.RoadProject'],
'Tfl-5': [],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.RoadDisruptionSchedule'],
'Tfl-8': [],
'Tfl-9': ['Tfl.Api.Presentation.Entities.StatusSeverity']}
[Reference(schema='BikePoint',
alias='Tfl.Api.Presentation.Entities.Place',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AdditionalProperties'),
Reference(schema='BikePoint',
alias='Tfl.Api.Presentation.Entities.Place',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.Place')]
Completable: 2, incomplete: 0
{'Tfl.Api.Presentation.Entities.AdditionalProperties': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl.Api.Presentation.Entities.Place': ['Tfl.Api.Presentation.Entities.Place']}
[Reference(schema='Journey',
alias='Tfl-3',
referential_property='pathAttribute',
is_array=False,
entity='#/components/schemas/Tfl-2')]
Completable: 1, incomplete: 0
[Reference(schema='Journey',
alias='Tfl-4',
referential_property='steps',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-9',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Journey',
alias='Tfl-9',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-8')]
Completable: 2, incomplete: 0
[Reference(schema='Journey',
alias='Tfl-10',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-9')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-12',
referential_property='stopPoints',
is_array=True,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-12',
referential_property='elevation',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 1, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-13',
referential_property='lineIdentifier',
is_array=False,
entity='#/components/schemas/Tfl-10')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-17',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Journey',
alias='Tfl-17',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-17')]
Completable: 1, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-18',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-14'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-15'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-17')]
Completable: 3, incomplete: 2
[Reference(schema='Journey',
alias='Tfl-19',
referential_property='stopPoint',
is_array=False,
entity='#/components/schemas/Tfl-18')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-20',
referential_property='routeSectionNaptanEntrySequence',
is_array=True,
entity='#/components/schemas/Tfl-19')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-21',
referential_property='affectedRoutes',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Journey',
alias='Tfl-21',
referential_property='affectedStops',
is_array=True,
entity='#/components/schemas/Tfl-18')]
Completable: 0, incomplete: 2
[Reference(schema='Journey',
alias='Tfl-23',
referential_property='instruction',
is_array=False,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='obstacles',
is_array=True,
entity='#/components/schemas/Tfl-5'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='departurePoint',
is_array=False,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='arrivalPoint',
is_array=False,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='path',
is_array=False,
entity='#/components/schemas/Tfl-12'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='routeOptions',
is_array=True,
entity='#/components/schemas/Tfl-13'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='mode',
is_array=False,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='plannedWorks',
is_array=True,
entity='#/components/schemas/Tfl-22')]
Completable: 4, incomplete: 5
[Reference(schema='Journey',
alias='Tfl-25',
referential_property='tapDetails',
is_array=False,
entity='#/components/schemas/Tfl-24')]
Completable: 1, incomplete: 0
[Reference(schema='Journey',
alias='Tfl-26',
referential_property='taps',
is_array=True,
entity='#/components/schemas/Tfl-25')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-28',
referential_property='fares',
is_array=True,
entity='#/components/schemas/Tfl-26'),
Reference(schema='Journey',
alias='Tfl-28',
referential_property='caveats',
is_array=True,
entity='#/components/schemas/Tfl-27')]
Completable: 1, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-29',
referential_property='legs',
is_array=True,
entity='#/components/schemas/Tfl-23'),
Reference(schema='Journey',
alias='Tfl-29',
referential_property='fare',
is_array=False,
entity='#/components/schemas/Tfl-28')]
Completable: 0, incomplete: 2
[Reference(schema='Journey',
alias='Tfl-31',
referential_property='validityPeriods',
is_array=True,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Journey',
alias='Tfl-31',
referential_property='disruption',
is_array=False,
entity='#/components/schemas/Tfl-21')]
Completable: 1, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-34',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='lineStatuses',
is_array=True,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='routeSections',
is_array=True,
entity='#/components/schemas/Tfl-32'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='serviceTypes',
is_array=True,
entity='#/components/schemas/Tfl-33'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-9')]
Completable: 2, incomplete: 3
[Reference(schema='Journey',
alias='Tfl-37',
referential_property='earliest',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='earlier',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='later',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='latest',
is_array=False,
entity='#/components/schemas/Tfl-36')]
Completable: 4, incomplete: 0
[Reference(schema='Journey',
alias='Tfl-38',
referential_property='timeAdjustments',
is_array=False,
entity='#/components/schemas/Tfl-37')]
Completable: 0, incomplete: 1
[Reference(schema='Journey',
alias='Tfl-40',
referential_property='journeys',
is_array=True,
entity='#/components/schemas/Tfl-29'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-34'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='cycleHireDockingStationData',
is_array=False,
entity='#/components/schemas/Tfl-35'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='searchCriteria',
is_array=False,
entity='#/components/schemas/Tfl-38'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='journeyVector',
is_array=False,
entity='#/components/schemas/Tfl-39')]
Completable: 2, incomplete: 3
{'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': ['Tfl.Api.Common.JourneyPlanner.JpElevation'],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-17': [],
'Tfl-18': [],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.PathAttribute'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.JourneyPlanner.PlannedWork'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTapDetails'],
'Tfl-25': [],
'Tfl-26': [],
'Tfl-27': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareCaveat'],
'Tfl-28': [],
'Tfl-29': [],
'Tfl-3': [],
'Tfl-30': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-31': [],
'Tfl-32': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-34': [],
'Tfl-35': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyPlannerCycleHireDockingStationData'],
'Tfl-36': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustment'],
'Tfl-37': [],
'Tfl-38': [],
'Tfl-39': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyVector'],
'Tfl-4': [],
'Tfl-40': [],
'Tfl-5': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Obstacle'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Point'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-9': []}
[Reference(schema='Line',
alias='Tfl-5',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='Line',
alias='Tfl-5',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-4')]
Completable: 2, incomplete: 0
[Reference(schema='Line',
alias='Tfl-6',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Line',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 1, incomplete: 1
[Reference(schema='Line',
alias='Tfl-11',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 3, incomplete: 2
[Reference(schema='Line',
alias='Tfl-12',
referential_property='stopPoint',
is_array=False,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-13',
referential_property='routeSectionNaptanEntrySequence',
is_array=True,
entity='#/components/schemas/Tfl-12')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-14',
referential_property='affectedRoutes',
is_array=True,
entity='#/components/schemas/Tfl-13'),
Reference(schema='Line',
alias='Tfl-14',
referential_property='affectedStops',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 2
[Reference(schema='Line',
alias='Tfl-16',
referential_property='validityPeriods',
is_array=True,
entity='#/components/schemas/Tfl-15'),
Reference(schema='Line',
alias='Tfl-16',
referential_property='disruption',
is_array=False,
entity='#/components/schemas/Tfl-14')]
Completable: 1, incomplete: 1
[Reference(schema='Line',
alias='Tfl-19',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-14'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='lineStatuses',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='routeSections',
is_array=True,
entity='#/components/schemas/Tfl-17'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='serviceTypes',
is_array=True,
entity='#/components/schemas/Tfl-18'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 2, incomplete: 3
[Reference(schema='Line',
alias='Tfl-20',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-21',
referential_property='stopPoint',
is_array=True,
entity='#/components/schemas/Tfl-20')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-23',
referential_property='stations',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-23',
referential_property='stopPointSequences',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Line',
alias='Tfl-23',
referential_property='orderedLineRoutes',
is_array=True,
entity='#/components/schemas/Tfl-22')]
Completable: 1, incomplete: 2
[Reference(schema='Line',
alias='Tfl-26',
referential_property='lineRouteSection',
is_array=True,
entity='#/components/schemas/Tfl-24'),
Reference(schema='Line',
alias='Tfl-26',
referential_property='matchedRouteSections',
is_array=True,
entity='#/components/schemas/Tfl-25'),
Reference(schema='Line',
alias='Tfl-26',
referential_property='matchedStops',
is_array=True,
entity='#/components/schemas/Tfl-20')]
Completable: 2, incomplete: 1
[Reference(schema='Line',
alias='Tfl-27',
referential_property='searchMatches',
is_array=True,
entity='#/components/schemas/Tfl-26')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-29',
referential_property='intervals',
is_array=True,
entity='#/components/schemas/Tfl-28')]
Completable: 1, incomplete: 0
[Reference(schema='Line',
alias='Tfl-33',
referential_property='fromTime',
is_array=False,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Line',
alias='Tfl-33',
referential_property='toTime',
is_array=False,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Line',
alias='Tfl-33',
referential_property='frequency',
is_array=False,
entity='#/components/schemas/Tfl-32')]
Completable: 3, incomplete: 0
[Reference(schema='Line',
alias='Tfl-34',
referential_property='knownJourneys',
is_array=True,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='firstJourney',
is_array=False,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='lastJourney',
is_array=False,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='periods',
is_array=True,
entity='#/components/schemas/Tfl-33')]
Completable: 3, incomplete: 1
[Reference(schema='Line',
alias='Tfl-35',
referential_property='stationIntervals',
is_array=True,
entity='#/components/schemas/Tfl-29'),
Reference(schema='Line',
alias='Tfl-35',
referential_property='schedules',
is_array=True,
entity='#/components/schemas/Tfl-34')]
Completable: 0, incomplete: 2
[Reference(schema='Line',
alias='Tfl-36',
referential_property='routes',
is_array=True,
entity='#/components/schemas/Tfl-35')]
Completable: 0, incomplete: 1
[Reference(schema='Line',
alias='Tfl-38',
referential_property='disambiguationOptions',
is_array=True,
entity='#/components/schemas/Tfl-37')]
Completable: 1, incomplete: 0
[Reference(schema='Line',
alias='Tfl-39',
referential_property='stations',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='stops',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='timetable',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='disambiguation',
is_array=False,
entity='#/components/schemas/Tfl-38')]
Completable: 0, incomplete: 4
[Reference(schema='Line',
alias='Tfl-41',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-40')]
Completable: 1, incomplete: 0
{'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-16': [],
'Tfl-17': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StatusSeverity'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.OrderedRoute'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.LineRouteSection'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.MatchedRouteSections'],
'Tfl-26': [],
'Tfl-27': [],
'Tfl-28': ['Tfl.Api.Presentation.Entities.Interval'],
'Tfl-29': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.KnownJourney'],
'Tfl-31': ['Tfl.Api.Presentation.Entities.TwentyFourHourClockTime'],
'Tfl-32': ['Tfl.Api.Presentation.Entities.ServiceFrequency'],
'Tfl-33': [],
'Tfl-34': [],
'Tfl-35': [],
'Tfl-36': [],
'Tfl-37': ['Tfl.Api.Presentation.Entities.Timetables.DisambiguationOption'],
'Tfl-38': [],
'Tfl-39': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-40': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-41': [],
'Tfl-5': [],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']}
[Reference(schema='Place',
alias='Tfl-3',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-2'),
Reference(schema='Place',
alias='Tfl-3',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 1, incomplete: 1
[Reference(schema='Place',
alias='Tfl-6',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Place',
alias='Tfl-6',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-5')]
Completable: 2, incomplete: 0
[Reference(schema='Place',
alias='Tfl-7',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-6')]
Completable: 0, incomplete: 1
[Reference(schema='Place',
alias='Tfl-10',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-2'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 3, incomplete: 2
{'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-3': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-6': [],
'Tfl-7': [],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.LineModeGroup']}
Just from looking at some of these, I expect this to be sufficient to fully resolve all of the remaining entity names, without 'fuzzy' matching (using both the "$ref" and "items" keys).
Begun work on dealiasing the references:
Reference
objectsReference
objects will become source material for executing the modifications to each API's schema property objects to then compare against the unified API's schema property objectsReferences now resolved and used to modify schema properties when comparing against the unified API c4248d9ae536b6608081ad6ff05791883e6c9460
[Reference(schema='occupancy',
alias='Tfl-2',
referential_property='bays',
is_array=True,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'Tfl': ['Tfl.Api.Presentation.Entities.Bay'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.CarParkOccupancy'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.ChargeConnectorOccupancy'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.BikePointOccupancy']}
[Reference(schema='StopPoint',
alias='Tfl-5',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='StopPoint',
alias='Tfl-5',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-4')]
Completable: 2, incomplete: 0
Resolved property refs: 2
[Reference(schema='StopPoint',
alias='Tfl-6',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='StopPoint',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='StopPoint',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='StopPoint',
alias='Tfl-11',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 3, incomplete: 2
Resolved property refs: 3
[Reference(schema='StopPoint',
alias='Tfl-13',
referential_property='serviceType',
is_array=False,
entity='#/components/schemas/Tfl-12')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='StopPoint',
alias='Tfl-14',
referential_property='lineSpecificServiceTypes',
is_array=True,
entity='#/components/schemas/Tfl-13')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='StopPoint',
alias='Tfl-16',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-15')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='StopPoint',
alias='Tfl-17',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-15')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='StopPoint',
alias='Tfl-20',
referential_property='stopPoints',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='StopPoint',
alias='Tfl-22',
referential_property='matches',
is_array=True,
entity='#/components/schemas/Tfl-21')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-13': ['Tfl.Api.Presentation.Entities.LineSpecificServiceType'],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-17': ['Tfl.Api.Presentation.Entities.ArrivalDeparture'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.StopPointRouteSection'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.DisruptedPoint'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-20': [],
'Tfl-21': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-22': ['Tfl.Api.Presentation.Entities.SearchResponse'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']}
[Reference(schema='Search',
alias='Tfl-2',
referential_property='matches',
is_array=True,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'Tfl': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.SearchResponse']}
[Reference(schema='Mode',
alias='Tfl.Api.Presentation.Entities.Prediction',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.PredictionTiming')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'Tfl.Api.Presentation.Entities.ActiveServiceType': ['Tfl.Api.Presentation.Entities.ActiveServiceType'],
'Tfl.Api.Presentation.Entities.Prediction': ['Tfl.Api.Presentation.Entities.Prediction',
'Tfl.Api.Presentation.Entities.Prediction'],
'Tfl.Api.Presentation.Entities.PredictionTiming': ['Tfl.Api.Presentation.Entities.PredictionTiming']}
[Reference(schema='Vehicle',
alias='Tfl-2',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'Tfl': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.VehicleMatch']}
[Reference(schema='AccidentStats',
alias='Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
referential_property='casualties',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AccidentStats.Casualty'),
Reference(schema='AccidentStats',
alias='Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
referential_property='vehicles',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AccidentStats.Vehicle')]
Completable: 2, incomplete: 0
Resolved property refs: 2
{'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail': ['Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail'],
'Tfl.Api.Presentation.Entities.AccidentStats.Casualty': ['Tfl.Api.Presentation.Entities.AccidentStats.Casualty'],
'Tfl.Api.Presentation.Entities.AccidentStats.Vehicle': ['Tfl.Api.Presentation.Entities.AccidentStats.Vehicle']}
[Reference(schema='Road',
alias='System-2',
referential_property='geography',
is_array=False,
entity='#/components/schemas/System')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Road',
alias='Tfl-3',
referential_property='segments',
is_array=True,
entity='#/components/schemas/Tfl-2')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Road',
alias='Tfl-5',
referential_property='multiLineString',
is_array=False,
entity='#/components/schemas/System-2')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Road',
alias='Tfl-6',
referential_property='polygon',
is_array=False,
entity='#/components/schemas/System-2')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Road',
alias='Tfl-8',
referential_property='geography',
is_array=False,
entity='#/components/schemas/System-2'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='geometry',
is_array=False,
entity='#/components/schemas/System-2'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='streets',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadProject',
is_array=False,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadDisruptionLines',
is_array=True,
entity='#/components/schemas/Tfl-5'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='roadDisruptionImpactAreas',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Road',
alias='Tfl-8',
referential_property='recurringSchedules',
is_array=True,
entity='#/components/schemas/Tfl-7')]
Completable: 2, incomplete: 5
Resolved property refs: 2
{'System': ['System.Data.Spatial.DbGeographyWellKnownValue'],
'System-2': ['System.Data.Spatial.DbGeography'],
'System-3': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.RoadCorridor'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StreetSegment'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.Street'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.RoadProject'],
'Tfl-5': [],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.RoadDisruptionSchedule'],
'Tfl-8': [],
'Tfl-9': ['Tfl.Api.Presentation.Entities.StatusSeverity']}
[Reference(schema='BikePoint',
alias='Tfl.Api.Presentation.Entities.Place',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.AdditionalProperties'),
Reference(schema='BikePoint',
alias='Tfl.Api.Presentation.Entities.Place',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl.Api.Presentation.Entities.Place')]
Completable: 2, incomplete: 0
Resolved property refs: 2
{'Tfl.Api.Presentation.Entities.AdditionalProperties': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl.Api.Presentation.Entities.Place': ['Tfl.Api.Presentation.Entities.Place',
'Tfl.Api.Presentation.Entities.Place']}
[Reference(schema='Journey',
alias='Tfl-3',
referential_property='pathAttribute',
is_array=False,
entity='#/components/schemas/Tfl-2')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-4',
referential_property='steps',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-9',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Journey',
alias='Tfl-9',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-8')]
Completable: 2, incomplete: 0
Resolved property refs: 2
[Reference(schema='Journey',
alias='Tfl-10',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-9')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-12',
referential_property='stopPoints',
is_array=True,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-12',
referential_property='elevation',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-13',
referential_property='lineIdentifier',
is_array=False,
entity='#/components/schemas/Tfl-10')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-17',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Journey',
alias='Tfl-17',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-17')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-18',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-14'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-15'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Journey',
alias='Tfl-18',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-17')]
Completable: 3, incomplete: 2
Resolved property refs: 3
[Reference(schema='Journey',
alias='Tfl-19',
referential_property='stopPoint',
is_array=False,
entity='#/components/schemas/Tfl-18')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-20',
referential_property='routeSectionNaptanEntrySequence',
is_array=True,
entity='#/components/schemas/Tfl-19')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-21',
referential_property='affectedRoutes',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Journey',
alias='Tfl-21',
referential_property='affectedStops',
is_array=True,
entity='#/components/schemas/Tfl-18')]
Completable: 0, incomplete: 2
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-23',
referential_property='instruction',
is_array=False,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='obstacles',
is_array=True,
entity='#/components/schemas/Tfl-5'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='departurePoint',
is_array=False,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='arrivalPoint',
is_array=False,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='path',
is_array=False,
entity='#/components/schemas/Tfl-12'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='routeOptions',
is_array=True,
entity='#/components/schemas/Tfl-13'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='mode',
is_array=False,
entity='#/components/schemas/Tfl-10'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Journey',
alias='Tfl-23',
referential_property='plannedWorks',
is_array=True,
entity='#/components/schemas/Tfl-22')]
Completable: 4, incomplete: 5
Resolved property refs: 4
[Reference(schema='Journey',
alias='Tfl-25',
referential_property='tapDetails',
is_array=False,
entity='#/components/schemas/Tfl-24')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-26',
referential_property='taps',
is_array=True,
entity='#/components/schemas/Tfl-25')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-28',
referential_property='fares',
is_array=True,
entity='#/components/schemas/Tfl-26'),
Reference(schema='Journey',
alias='Tfl-28',
referential_property='caveats',
is_array=True,
entity='#/components/schemas/Tfl-27')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-29',
referential_property='legs',
is_array=True,
entity='#/components/schemas/Tfl-23'),
Reference(schema='Journey',
alias='Tfl-29',
referential_property='fare',
is_array=False,
entity='#/components/schemas/Tfl-28')]
Completable: 0, incomplete: 2
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-31',
referential_property='validityPeriods',
is_array=True,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Journey',
alias='Tfl-31',
referential_property='disruption',
is_array=False,
entity='#/components/schemas/Tfl-21')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Journey',
alias='Tfl-34',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='lineStatuses',
is_array=True,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='routeSections',
is_array=True,
entity='#/components/schemas/Tfl-32'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='serviceTypes',
is_array=True,
entity='#/components/schemas/Tfl-33'),
Reference(schema='Journey',
alias='Tfl-34',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-9')]
Completable: 2, incomplete: 3
Resolved property refs: 2
[Reference(schema='Journey',
alias='Tfl-37',
referential_property='earliest',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='earlier',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='later',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Journey',
alias='Tfl-37',
referential_property='latest',
is_array=False,
entity='#/components/schemas/Tfl-36')]
Completable: 4, incomplete: 0
Resolved property refs: 4
[Reference(schema='Journey',
alias='Tfl-38',
referential_property='timeAdjustments',
is_array=False,
entity='#/components/schemas/Tfl-37')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Journey',
alias='Tfl-40',
referential_property='journeys',
is_array=True,
entity='#/components/schemas/Tfl-29'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-34'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='cycleHireDockingStationData',
is_array=False,
entity='#/components/schemas/Tfl-35'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='searchCriteria',
is_array=False,
entity='#/components/schemas/Tfl-38'),
Reference(schema='Journey',
alias='Tfl-40',
referential_property='journeyVector',
is_array=False,
entity='#/components/schemas/Tfl-39')]
Completable: 2, incomplete: 3
Resolved property refs: 2
{'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': ['Tfl.Api.Common.JourneyPlanner.JpElevation'],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-17': [],
'Tfl-18': [],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.PathAttribute'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.JourneyPlanner.PlannedWork'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTapDetails'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTap'],
'Tfl-26': [],
'Tfl-27': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareCaveat'],
'Tfl-28': [],
'Tfl-29': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.InstructionStep'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-31': [],
'Tfl-32': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-34': [],
'Tfl-35': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyPlannerCycleHireDockingStationData'],
'Tfl-36': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustment'],
'Tfl-37': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustments'],
'Tfl-38': [],
'Tfl-39': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyVector'],
'Tfl-4': [],
'Tfl-40': [],
'Tfl-5': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Obstacle'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Point'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.Crowding']}
[Reference(schema='Line',
alias='Tfl-5',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-3'),
Reference(schema='Line',
alias='Tfl-5',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-4')]
Completable: 2, incomplete: 0
Resolved property refs: 2
[Reference(schema='Line',
alias='Tfl-6',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Line',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Line',
alias='Tfl-11',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Line',
alias='Tfl-11',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-10')]
Completable: 3, incomplete: 2
Resolved property refs: 3
[Reference(schema='Line',
alias='Tfl-12',
referential_property='stopPoint',
is_array=False,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-13',
referential_property='routeSectionNaptanEntrySequence',
is_array=True,
entity='#/components/schemas/Tfl-12')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-14',
referential_property='affectedRoutes',
is_array=True,
entity='#/components/schemas/Tfl-13'),
Reference(schema='Line',
alias='Tfl-14',
referential_property='affectedStops',
is_array=True,
entity='#/components/schemas/Tfl-11')]
Completable: 0, incomplete: 2
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-16',
referential_property='validityPeriods',
is_array=True,
entity='#/components/schemas/Tfl-15'),
Reference(schema='Line',
alias='Tfl-16',
referential_property='disruption',
is_array=False,
entity='#/components/schemas/Tfl-14')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Line',
alias='Tfl-19',
referential_property='disruptions',
is_array=True,
entity='#/components/schemas/Tfl-14'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='lineStatuses',
is_array=True,
entity='#/components/schemas/Tfl-16'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='routeSections',
is_array=True,
entity='#/components/schemas/Tfl-17'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='serviceTypes',
is_array=True,
entity='#/components/schemas/Tfl-18'),
Reference(schema='Line',
alias='Tfl-19',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-5')]
Completable: 2, incomplete: 3
Resolved property refs: 2
[Reference(schema='Line',
alias='Tfl-20',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-6')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-21',
referential_property='stopPoint',
is_array=True,
entity='#/components/schemas/Tfl-20')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-23',
referential_property='stations',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-23',
referential_property='stopPointSequences',
is_array=True,
entity='#/components/schemas/Tfl-21'),
Reference(schema='Line',
alias='Tfl-23',
referential_property='orderedLineRoutes',
is_array=True,
entity='#/components/schemas/Tfl-22')]
Completable: 1, incomplete: 2
Resolved property refs: 1
[Reference(schema='Line',
alias='Tfl-26',
referential_property='lineRouteSection',
is_array=True,
entity='#/components/schemas/Tfl-24'),
Reference(schema='Line',
alias='Tfl-26',
referential_property='matchedRouteSections',
is_array=True,
entity='#/components/schemas/Tfl-25'),
Reference(schema='Line',
alias='Tfl-26',
referential_property='matchedStops',
is_array=True,
entity='#/components/schemas/Tfl-20')]
Completable: 2, incomplete: 1
Resolved property refs: 2
[Reference(schema='Line',
alias='Tfl-27',
referential_property='searchMatches',
is_array=True,
entity='#/components/schemas/Tfl-26')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-29',
referential_property='intervals',
is_array=True,
entity='#/components/schemas/Tfl-28')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Line',
alias='Tfl-33',
referential_property='fromTime',
is_array=False,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Line',
alias='Tfl-33',
referential_property='toTime',
is_array=False,
entity='#/components/schemas/Tfl-31'),
Reference(schema='Line',
alias='Tfl-33',
referential_property='frequency',
is_array=False,
entity='#/components/schemas/Tfl-32')]
Completable: 3, incomplete: 0
Resolved property refs: 3
[Reference(schema='Line',
alias='Tfl-34',
referential_property='knownJourneys',
is_array=True,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='firstJourney',
is_array=False,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='lastJourney',
is_array=False,
entity='#/components/schemas/Tfl-30'),
Reference(schema='Line',
alias='Tfl-34',
referential_property='periods',
is_array=True,
entity='#/components/schemas/Tfl-33')]
Completable: 3, incomplete: 1
Resolved property refs: 3
[Reference(schema='Line',
alias='Tfl-35',
referential_property='stationIntervals',
is_array=True,
entity='#/components/schemas/Tfl-29'),
Reference(schema='Line',
alias='Tfl-35',
referential_property='schedules',
is_array=True,
entity='#/components/schemas/Tfl-34')]
Completable: 0, incomplete: 2
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-36',
referential_property='routes',
is_array=True,
entity='#/components/schemas/Tfl-35')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-38',
referential_property='disambiguationOptions',
is_array=True,
entity='#/components/schemas/Tfl-37')]
Completable: 1, incomplete: 0
Resolved property refs: 1
[Reference(schema='Line',
alias='Tfl-39',
referential_property='stations',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='stops',
is_array=True,
entity='#/components/schemas/Tfl-20'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='timetable',
is_array=False,
entity='#/components/schemas/Tfl-36'),
Reference(schema='Line',
alias='Tfl-39',
referential_property='disambiguation',
is_array=False,
entity='#/components/schemas/Tfl-38')]
Completable: 0, incomplete: 4
Resolved property refs: 0
[Reference(schema='Line',
alias='Tfl-41',
referential_property='timing',
is_array=False,
entity='#/components/schemas/Tfl-40')]
Completable: 1, incomplete: 0
Resolved property refs: 1
{'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-16': [],
'Tfl-17': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StatusSeverity'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.OrderedRoute'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.LineRouteSection'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.MatchedRouteSections'],
'Tfl-26': [],
'Tfl-27': [],
'Tfl-28': ['Tfl.Api.Presentation.Entities.Interval'],
'Tfl-29': ['Tfl.Api.Presentation.Entities.StationInterval'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.KnownJourney'],
'Tfl-31': ['Tfl.Api.Presentation.Entities.TwentyFourHourClockTime'],
'Tfl-32': ['Tfl.Api.Presentation.Entities.ServiceFrequency'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.Period'],
'Tfl-34': [],
'Tfl-35': [],
'Tfl-36': [],
'Tfl-37': ['Tfl.Api.Presentation.Entities.Timetables.DisambiguationOption'],
'Tfl-38': ['Tfl.Api.Presentation.Entities.Timetables.Disambiguation'],
'Tfl-39': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-40': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-41': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']}
[Reference(schema='Place',
alias='Tfl-3',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-2'),
Reference(schema='Place',
alias='Tfl-3',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 1, incomplete: 1
Resolved property refs: 1
[Reference(schema='Place',
alias='Tfl-6',
referential_property='passengerFlows',
is_array=True,
entity='#/components/schemas/Tfl-4'),
Reference(schema='Place',
alias='Tfl-6',
referential_property='trainLoadings',
is_array=True,
entity='#/components/schemas/Tfl-5')]
Completable: 2, incomplete: 0
Resolved property refs: 2
[Reference(schema='Place',
alias='Tfl-7',
referential_property='crowding',
is_array=False,
entity='#/components/schemas/Tfl-6')]
Completable: 0, incomplete: 1
Resolved property refs: 0
[Reference(schema='Place',
alias='Tfl-10',
referential_property='lines',
is_array=True,
entity='#/components/schemas/Tfl-7'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='lineGroup',
is_array=True,
entity='#/components/schemas/Tfl-8'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='lineModeGroups',
is_array=True,
entity='#/components/schemas/Tfl-9'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='additionalProperties',
is_array=True,
entity='#/components/schemas/Tfl-2'),
Reference(schema='Place',
alias='Tfl-10',
referential_property='children',
is_array=True,
entity='#/components/schemas/Tfl-3')]
Completable: 3, incomplete: 2
Resolved property refs: 3
{'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-3': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-7': [],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.LineModeGroup']}
It seems like there'll be an indication of incremental progress: e.g. the final API, Place
, went from 4 missing entities (in the output above top) to 3 missing entities (in the output directly above). The change could be deposited somewhere and then we could monitor the last element in that store (so in this case the change would be from 4 missing to 3 missing = 1 resolved, so we would append the number 1 to a list and then a loop would check it with progress_list[-1]
.
Some progress tonight:
{'AccidentStats': {'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail': ['Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail',
'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail'],
'Tfl.Api.Presentation.Entities.AccidentStats.Casualty': ['Tfl.Api.Presentation.Entities.AccidentStats.Casualty'],
'Tfl.Api.Presentation.Entities.AccidentStats.Vehicle': ['Tfl.Api.Presentation.Entities.AccidentStats.Vehicle']},
'AirQuality': {'System.Object': ['System.Object']},
'BikePoint': {'Tfl.Api.Presentation.Entities.AdditionalProperties': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl.Api.Presentation.Entities.Place': ['Tfl.Api.Presentation.Entities.Place',
'Tfl.Api.Presentation.Entities.Place']},
'Disruptions-Lifts-v2': {'LiftDisruption': []},
'Journey': {'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': ['Tfl.Api.Common.JourneyPlanner.JpElevation'],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-17': [],
'Tfl-18': [],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.PathAttribute'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.JourneyPlanner.PlannedWork'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTapDetails'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTap'],
'Tfl-26': [],
'Tfl-27': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareCaveat'],
'Tfl-28': [],
'Tfl-29': [],
'Tfl-3': ['Tfl.Api.Presentation.Entities.InstructionStep'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-31': [],
'Tfl-32': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-34': [],
'Tfl-35': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyPlannerCycleHireDockingStationData'],
'Tfl-36': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustment'],
'Tfl-37': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustments'],
'Tfl-38': [],
'Tfl-39': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyVector'],
'Tfl-4': [],
'Tfl-40': [],
'Tfl-5': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Obstacle'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Point'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.Crowding']},
'Line': {'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': [],
'Tfl-13': [],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-16': [],
'Tfl-17': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-19': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StatusSeverity'],
'Tfl-20': [],
'Tfl-21': [],
'Tfl-22': ['Tfl.Api.Presentation.Entities.OrderedRoute'],
'Tfl-23': [],
'Tfl-24': ['Tfl.Api.Presentation.Entities.LineRouteSection'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.MatchedRouteSections'],
'Tfl-26': [],
'Tfl-27': [],
'Tfl-28': ['Tfl.Api.Presentation.Entities.Interval'],
'Tfl-29': ['Tfl.Api.Presentation.Entities.StationInterval'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.KnownJourney'],
'Tfl-31': ['Tfl.Api.Presentation.Entities.TwentyFourHourClockTime'],
'Tfl-32': ['Tfl.Api.Presentation.Entities.ServiceFrequency'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.Period'],
'Tfl-34': [],
'Tfl-35': [],
'Tfl-36': [],
'Tfl-37': ['Tfl.Api.Presentation.Entities.Timetables.DisambiguationOption'],
'Tfl-38': ['Tfl.Api.Presentation.Entities.Timetables.Disambiguation'],
'Tfl-39': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-40': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-41': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']},
'Mode': {'Tfl.Api.Presentation.Entities.ActiveServiceType': ['Tfl.Api.Presentation.Entities.ActiveServiceType'],
'Tfl.Api.Presentation.Entities.Prediction': ['Tfl.Api.Presentation.Entities.Prediction',
'Tfl.Api.Presentation.Entities.Prediction'],
'Tfl.Api.Presentation.Entities.PredictionTiming': ['Tfl.Api.Presentation.Entities.PredictionTiming']},
'Place': {'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-3': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-7': [],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.LineModeGroup']},
'Road': {'System': ['System.Data.Spatial.DbGeographyWellKnownValue'],
'System-2': ['System.Data.Spatial.DbGeography'],
'System-3': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.RoadCorridor'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StreetSegment'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.Street'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.RoadProject'],
'Tfl-5': [],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.RoadDisruptionSchedule'],
'Tfl-8': [],
'Tfl-9': ['Tfl.Api.Presentation.Entities.StatusSeverity']},
'Search': {'Tfl': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.SearchResponse']},
'StopPoint': {'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-11': [],
'Tfl-12': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-13': ['Tfl.Api.Presentation.Entities.LineSpecificServiceType'],
'Tfl-14': [],
'Tfl-15': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-17': ['Tfl.Api.Presentation.Entities.ArrivalDeparture'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.StopPointRouteSection'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.DisruptedPoint'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-20': [],
'Tfl-21': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-22': ['Tfl.Api.Presentation.Entities.SearchResponse'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': [],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']},
'Vehicle': {'Tfl': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.VehicleMatch']},
'crowding': {},
'occupancy': {'Tfl': ['Tfl.Api.Presentation.Entities.Bay'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.CarParkOccupancy'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.ChargeConnectorOccupancy'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.BikePointOccupancy']}}
It might help solve this problem by creating three types of entity:
System
)Tfl.Api.Presentation.Entities
)as then it’d be more concise what we’re dealing with. These could be 3 classes (the 3rd being ‘unknown’), or the 1st and 2nd could inherit from the 3rd (since it looks like it’ll never be needed unless an error is made).
To drill down into the minimum viable example from the above:
'Place': {'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': [],
'Tfl-2': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-3': [],
'Tfl-4': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-7': [],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.LineModeGroup']},
Note: to drill down here in a code debugger, add
if self.path.stem == "Place": breakpoint()
to the
__post_init__
method ofsrc/tubeulator/openapi/schema/aliased.py
⠶AliasedApiSchema
You might expect the way to approach the remaining step (resolution of Tfl-10
, Tfl-3
, and Tfl-7
) would be to manually compare these to what we find in the place JSON schema, and you’d expect (or hope) there’d be 3 remaining unmapped entities which’d then just require matching (and could maybe be done by some simple guessing based on which property names are shared among them).
However the problem is that we don’t know which are the remaining subset of entities associated with this API: we can only narrow it down to the entities not associated with this API among all entities (since an entity used by another API may also be used here, since it’s not unified there will be duplication of entity definitions between API schemas).
What can be done however is to look at the properties and get candidate entities which share those properties.
So Tfl-10
has a property naptanId
, platformName
, indicator
, which are common ones, but also distance
(with description that begins “The distance of the place from its search point”)… So it’s clear to a human reader that the entity this property belongs to is something to do with the search endpoint of the places API (perhaps a search result then).
If we look for ‘naptanId’ in the unified schema we get 80 results, but if we look for distance
we only get 8, and if we look for the description beginning “The distance of the place from its search point” we get only 2.
The 2 hits are for Tfl.Api.Presentation.Entities.Place
and Tfl.Api.Presentation.Entities.StopPoint
. Are these entities duplicates or can we distinguish between them? The quickest check is to count the properties: Tfl-10
has 27 properties:
Tfl.Api.Presentation.Entities.Place
has 10 propertiesTfl.Api.Presentation.Entities.StopPoint
has 27 propertiesSo Tfl-10
can be matched to Tfl.Api.Presentation.Entities.StopPoint
and so on:
Tfl-3
is Tfl.Api.Presentation.Entities.Place
(by the exact same approach as above, this time we match the property count of 10)Tfl-7
is Tfl.Api.Presentation.Entities.Identifier
On the last one of these the difference was the property names, not the property count (both the Identifier
entity and Tfl.Api.Presentation.Entities.CycleSuperhighway
entity had the routeType
property and both had 8 properties).
It seems likely that “find the entities with matching property names” will suffice to complete the resolution (without resorting to property descriptions).
To summarise: after the reference-based resolution, we want to match based on a narrowing down of candidates.
Also entities should be a set not a list note the duplicates
It turns out that you can't easily obtain the "minimum viable example" above, because it was only obtained by ignoring the presence of keys with "Response" in the name.
The schemas which are named things like 'BikePoints-ids-Get200ApplicationJsonResponse
appears to be made dynamically from the responses annotated on particular APIs.
When you search for Tfl.Api.Presentation.Entities.BikePointOccupancy
in vim you find Tfl-Api-Presentation-Entities-BikePointOccupancyArray
which I had been ignoring. This name is clearly made 'on the fly', and it simply defines an array of items of $ref
= #/components/schemas/Tfl.Api.Presentation.Entities.BikePointOccupancy
.
When you look for uses of this array entity, you find it appears in the following clause
"/Occupancy/BikePoints/{ids}": {
"get": {
"tags": [
"Occupancy"
],
"summary": "Get the occupancy for bike points.",
"description": "Get the occupancy for bike points.",
"operationId": "Occupancy_GetBikePointsOccupancies",
"parameters": [
{
"name": "ids",
"in": "path",
"description": "",
"required": true,
"schema": {
"type": "array"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Tfl-Api-Presentation-Entities-BikePointOccupancyArray"
},
"example": [
{
"id": "string",
"name": "string",
"bikesCount": 0,
"emptyDocks": 0,
"totalDocks": 0
}
]
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Tfl-Api-Presentation-Entities-BikePointOccupancyArray-1"
},
"example": [
{
"id": "string",
"name": "string",
"bikesCount": 0,
"emptyDocks": 0,
"totalDocks": 0
}
]
},
"application/xml": {
"schema": {
"$ref": "#/components/schemas/Tfl-Api-Presentation-Entities-BikePointOccupancyArray-2"
},
"example": "<Tfl-Api-Presentation-Entities-BikePointOccupancyArray-2> <id>string</id> <name>string</name> <bikesCount>0</bikesCount> <emptyDocks>0</emptyDocks> <totalDocks>0</totalDocks> </Tfl-Api-Presentation-Entities-BikePointOccupancyArray-2>"
},
"text/xml": {
"schema": {
"$ref": "#/components/schemas/Tfl-Api-Presentation-Entities-BikePointOccupancyArray-3"
},
"example": "<Tfl-Api-Presentation-Entities-BikePointOccupancyArray-3> <id>string</id> <name>string</name> <bikesCount>0</bikesCount> <emptyDocks>0</emptyDocks> <totalDocks>0</totalDocks> </Tfl-Api-Presentation-Entities-BikePointOccupancyArray-3>"
}
}
}
}
}
},
This node is in the "paths" defined right at the top of the unified JSON schema:
{
"openapi": "3.0.1",
"info": {
"title": "Unified API",
"description": "This API document is a legacy from our last portal. All the other APIs are bundled here as a single ungrouped OpenAPI document. You are advised to use the other APIs for documentation.",
"version": "1.0"
},
"servers": [
{
"url": "https://api.tfl.gov.uk"
}
],
"paths": {
So far we were assuming that each entity would map to one of the "schemas" listed under "components", however...
Note the above entity BikePoints-ids-Get200ApplicationJsonResponse
comes from the 'path' at /Occupancy/BikePoints/{ids}
> get
> responses
> 200
> content
> application/json
. You can see the 'recipe' there:
/BikePoints/{ids}
) below the API name path (/Occupancy
), replacing /
with -
and removing any non-alphanumeric charactersget
) to join it with the response code (200
) and mime type parts (application/json
), and singular of 'responses' (Response
)Based on that, maybe we can in fact omit the Response
ones because they won't map back to an entity...?
Done!
{'AccidentStats': {'Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray': ['Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray'],
'Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-1': ['Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-1'],
'Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-2': ['Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-2'],
'Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-3': ['Tfl-Api-Presentation-Entities-AccidentStats-AccidentDetailArray-3'],
'Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail': ['Tfl.Api.Presentation.Entities.AccidentStats.AccidentDetail'],
'Tfl.Api.Presentation.Entities.AccidentStats.Casualty': ['Tfl.Api.Presentation.Entities.AccidentStats.Casualty'],
'Tfl.Api.Presentation.Entities.AccidentStats.Vehicle': ['Tfl.Api.Presentation.Entities.AccidentStats.Vehicle']},
'AirQuality': {'System.Object': ['System.Object']},
'BikePoint': {'Tfl-Api-Presentation-Entities-PlaceArray': ['Tfl-Api-Presentation-Entities-PlaceArray'],
'Tfl-Api-Presentation-Entities-PlaceArray-1': ['Tfl-Api-Presentation-Entities-PlaceArray-1'],
'Tfl-Api-Presentation-Entities-PlaceArray-2': ['Tfl-Api-Presentation-Entities-PlaceArray-2'],
'Tfl-Api-Presentation-Entities-PlaceArray-3': ['Tfl-Api-Presentation-Entities-PlaceArray-3'],
'Tfl-Api-Presentation-Entities-PlaceArray-4': ['Tfl-Api-Presentation-Entities-PlaceArray-4'],
'Tfl-Api-Presentation-Entities-PlaceArray-5': ['Tfl-Api-Presentation-Entities-PlaceArray-5'],
'Tfl-Api-Presentation-Entities-PlaceArray-6': ['Tfl-Api-Presentation-Entities-PlaceArray-6'],
'Tfl-Api-Presentation-Entities-PlaceArray-7': ['Tfl-Api-Presentation-Entities-PlaceArray-7'],
'Tfl.Api.Presentation.Entities.AdditionalProperties': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl.Api.Presentation.Entities.Place': ['Tfl.Api.Presentation.Entities.Place']},
'Disruptions-Lifts-v2': {'LiftDisruption': []},
'Journey': {'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': ['Tfl.Api.Presentation.Entities.Identifier'],
'Tfl-11': ['Tfl.Api.Common.JourneyPlanner.JpElevation'],
'Tfl-12': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Path'],
'Tfl-13': ['Tfl.Api.Presentation.Entities.JourneyPlanner.RouteOption'],
'Tfl-14': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-17': ['Tfl.Api.Presentation.Entities.Place'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.StopPoint'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.RouteSectionNaptanEntrySequence'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.PathAttribute'],
'Tfl-20': ['Tfl.Api.Presentation.Entities.RouteSection'],
'Tfl-21': ['Tfl.Api.Presentation.Entities.Disruption'],
'Tfl-22': ['Tfl.Api.Presentation.Entities.JourneyPlanner.PlannedWork'],
'Tfl-23': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Leg'],
'Tfl-24': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTapDetails'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareTap'],
'Tfl-26': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Fare'],
'Tfl-27': ['Tfl.Api.Presentation.Entities.JourneyPlanner.FareCaveat'],
'Tfl-28': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyFare'],
'Tfl-29': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Journey'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.InstructionStep'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-31': ['Tfl.Api.Presentation.Entities.LineStatus'],
'Tfl-32': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-34': ['Tfl.Api.Presentation.Entities.Line'],
'Tfl-35': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyPlannerCycleHireDockingStationData'],
'Tfl-36': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustment'],
'Tfl-37': ['Tfl.Api.Presentation.Entities.JourneyPlanner.TimeAdjustments'],
'Tfl-38': ['Tfl.Api.Presentation.Entities.JourneyPlanner.SearchCriteria'],
'Tfl-39': ['Tfl.Api.Presentation.Entities.JourneyPlanner.JourneyVector'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.Instruction'],
'Tfl-40': ['Tfl.Api.Presentation.Entities.JourneyPlanner.ItineraryResult'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.JourneyPlanner.Obstacle'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Point'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.Crowding']},
'Line': {'Tfl': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-10': ['Tfl.Api.Presentation.Entities.Place'],
'Tfl-11': ['Tfl.Api.Presentation.Entities.StopPoint'],
'Tfl-12': ['Tfl.Api.Presentation.Entities.RouteSectionNaptanEntrySequence'],
'Tfl-13': ['Tfl.Api.Presentation.Entities.RouteSection'],
'Tfl-14': ['Tfl.Api.Presentation.Entities.Disruption'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.ValidityPeriod'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.LineStatus'],
'Tfl-17': ['Tfl.Api.Presentation.Entities.MatchedRoute'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.Line'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StatusSeverity'],
'Tfl-20': ['Tfl.Api.Presentation.Entities.MatchedStop'],
'Tfl-21': ['Tfl.Api.Presentation.Entities.StopPointSequence'],
'Tfl-22': ['Tfl.Api.Presentation.Entities.OrderedRoute'],
'Tfl-23': ['Tfl.Api.Presentation.Entities.RouteSequence'],
'Tfl-24': ['Tfl.Api.Presentation.Entities.LineRouteSection'],
'Tfl-25': ['Tfl.Api.Presentation.Entities.MatchedRouteSections'],
'Tfl-26': ['Tfl.Api.Presentation.Entities.RouteSearchMatch'],
'Tfl-27': ['Tfl.Api.Presentation.Entities.RouteSearchResponse'],
'Tfl-28': ['Tfl.Api.Presentation.Entities.Interval'],
'Tfl-29': ['Tfl.Api.Presentation.Entities.StationInterval'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-30': ['Tfl.Api.Presentation.Entities.KnownJourney'],
'Tfl-31': ['Tfl.Api.Presentation.Entities.TwentyFourHourClockTime'],
'Tfl-32': ['Tfl.Api.Presentation.Entities.ServiceFrequency'],
'Tfl-33': ['Tfl.Api.Presentation.Entities.Period'],
'Tfl-34': ['Tfl.Api.Presentation.Entities.Schedule'],
'Tfl-35': ['Tfl.Api.Presentation.Entities.TimetableRoute'],
'Tfl-36': ['Tfl.Api.Presentation.Entities.Timetable'],
'Tfl-37': ['Tfl.Api.Presentation.Entities.Timetables.DisambiguationOption'],
'Tfl-38': ['Tfl.Api.Presentation.Entities.Timetables.Disambiguation'],
'Tfl-39': ['Tfl.Api.Presentation.Entities.TimetableResponse'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-40': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-41': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Identifier'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']},
'Mode': {'Tfl-Api-Presentation-Entities-ActiveServiceTypeArray': ['Tfl-Api-Presentation-Entities-ActiveServiceTypeArray'],
'Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-1': ['Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-1'],
'Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-2': ['Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-2'],
'Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-3': ['Tfl-Api-Presentation-Entities-ActiveServiceTypeArray-3'],
'Tfl-Api-Presentation-Entities-PredictionArray-4': ['Tfl-Api-Presentation-Entities-PredictionArray-4'],
'Tfl-Api-Presentation-Entities-PredictionArray-5': ['Tfl-Api-Presentation-Entities-PredictionArray-5'],
'Tfl-Api-Presentation-Entities-PredictionArray-6': ['Tfl-Api-Presentation-Entities-PredictionArray-6'],
'Tfl-Api-Presentation-Entities-PredictionArray-7': ['Tfl-Api-Presentation-Entities-PredictionArray-7'],
'Tfl.Api.Presentation.Entities.ActiveServiceType': ['Tfl.Api.Presentation.Entities.ActiveServiceType'],
'Tfl.Api.Presentation.Entities.Prediction': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl.Api.Presentation.Entities.PredictionTiming': ['Tfl.Api.Presentation.Entities.PredictionTiming']},
'Place': {'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': ['Tfl.Api.Presentation.Entities.StopPoint'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.AdditionalProperties'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.Place'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.Identifier'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.LineModeGroup']},
'Road': {'System': ['System.Data.Spatial.DbGeographyWellKnownValue'],
'System-2': ['System.Data.Spatial.DbGeography'],
'System-3': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.RoadCorridor'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.StreetSegment'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.Street'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.RoadProject'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.RoadDisruptionLine'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.RoadDisruptionImpactArea'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.RoadDisruptionSchedule'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.RoadDisruption'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.StatusSeverity']},
'Search': {'Tfl': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.SearchResponse']},
'StopPoint': {'System': ['System.Object'],
'Tfl': ['Tfl.Api.Presentation.Entities.PlaceCategory',
'Tfl.Api.Presentation.Entities.StopPointCategory'],
'Tfl-10': ['Tfl.Api.Presentation.Entities.Place'],
'Tfl-11': ['Tfl.Api.Presentation.Entities.StopPoint'],
'Tfl-12': ['Tfl.Api.Presentation.Entities.LineServiceTypeInfo'],
'Tfl-13': ['Tfl.Api.Presentation.Entities.LineSpecificServiceType'],
'Tfl-14': ['Tfl.Api.Presentation.Entities.LineServiceType'],
'Tfl-15': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-16': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-17': ['Tfl.Api.Presentation.Entities.ArrivalDeparture'],
'Tfl-18': ['Tfl.Api.Presentation.Entities.StopPointRouteSection'],
'Tfl-19': ['Tfl.Api.Presentation.Entities.DisruptedPoint'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Mode'],
'Tfl-20': ['Tfl.Api.Presentation.Entities.StopPointsResponse'],
'Tfl-21': ['Tfl.Api.Presentation.Entities.SearchMatch'],
'Tfl-22': ['Tfl.Api.Presentation.Entities.SearchResponse'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.PassengerFlow'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.TrainLoading'],
'Tfl-5': ['Tfl.Api.Presentation.Entities.Crowding'],
'Tfl-6': ['Tfl.Api.Presentation.Entities.Identifier'],
'Tfl-7': ['Tfl.Api.Presentation.Entities.LineGroup'],
'Tfl-8': ['Tfl.Api.Presentation.Entities.LineModeGroup'],
'Tfl-9': ['Tfl.Api.Presentation.Entities.AdditionalProperties']},
'Vehicle': {'Tfl': ['Tfl.Api.Presentation.Entities.PredictionTiming'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.Prediction'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.VehicleMatch']},
'crowding': {},
'occupancy': {'Tfl': ['Tfl.Api.Presentation.Entities.Bay'],
'Tfl-2': ['Tfl.Api.Presentation.Entities.CarParkOccupancy'],
'Tfl-3': ['Tfl.Api.Presentation.Entities.ChargeConnectorOccupancy'],
'Tfl-4': ['Tfl.Api.Presentation.Entities.BikePointOccupancy']}}
Backlinked to original issue: https://techforum.tfl.gov.uk/t/swagger-file-outdated/2085/8
Edit: uploaded namespace.json
rather than recalculating https://github.com/lmmx/tubeulator/blob/master/src/tubeulator/data/openapi/namespace.json
As described in the document at
src/tubeulator/data/openapi/naming.md
, it is possible to match the JSON schemas of the new "unbundled" APIs up automatically to those in the legacy "unified" API, following extraction of JSON schemas withopenapi2jsonschema
.The resulting correspondence is only partially successful due to the 'recursive' or referential nature of the schemas however. The simplest example of this is how one of the entities in the
Place
API cannot be mapped to the corresponding one in the unified API because it references another entity.One solution (which may also simply be nice to have to kick off development of the library) would be an inventory of the unified namespace, which would facilitate the completion of the matching and therefore the naming of the entities in the data model.