Regenerate the GTFS-RT proto, and parse the MTA's extensions

011a33a · Gabriel Morell · 2026-08-24 05:45

26 files +3101 -168
Message
{commit_body(@commit)}

Files changed

added apps/room_gtfs/lib/gtfs_realtime_mtarr_pb.ex
+70 −0
@@ -0,0 +1,70 @@
1 +defmodule TransitRealtime.MtaRailroadCarriageDetails.QuietCarriage do
2 + @moduledoc false
3 +
4 + use Protobuf,
5 + enum: true,
6 + full_name: "transit_realtime.MtaRailroadCarriageDetails.QuietCarriage",
7 + protoc_gen_elixir_version: "0.17.0",
8 + syntax: :proto2
9 +
10 + field :UNKNOWN_QUIET_CARRIAGE, 0
11 + field :QUIET_CARRIAGE, 1
12 + field :NOT_QUIET_CARRIAGE, 2
13 +end
14 +
15 +defmodule TransitRealtime.MtaRailroadCarriageDetails.ToiletFacilities do
16 + @moduledoc false
17 +
18 + use Protobuf,
19 + enum: true,
20 + full_name: "transit_realtime.MtaRailroadCarriageDetails.ToiletFacilities",
21 + protoc_gen_elixir_version: "0.17.0",
22 + syntax: :proto2
23 +
24 + field :UNKNOWN_TOILET_FACILITIES, 0
25 + field :TOILET_ONBOARD, 1
26 + field :NO_TOILET_ONBOARD, 2
27 +end
28 +
29 +defmodule TransitRealtime.MtaRailroadStopTimeUpdate do
30 + @moduledoc false
31 +
32 + use Protobuf,
33 + full_name: "transit_realtime.MtaRailroadStopTimeUpdate",
34 + protoc_gen_elixir_version: "0.17.0",
35 + syntax: :proto2
36 +
37 + field :track, 1, optional: true, type: :string
38 + field :trainStatus, 2, optional: true, type: :string
39 +end
40 +
41 +defmodule TransitRealtime.MtaRailroadCarriageDetails do
42 + @moduledoc false
43 +
44 + use Protobuf,
45 + full_name: "transit_realtime.MtaRailroadCarriageDetails",
46 + protoc_gen_elixir_version: "0.17.0",
47 + syntax: :proto2
48 +
49 + field :bicycles_allowed, 1,
50 + optional: true,
51 + type: :int32,
52 + json_name: "bicyclesAllowed",
53 + default: 0
54 +
55 + field :carriage_class, 2, optional: true, type: :string, json_name: "carriageClass"
56 +
57 + field :quiet_carriage, 3,
58 + optional: true,
59 + type: TransitRealtime.MtaRailroadCarriageDetails.QuietCarriage,
60 + json_name: "quietCarriage",
61 + default: :UNKNOWN_QUIET_CARRIAGE,
62 + enum: true
63 +
64 + field :toilet_facilities, 4,
65 + optional: true,
66 + type: TransitRealtime.MtaRailroadCarriageDetails.ToiletFacilities,
67 + json_name: "toiletFacilities",
68 + default: :UNKNOWN_TOILET_FACILITIES,
69 + enum: true
70 +end
added apps/room_gtfs/lib/gtfs_realtime_nyct_pb.ex
+75 −0
@@ -0,0 +1,75 @@
1 +defmodule TransitRealtime.NyctTripDescriptor.Direction do
2 + @moduledoc false
3 +
4 + use Protobuf,
5 + enum: true,
6 + full_name: "transit_realtime.NyctTripDescriptor.Direction",
7 + protoc_gen_elixir_version: "0.17.0",
8 + syntax: :proto2
9 +
10 + field :NORTH, 1
11 + field :EAST, 2
12 + field :SOUTH, 3
13 + field :WEST, 4
14 +end
15 +
16 +defmodule TransitRealtime.TripReplacementPeriod do
17 + @moduledoc false
18 +
19 + use Protobuf,
20 + full_name: "transit_realtime.TripReplacementPeriod",
21 + protoc_gen_elixir_version: "0.17.0",
22 + syntax: :proto2
23 +
24 + field :route_id, 1, optional: true, type: :string, json_name: "routeId"
25 +
26 + field :replacement_period, 2,
27 + optional: true,
28 + type: TransitRealtime.TimeRange,
29 + json_name: "replacementPeriod"
30 +end
31 +
32 +defmodule TransitRealtime.NyctFeedHeader do
33 + @moduledoc false
34 +
35 + use Protobuf,
36 + full_name: "transit_realtime.NyctFeedHeader",
37 + protoc_gen_elixir_version: "0.17.0",
38 + syntax: :proto2
39 +
40 + field :nyct_subway_version, 1, required: true, type: :string, json_name: "nyctSubwayVersion"
41 +
42 + field :trip_replacement_period, 2,
43 + repeated: true,
44 + type: TransitRealtime.TripReplacementPeriod,
45 + json_name: "tripReplacementPeriod"
46 +end
47 +
48 +defmodule TransitRealtime.NyctTripDescriptor do
49 + @moduledoc false
50 +
51 + use Protobuf,
52 + full_name: "transit_realtime.NyctTripDescriptor",
53 + protoc_gen_elixir_version: "0.17.0",
54 + syntax: :proto2
55 +
56 + field :train_id, 1, optional: true, type: :string, json_name: "trainId"
57 + field :is_assigned, 2, optional: true, type: :bool, json_name: "isAssigned"
58 +
59 + field :direction, 3,
60 + optional: true,
61 + type: TransitRealtime.NyctTripDescriptor.Direction,
62 + enum: true
63 +end
64 +
65 +defmodule TransitRealtime.NyctStopTimeUpdate do
66 + @moduledoc false
67 +
68 + use Protobuf,
69 + full_name: "transit_realtime.NyctStopTimeUpdate",
70 + protoc_gen_elixir_version: "0.17.0",
71 + syntax: :proto2
72 +
73 + field :scheduled_track, 1, optional: true, type: :string, json_name: "scheduledTrack"
74 + field :actual_track, 2, optional: true, type: :string, json_name: "actualTrack"
75 +end
modified apps/room_gtfs/lib/gtfs_realtime_pb.ex
+716 −157
@@ -1,325 +1,884 @@
1 1 defmodule TransitRealtime.FeedHeader.Incrementality do
2 2 @moduledoc false
3 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
4 3
5 − field(:FULL_DATASET, 0)
6 − field(:DIFFERENTIAL, 1)
4 + use Protobuf,
5 + enum: true,
6 + full_name: "transit_realtime.FeedHeader.Incrementality",
7 + protoc_gen_elixir_version: "0.17.0",
8 + syntax: :proto2
9 +
10 + field :FULL_DATASET, 0
11 + field :DIFFERENTIAL, 1
7 12 end
8 13
9 14 defmodule TransitRealtime.TripUpdate.StopTimeUpdate.ScheduleRelationship do
10 15 @moduledoc false
11 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
12 16
13 − field(:SCHEDULED, 0)
14 − field(:SKIPPED, 1)
15 − field(:NO_DATA, 2)
17 + use Protobuf,
18 + enum: true,
19 + full_name: "transit_realtime.TripUpdate.StopTimeUpdate.ScheduleRelationship",
20 + protoc_gen_elixir_version: "0.17.0",
21 + syntax: :proto2
22 +
23 + field :SCHEDULED, 0
24 + field :SKIPPED, 1
25 + field :NO_DATA, 2
26 + field :UNSCHEDULED, 3
27 +end
28 +
29 +defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties.DropOffPickupType do
30 + @moduledoc false
31 +
32 + use Protobuf,
33 + enum: true,
34 + full_name: "transit_realtime.TripUpdate.StopTimeUpdate.StopTimeProperties.DropOffPickupType",
35 + protoc_gen_elixir_version: "0.17.0",
36 + syntax: :proto2
37 +
38 + field :REGULAR, 0
39 + field :NONE, 1
40 + field :PHONE_AGENCY, 2
41 + field :COORDINATE_WITH_DRIVER, 3
16 42 end
17 43
18 44 defmodule TransitRealtime.VehiclePosition.VehicleStopStatus do
19 45 @moduledoc false
20 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
21 46
22 − field(:INCOMING_AT, 0)
23 − field(:STOPPED_AT, 1)
24 − field(:IN_TRANSIT_TO, 2)
47 + use Protobuf,
48 + enum: true,
49 + full_name: "transit_realtime.VehiclePosition.VehicleStopStatus",
50 + protoc_gen_elixir_version: "0.17.0",
51 + syntax: :proto2
52 +
53 + field :INCOMING_AT, 0
54 + field :STOPPED_AT, 1
55 + field :IN_TRANSIT_TO, 2
25 56 end
26 57
27 58 defmodule TransitRealtime.VehiclePosition.CongestionLevel do
28 59 @moduledoc false
29 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
30 60
31 − field(:UNKNOWN_CONGESTION_LEVEL, 0)
32 − field(:RUNNING_SMOOTHLY, 1)
33 − field(:STOP_AND_GO, 2)
34 − field(:CONGESTION, 3)
35 − field(:SEVERE_CONGESTION, 4)
61 + use Protobuf,
62 + enum: true,
63 + full_name: "transit_realtime.VehiclePosition.CongestionLevel",
64 + protoc_gen_elixir_version: "0.17.0",
65 + syntax: :proto2
66 +
67 + field :UNKNOWN_CONGESTION_LEVEL, 0
68 + field :RUNNING_SMOOTHLY, 1
69 + field :STOP_AND_GO, 2
70 + field :CONGESTION, 3
71 + field :SEVERE_CONGESTION, 4
36 72 end
37 73
38 74 defmodule TransitRealtime.VehiclePosition.OccupancyStatus do
39 75 @moduledoc false
40 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
41 76
42 − field(:EMPTY, 0)
43 − field(:MANY_SEATS_AVAILABLE, 1)
44 − field(:FEW_SEATS_AVAILABLE, 2)
45 − field(:STANDING_ROOM_ONLY, 3)
46 − field(:CRUSHED_STANDING_ROOM_ONLY, 4)
47 − field(:FULL, 5)
48 − field(:NOT_ACCEPTING_PASSENGERS, 6)
77 + use Protobuf,
78 + enum: true,
79 + full_name: "transit_realtime.VehiclePosition.OccupancyStatus",
80 + protoc_gen_elixir_version: "0.17.0",
81 + syntax: :proto2
82 +
83 + field :EMPTY, 0
84 + field :MANY_SEATS_AVAILABLE, 1
85 + field :FEW_SEATS_AVAILABLE, 2
86 + field :STANDING_ROOM_ONLY, 3
87 + field :CRUSHED_STANDING_ROOM_ONLY, 4
88 + field :FULL, 5
89 + field :NOT_ACCEPTING_PASSENGERS, 6
90 + field :NO_DATA_AVAILABLE, 7
91 + field :NOT_BOARDABLE, 8
49 92 end
50 93
51 94 defmodule TransitRealtime.Alert.Cause do
52 95 @moduledoc false
53 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
54 96
55 − field(:UNKNOWN_CAUSE, 1)
56 − field(:OTHER_CAUSE, 2)
57 − field(:TECHNICAL_PROBLEM, 3)
58 − field(:STRIKE, 4)
59 − field(:DEMONSTRATION, 5)
60 − field(:ACCIDENT, 6)
61 − field(:HOLIDAY, 7)
62 − field(:WEATHER, 8)
63 − field(:MAINTENANCE, 9)
64 − field(:CONSTRUCTION, 10)
65 − field(:POLICE_ACTIVITY, 11)
66 − field(:MEDICAL_EMERGENCY, 12)
97 + use Protobuf,
98 + enum: true,
99 + full_name: "transit_realtime.Alert.Cause",
100 + protoc_gen_elixir_version: "0.17.0",
101 + syntax: :proto2
102 +
103 + field :UNKNOWN_CAUSE, 1
104 + field :OTHER_CAUSE, 2
105 + field :TECHNICAL_PROBLEM, 3
106 + field :STRIKE, 4
107 + field :DEMONSTRATION, 5
108 + field :ACCIDENT, 6
109 + field :HOLIDAY, 7
110 + field :WEATHER, 8
111 + field :MAINTENANCE, 9
112 + field :CONSTRUCTION, 10
113 + field :POLICE_ACTIVITY, 11
114 + field :MEDICAL_EMERGENCY, 12
115 + field :SPECIAL_EVENT, 13
67 116 end
68 117
69 118 defmodule TransitRealtime.Alert.Effect do
70 119 @moduledoc false
71 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
72 120
73 − field(:NO_SERVICE, 1)
74 − field(:REDUCED_SERVICE, 2)
75 − field(:SIGNIFICANT_DELAYS, 3)
76 − field(:DETOUR, 4)
77 − field(:ADDITIONAL_SERVICE, 5)
78 − field(:MODIFIED_SERVICE, 6)
79 − field(:OTHER_EFFECT, 7)
80 − field(:UNKNOWN_EFFECT, 8)
81 − field(:STOP_MOVED, 9)
82 − field(:NO_EFFECT, 10)
83 − field(:ACCESSIBILITY_ISSUE, 11)
121 + use Protobuf,
122 + enum: true,
123 + full_name: "transit_realtime.Alert.Effect",
124 + protoc_gen_elixir_version: "0.17.0",
125 + syntax: :proto2
126 +
127 + field :NO_SERVICE, 1
128 + field :REDUCED_SERVICE, 2
129 + field :SIGNIFICANT_DELAYS, 3
130 + field :DETOUR, 4
131 + field :ADDITIONAL_SERVICE, 5
132 + field :MODIFIED_SERVICE, 6
133 + field :OTHER_EFFECT, 7
134 + field :UNKNOWN_EFFECT, 8
135 + field :STOP_MOVED, 9
136 + field :NO_EFFECT, 10
137 + field :ACCESSIBILITY_ISSUE, 11
138 +end
139 +
140 +defmodule TransitRealtime.Alert.SeverityLevel do
141 + @moduledoc false
142 +
143 + use Protobuf,
144 + enum: true,
145 + full_name: "transit_realtime.Alert.SeverityLevel",
146 + protoc_gen_elixir_version: "0.17.0",
147 + syntax: :proto2
148 +
149 + field :UNKNOWN_SEVERITY, 1
150 + field :INFO, 2
151 + field :WARNING, 3
152 + field :SEVERE, 4
84 153 end
85 154
86 155 defmodule TransitRealtime.TripDescriptor.ScheduleRelationship do
87 156 @moduledoc false
88 − use Protobuf, enum: true, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
89 157
90 − field(:SCHEDULED, 0)
91 − field(:ADDED, 1)
92 − field(:UNSCHEDULED, 2)
93 − field(:CANCELED, 3)
158 + use Protobuf,
159 + enum: true,
160 + full_name: "transit_realtime.TripDescriptor.ScheduleRelationship",
161 + protoc_gen_elixir_version: "0.17.0",
162 + syntax: :proto2
163 +
164 + field :SCHEDULED, 0
165 + field :ADDED, 1
166 + field :UNSCHEDULED, 2
167 + field :CANCELED, 3
168 + field :REPLACEMENT, 5
169 + field :DUPLICATED, 6
170 + field :DELETED, 7
171 + field :NEW, 8
172 +end
173 +
174 +defmodule TransitRealtime.VehicleDescriptor.WheelchairAccessible do
175 + @moduledoc false
176 +
177 + use Protobuf,
178 + enum: true,
179 + full_name: "transit_realtime.VehicleDescriptor.WheelchairAccessible",
180 + protoc_gen_elixir_version: "0.17.0",
181 + syntax: :proto2
182 +
183 + field :NO_VALUE, 0
184 + field :UNKNOWN, 1
185 + field :WHEELCHAIR_ACCESSIBLE, 2
186 + field :WHEELCHAIR_INACCESSIBLE, 3
187 +end
188 +
189 +defmodule TransitRealtime.Stop.WheelchairBoarding do
190 + @moduledoc false
191 +
192 + use Protobuf,
193 + enum: true,
194 + full_name: "transit_realtime.Stop.WheelchairBoarding",
195 + protoc_gen_elixir_version: "0.17.0",
196 + syntax: :proto2
197 +
198 + field :UNKNOWN, 0
199 + field :AVAILABLE, 1
200 + field :NOT_AVAILABLE, 2
94 201 end
95 202
96 203 defmodule TransitRealtime.FeedMessage do
97 204 @moduledoc false
98 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
99 205
100 − field(:header, 1, required: true, type: TransitRealtime.FeedHeader)
101 − field(:entity, 2, repeated: true, type: TransitRealtime.FeedEntity)
206 + use Protobuf,
207 + full_name: "transit_realtime.FeedMessage",
208 + protoc_gen_elixir_version: "0.17.0",
209 + syntax: :proto2
210 +
211 + field :header, 1, required: true, type: TransitRealtime.FeedHeader
212 + field :entity, 2, repeated: true, type: TransitRealtime.FeedEntity
102 213
103 − extensions([{1000, 2000}])
214 + extensions [{1000, 2000}, {9000, 10000}]
104 215 end
105 216
106 217 defmodule TransitRealtime.FeedHeader do
107 218 @moduledoc false
108 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
109 219
110 − field(:gtfs_realtime_version, 1, required: true, type: :string)
220 + use Protobuf,
221 + full_name: "transit_realtime.FeedHeader",
222 + protoc_gen_elixir_version: "0.17.0",
223 + syntax: :proto2
111 224
112 − field(:incrementality, 2,
225 + field :gtfs_realtime_version, 1, required: true, type: :string, json_name: "gtfsRealtimeVersion"
226 +
227 + field :incrementality, 2,
113 228 optional: true,
114 229 type: TransitRealtime.FeedHeader.Incrementality,
115 230 default: :FULL_DATASET,
116 231 enum: true
117 − )
118 232
119 − field(:timestamp, 3, optional: true, type: :uint64)
233 + field :timestamp, 3, optional: true, type: :uint64
234 + field :feed_version, 4, optional: true, type: :string, json_name: "feedVersion"
120 235
121 − extensions([{1000, 2000}])
236 + extensions [{1000, 2000}, {9000, 10000}]
122 237 end
123 238
124 239 defmodule TransitRealtime.FeedEntity do
125 240 @moduledoc false
126 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
127 241
128 − field(:id, 1, required: true, type: :string)
129 − field(:is_deleted, 2, optional: true, type: :bool, default: false)
130 − field(:trip_update, 3, optional: true, type: TransitRealtime.TripUpdate)
131 − field(:vehicle, 4, optional: true, type: TransitRealtime.VehiclePosition)
132 − field(:alert, 5, optional: true, type: TransitRealtime.Alert)
242 + use Protobuf,
243 + full_name: "transit_realtime.FeedEntity",
244 + protoc_gen_elixir_version: "0.17.0",
245 + syntax: :proto2
246 +
247 + field :id, 1, required: true, type: :string
248 + field :is_deleted, 2, optional: true, type: :bool, json_name: "isDeleted", default: false
249 + field :trip_update, 3, optional: true, type: TransitRealtime.TripUpdate, json_name: "tripUpdate"
250 + field :vehicle, 4, optional: true, type: TransitRealtime.VehiclePosition
251 + field :alert, 5, optional: true, type: TransitRealtime.Alert
252 + field :shape, 6, optional: true, type: TransitRealtime.Shape
253 + field :stop, 7, optional: true, type: TransitRealtime.Stop
254 +
255 + field :trip_modifications, 8,
256 + optional: true,
257 + type: TransitRealtime.TripModifications,
258 + json_name: "tripModifications"
133 259
134 − extensions([{1000, 2000}])
260 + extensions [{1000, 2000}, {9000, 10000}]
135 261 end
136 262
137 263 defmodule TransitRealtime.TripUpdate.StopTimeEvent do
138 264 @moduledoc false
139 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
140 265
141 − field(:delay, 1, optional: true, type: :int32)
142 − field(:time, 2, optional: true, type: :int64)
143 − field(:uncertainty, 3, optional: true, type: :int32)
266 + use Protobuf,
267 + full_name: "transit_realtime.TripUpdate.StopTimeEvent",
268 + protoc_gen_elixir_version: "0.17.0",
269 + syntax: :proto2
270 +
271 + field :delay, 1, optional: true, type: :int32
272 + field :time, 2, optional: true, type: :int64
273 + field :uncertainty, 3, optional: true, type: :int32
274 + field :scheduled_time, 4, optional: true, type: :int64, json_name: "scheduledTime"
275 +
276 + extensions [{1000, 2000}, {9000, 10000}]
277 +end
278 +
279 +defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties do
280 + @moduledoc false
281 +
282 + use Protobuf,
283 + full_name: "transit_realtime.TripUpdate.StopTimeUpdate.StopTimeProperties",
284 + protoc_gen_elixir_version: "0.17.0",
285 + syntax: :proto2
286 +
287 + field :assigned_stop_id, 1, optional: true, type: :string, json_name: "assignedStopId"
288 + field :stop_headsign, 2, optional: true, type: :string, json_name: "stopHeadsign"
289 +
290 + field :pickup_type, 3,
291 + optional: true,
292 + type: TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties.DropOffPickupType,
293 + json_name: "pickupType",
294 + enum: true
295 +
296 + field :drop_off_type, 4,
297 + optional: true,
298 + type: TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties.DropOffPickupType,
299 + json_name: "dropOffType",
300 + enum: true
144 301
145 − extensions([{1000, 2000}])
302 + extensions [{1000, 2000}, {9000, 10000}]
146 303 end
147 304
148 305 defmodule TransitRealtime.TripUpdate.StopTimeUpdate do
149 306 @moduledoc false
150 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
151 307
152 − field(:stop_sequence, 1, optional: true, type: :uint32)
153 − field(:stop_id, 4, optional: true, type: :string)
154 − field(:arrival, 2, optional: true, type: TransitRealtime.TripUpdate.StopTimeEvent)
155 − field(:departure, 3, optional: true, type: TransitRealtime.TripUpdate.StopTimeEvent)
308 + use Protobuf,
309 + full_name: "transit_realtime.TripUpdate.StopTimeUpdate",
310 + protoc_gen_elixir_version: "0.17.0",
311 + syntax: :proto2
312 +
313 + field :stop_sequence, 1, optional: true, type: :uint32, json_name: "stopSequence"
314 + field :stop_id, 4, optional: true, type: :string, json_name: "stopId"
315 + field :arrival, 2, optional: true, type: TransitRealtime.TripUpdate.StopTimeEvent
316 + field :departure, 3, optional: true, type: TransitRealtime.TripUpdate.StopTimeEvent
156 317
157 − field(:schedule_relationship, 5,
318 + field :departure_occupancy_status, 7,
319 + optional: true,
320 + type: TransitRealtime.VehiclePosition.OccupancyStatus,
321 + json_name: "departureOccupancyStatus",
322 + enum: true
323 +
324 + field :schedule_relationship, 5,
158 325 optional: true,
159 326 type: TransitRealtime.TripUpdate.StopTimeUpdate.ScheduleRelationship,
327 + json_name: "scheduleRelationship",
160 328 default: :SCHEDULED,
161 329 enum: true
162 − )
163 330
164 − extensions([{1000, 2000}])
331 + field :stop_time_properties, 6,
332 + optional: true,
333 + type: TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties,
334 + json_name: "stopTimeProperties"
335 +
336 + extensions [{1000, 2000}, {9000, 10000}]
337 +end
338 +
339 +defmodule TransitRealtime.TripUpdate.TripProperties do
340 + @moduledoc false
341 +
342 + use Protobuf,
343 + full_name: "transit_realtime.TripUpdate.TripProperties",
344 + protoc_gen_elixir_version: "0.17.0",
345 + syntax: :proto2
346 +
347 + field :trip_id, 1, optional: true, type: :string, json_name: "tripId"
348 + field :start_date, 2, optional: true, type: :string, json_name: "startDate"
349 + field :start_time, 3, optional: true, type: :string, json_name: "startTime"
350 + field :shape_id, 4, optional: true, type: :string, json_name: "shapeId"
351 + field :trip_headsign, 5, optional: true, type: :string, json_name: "tripHeadsign"
352 + field :trip_short_name, 6, optional: true, type: :string, json_name: "tripShortName"
353 +
354 + extensions [{1000, 2000}, {9000, 10000}]
165 355 end
166 356
167 357 defmodule TransitRealtime.TripUpdate do
168 358 @moduledoc false
169 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
170 359
171 − field(:trip, 1, required: true, type: TransitRealtime.TripDescriptor)
172 − field(:vehicle, 3, optional: true, type: TransitRealtime.VehicleDescriptor)
173 − field(:stop_time_update, 2, repeated: true, type: TransitRealtime.TripUpdate.StopTimeUpdate)
174 − field(:timestamp, 4, optional: true, type: :uint64)
175 − field(:delay, 5, optional: true, type: :int32)
360 + use Protobuf,
361 + full_name: "transit_realtime.TripUpdate",
362 + protoc_gen_elixir_version: "0.17.0",
363 + syntax: :proto2
364 +
365 + field :trip, 1, required: true, type: TransitRealtime.TripDescriptor
366 + field :vehicle, 3, optional: true, type: TransitRealtime.VehicleDescriptor
367 +
368 + field :stop_time_update, 2,
369 + repeated: true,
370 + type: TransitRealtime.TripUpdate.StopTimeUpdate,
371 + json_name: "stopTimeUpdate"
372 +
373 + field :timestamp, 4, optional: true, type: :uint64
374 + field :delay, 5, optional: true, type: :int32
375 +
376 + field :trip_properties, 6,
377 + optional: true,
378 + type: TransitRealtime.TripUpdate.TripProperties,
379 + json_name: "tripProperties"
380 +
381 + extensions [{1000, 2000}, {9000, 10000}]
382 +end
383 +
384 +defmodule TransitRealtime.VehiclePosition.CarriageDetails do
385 + @moduledoc false
386 +
387 + use Protobuf,
388 + full_name: "transit_realtime.VehiclePosition.CarriageDetails",
389 + protoc_gen_elixir_version: "0.17.0",
390 + syntax: :proto2
391 +
392 + field :id, 1, optional: true, type: :string
393 + field :label, 2, optional: true, type: :string
394 +
395 + field :occupancy_status, 3,
396 + optional: true,
397 + type: TransitRealtime.VehiclePosition.OccupancyStatus,
398 + json_name: "occupancyStatus",
399 + default: :NO_DATA_AVAILABLE,
400 + enum: true
401 +
402 + field :occupancy_percentage, 4,
403 + optional: true,
404 + type: :int32,
405 + json_name: "occupancyPercentage",
406 + default: -1
407 +
408 + field :carriage_sequence, 5, optional: true, type: :uint32, json_name: "carriageSequence"
176 409
177 − extensions([{1000, 2000}])
410 + extensions [{1000, 2000}, {9000, 10000}]
178 411 end
179 412
180 413 defmodule TransitRealtime.VehiclePosition do
181 414 @moduledoc false
182 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
183 415
184 − field(:trip, 1, optional: true, type: TransitRealtime.TripDescriptor)
185 − field(:vehicle, 8, optional: true, type: TransitRealtime.VehicleDescriptor)
186 − field(:position, 2, optional: true, type: TransitRealtime.Position)
187 − field(:current_stop_sequence, 3, optional: true, type: :uint32)
188 − field(:stop_id, 7, optional: true, type: :string)
416 + use Protobuf,
417 + full_name: "transit_realtime.VehiclePosition",
418 + protoc_gen_elixir_version: "0.17.0",
419 + syntax: :proto2
189 420
190 − field(:current_status, 4,
421 + field :trip, 1, optional: true, type: TransitRealtime.TripDescriptor
422 + field :vehicle, 8, optional: true, type: TransitRealtime.VehicleDescriptor
423 + field :position, 2, optional: true, type: TransitRealtime.Position
424 + field :current_stop_sequence, 3, optional: true, type: :uint32, json_name: "currentStopSequence"
425 + field :stop_id, 7, optional: true, type: :string, json_name: "stopId"
426 +
427 + field :current_status, 4,
191 428 optional: true,
192 429 type: TransitRealtime.VehiclePosition.VehicleStopStatus,
430 + json_name: "currentStatus",
193 431 default: :IN_TRANSIT_TO,
194 432 enum: true
195 − )
196 433
197 − field(:timestamp, 5, optional: true, type: :uint64)
434 + field :timestamp, 5, optional: true, type: :uint64
198 435
199 − field(:congestion_level, 6,
436 + field :congestion_level, 6,
200 437 optional: true,
201 438 type: TransitRealtime.VehiclePosition.CongestionLevel,
439 + json_name: "congestionLevel",
202 440 enum: true
203 − )
204 441
205 − field(:occupancy_status, 9,
442 + field :occupancy_status, 9,
206 443 optional: true,
207 444 type: TransitRealtime.VehiclePosition.OccupancyStatus,
445 + json_name: "occupancyStatus",
208 446 enum: true
209 − )
210 447
211 − extensions([{1000, 2000}])
448 + field :occupancy_percentage, 10, optional: true, type: :uint32, json_name: "occupancyPercentage"
449 +
450 + field :multi_carriage_details, 11,
451 + repeated: true,
452 + type: TransitRealtime.VehiclePosition.CarriageDetails,
453 + json_name: "multiCarriageDetails"
454 +
455 + extensions [{1000, 2000}, {9000, 10000}]
212 456 end
213 457
214 458 defmodule TransitRealtime.Alert do
215 459 @moduledoc false
216 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
217 460
218 − field(:active_period, 1, repeated: true, type: TransitRealtime.TimeRange)
219 − field(:informed_entity, 5, repeated: true, type: TransitRealtime.EntitySelector)
220 −
221 − field(:cause, 6,
461 + use Protobuf,
462 + full_name: "transit_realtime.Alert",
463 + protoc_gen_elixir_version: "0.17.0",
464 + syntax: :proto2
465 +
466 + field :active_period, 1,
467 + repeated: true,
468 + type: TransitRealtime.TimeRange,
469 + json_name: "activePeriod",
470 + deprecated: true
471 +
472 + field :communication_period, 2,
473 + repeated: true,
474 + type: TransitRealtime.TimeRange,
475 + json_name: "communicationPeriod"
476 +
477 + field :impact_period, 3,
478 + repeated: true,
479 + type: TransitRealtime.TimeRange,
480 + json_name: "impactPeriod"
481 +
482 + field :informed_entity, 5,
483 + repeated: true,
484 + type: TransitRealtime.EntitySelector,
485 + json_name: "informedEntity"
486 +
487 + field :cause, 6,
222 488 optional: true,
223 489 type: TransitRealtime.Alert.Cause,
224 490 default: :UNKNOWN_CAUSE,
225 491 enum: true
226 − )
227 492
228 − field(:effect, 7,
493 + field :effect, 7,
229 494 optional: true,
230 495 type: TransitRealtime.Alert.Effect,
231 496 default: :UNKNOWN_EFFECT,
232 497 enum: true
233 − )
234 498
235 − field(:url, 8, optional: true, type: TransitRealtime.TranslatedString)
236 − field(:header_text, 10, optional: true, type: TransitRealtime.TranslatedString)
237 − field(:description_text, 11, optional: true, type: TransitRealtime.TranslatedString)
499 + field :url, 8, optional: true, type: TransitRealtime.TranslatedString
500 +
501 + field :header_text, 10,
502 + optional: true,
503 + type: TransitRealtime.TranslatedString,
504 + json_name: "headerText"
505 +
506 + field :description_text, 11,
507 + optional: true,
508 + type: TransitRealtime.TranslatedString,
509 + json_name: "descriptionText"
510 +
511 + field :tts_header_text, 12,
512 + optional: true,
513 + type: TransitRealtime.TranslatedString,
514 + json_name: "ttsHeaderText"
515 +
516 + field :tts_description_text, 13,
517 + optional: true,
518 + type: TransitRealtime.TranslatedString,
519 + json_name: "ttsDescriptionText"
238 520
239 − extensions([{1000, 2000}])
521 + field :severity_level, 14,
522 + optional: true,
523 + type: TransitRealtime.Alert.SeverityLevel,
524 + json_name: "severityLevel",
525 + default: :UNKNOWN_SEVERITY,
526 + enum: true
527 +
528 + field :image, 15, optional: true, type: TransitRealtime.TranslatedImage
529 +
530 + field :image_alternative_text, 16,
531 + optional: true,
532 + type: TransitRealtime.TranslatedString,
533 + json_name: "imageAlternativeText"
534 +
535 + field :cause_detail, 17,
536 + optional: true,
537 + type: TransitRealtime.TranslatedString,
538 + json_name: "causeDetail"
539 +
540 + field :effect_detail, 18,
541 + optional: true,
542 + type: TransitRealtime.TranslatedString,
543 + json_name: "effectDetail"
544 +
545 + extensions [{1000, 2000}, {9000, 10000}]
240 546 end
241 547
242 548 defmodule TransitRealtime.TimeRange do
243 549 @moduledoc false
244 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
245 550
246 − field(:start, 1, optional: true, type: :uint64)
247 − field(:end, 2, optional: true, type: :uint64)
551 + use Protobuf,
552 + full_name: "transit_realtime.TimeRange",
553 + protoc_gen_elixir_version: "0.17.0",
554 + syntax: :proto2
555 +
556 + field :start, 1, optional: true, type: :uint64
557 + field :end, 2, optional: true, type: :uint64
248 558
249 − extensions([{1000, 2000}])
559 + extensions [{1000, 2000}, {9000, 10000}]
250 560 end
251 561
252 562 defmodule TransitRealtime.Position do
253 563 @moduledoc false
254 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
255 564
256 − field(:latitude, 1, required: true, type: :float)
257 − field(:longitude, 2, required: true, type: :float)
258 − field(:bearing, 3, optional: true, type: :float)
259 − field(:odometer, 4, optional: true, type: :double)
260 − field(:speed, 5, optional: true, type: :float)
565 + use Protobuf,
566 + full_name: "transit_realtime.Position",
567 + protoc_gen_elixir_version: "0.17.0",
568 + syntax: :proto2
261 569
262 − extensions([{1000, 2000}])
570 + field :latitude, 1, required: true, type: :float
571 + field :longitude, 2, required: true, type: :float
572 + field :bearing, 3, optional: true, type: :float
573 + field :odometer, 4, optional: true, type: :double
574 + field :speed, 5, optional: true, type: :float
575 +
576 + extensions [{1000, 2000}, {9000, 10000}]
577 +end
578 +
579 +defmodule TransitRealtime.TripDescriptor.ModifiedTripSelector do
580 + @moduledoc false
581 +
582 + use Protobuf,
583 + full_name: "transit_realtime.TripDescriptor.ModifiedTripSelector",
584 + protoc_gen_elixir_version: "0.17.0",
585 + syntax: :proto2
586 +
587 + field :modifications_id, 1, optional: true, type: :string, json_name: "modificationsId"
588 + field :affected_trip_id, 2, optional: true, type: :string, json_name: "affectedTripId"
589 + field :start_time, 3, optional: true, type: :string, json_name: "startTime"
590 + field :start_date, 4, optional: true, type: :string, json_name: "startDate"
591 +
592 + extensions [{1000, 2000}, {9000, 10000}]
263 593 end
264 594
265 595 defmodule TransitRealtime.TripDescriptor do
266 596 @moduledoc false
267 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
268 597
269 − field(:trip_id, 1, optional: true, type: :string)
270 − field(:route_id, 5, optional: true, type: :string)
271 − field(:direction_id, 6, optional: true, type: :uint32)
272 − field(:start_time, 2, optional: true, type: :string)
273 − field(:start_date, 3, optional: true, type: :string)
598 + use Protobuf,
599 + full_name: "transit_realtime.TripDescriptor",
600 + protoc_gen_elixir_version: "0.17.0",
601 + syntax: :proto2
602 +
603 + field :trip_id, 1, optional: true, type: :string, json_name: "tripId"
604 + field :route_id, 5, optional: true, type: :string, json_name: "routeId"
605 + field :direction_id, 6, optional: true, type: :uint32, json_name: "directionId"
606 + field :start_time, 2, optional: true, type: :string, json_name: "startTime"
607 + field :start_date, 3, optional: true, type: :string, json_name: "startDate"
274 608
275 − field(:schedule_relationship, 4,
609 + field :schedule_relationship, 4,
276 610 optional: true,
277 611 type: TransitRealtime.TripDescriptor.ScheduleRelationship,
612 + json_name: "scheduleRelationship",
278 613 enum: true
279 − )
280 614
281 − extensions([{1000, 2000}])
615 + field :modified_trip, 7,
616 + optional: true,
617 + type: TransitRealtime.TripDescriptor.ModifiedTripSelector,
618 + json_name: "modifiedTrip"
619 +
620 + extensions [{1000, 2000}, {9000, 10000}]
282 621 end
283 622
284 623 defmodule TransitRealtime.VehicleDescriptor do
285 624 @moduledoc false
286 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
287 625
288 − field(:id, 1, optional: true, type: :string)
289 − field(:label, 2, optional: true, type: :string)
290 − field(:license_plate, 3, optional: true, type: :string)
626 + use Protobuf,
627 + full_name: "transit_realtime.VehicleDescriptor",
628 + protoc_gen_elixir_version: "0.17.0",
629 + syntax: :proto2
630 +
631 + field :id, 1, optional: true, type: :string
632 + field :label, 2, optional: true, type: :string
633 + field :license_plate, 3, optional: true, type: :string, json_name: "licensePlate"
634 +
635 + field :wheelchair_accessible, 4,
636 + optional: true,
637 + type: TransitRealtime.VehicleDescriptor.WheelchairAccessible,
638 + json_name: "wheelchairAccessible",
639 + default: :NO_VALUE,
640 + enum: true
291 641
292 − extensions([{1000, 2000}])
642 + extensions [{1000, 2000}, {9000, 10000}]
293 643 end
294 644
295 645 defmodule TransitRealtime.EntitySelector do
296 646 @moduledoc false
297 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
298 647
299 − field(:agency_id, 1, optional: true, type: :string)
300 − field(:route_id, 2, optional: true, type: :string)
301 − field(:route_type, 3, optional: true, type: :int32)
302 − field(:trip, 4, optional: true, type: TransitRealtime.TripDescriptor)
303 − field(:stop_id, 5, optional: true, type: :string)
648 + use Protobuf,
649 + full_name: "transit_realtime.EntitySelector",
650 + protoc_gen_elixir_version: "0.17.0",
651 + syntax: :proto2
652 +
653 + field :agency_id, 1, optional: true, type: :string, json_name: "agencyId"
654 + field :route_id, 2, optional: true, type: :string, json_name: "routeId"
655 + field :route_type, 3, optional: true, type: :int32, json_name: "routeType"
656 + field :trip, 4, optional: true, type: TransitRealtime.TripDescriptor
657 + field :stop_id, 5, optional: true, type: :string, json_name: "stopId"
658 + field :direction_id, 6, optional: true, type: :uint32, json_name: "directionId"
304 659
305 − extensions([{1000, 2000}])
660 + extensions [{1000, 2000}, {9000, 10000}]
306 661 end
307 662
308 663 defmodule TransitRealtime.TranslatedString.Translation do
309 664 @moduledoc false
310 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
311 665
312 − field(:text, 1, required: true, type: :string)
313 − field(:language, 2, optional: true, type: :string)
666 + use Protobuf,
667 + full_name: "transit_realtime.TranslatedString.Translation",
668 + protoc_gen_elixir_version: "0.17.0",
669 + syntax: :proto2
314 670
315 − extensions([{1000, 2000}])
671 + field :text, 1, required: true, type: :string
672 + field :language, 2, optional: true, type: :string
673 +
674 + extensions [{1000, 2000}, {9000, 10000}]
316 675 end
317 676
318 677 defmodule TransitRealtime.TranslatedString do
319 678 @moduledoc false
320 − use Protobuf, protoc_gen_elixir_version: "0.11.0", syntax: :proto2
321 679
322 − field(:translation, 1, repeated: true, type: TransitRealtime.TranslatedString.Translation)
680 + use Protobuf,
681 + full_name: "transit_realtime.TranslatedString",
682 + protoc_gen_elixir_version: "0.17.0",
683 + syntax: :proto2
684 +
685 + field :translation, 1, repeated: true, type: TransitRealtime.TranslatedString.Translation
686 +
687 + extensions [{1000, 2000}, {9000, 10000}]
688 +end
689 +
690 +defmodule TransitRealtime.TranslatedImage.LocalizedImage do
691 + @moduledoc false
692 +
693 + use Protobuf,
694 + full_name: "transit_realtime.TranslatedImage.LocalizedImage",
695 + protoc_gen_elixir_version: "0.17.0",
696 + syntax: :proto2
697 +
698 + field :url, 1, required: true, type: :string
699 + field :media_type, 2, required: true, type: :string, json_name: "mediaType"
700 + field :language, 3, optional: true, type: :string
701 +
702 + extensions [{1000, 2000}, {9000, 10000}]
703 +end
704 +
705 +defmodule TransitRealtime.TranslatedImage do
706 + @moduledoc false
707 +
708 + use Protobuf,
709 + full_name: "transit_realtime.TranslatedImage",
710 + protoc_gen_elixir_version: "0.17.0",
711 + syntax: :proto2
712 +
713 + field :localized_image, 1,
714 + repeated: true,
715 + type: TransitRealtime.TranslatedImage.LocalizedImage,
716 + json_name: "localizedImage"
717 +
718 + extensions [{1000, 2000}, {9000, 10000}]
719 +end
720 +
721 +defmodule TransitRealtime.Shape do
722 + @moduledoc false
723 +
724 + use Protobuf,
725 + full_name: "transit_realtime.Shape",
726 + protoc_gen_elixir_version: "0.17.0",
727 + syntax: :proto2
728 +
729 + field :shape_id, 1, optional: true, type: :string, json_name: "shapeId"
730 + field :encoded_polyline, 2, optional: true, type: :string, json_name: "encodedPolyline"
731 +
732 + extensions [{1000, 2000}, {9000, 10000}]
733 +end
734 +
735 +defmodule TransitRealtime.Stop do
736 + @moduledoc false
737 +
738 + use Protobuf,
739 + full_name: "transit_realtime.Stop",
740 + protoc_gen_elixir_version: "0.17.0",
741 + syntax: :proto2
742 +
743 + field :stop_id, 1, optional: true, type: :string, json_name: "stopId"
744 +
745 + field :stop_code, 2,
746 + optional: true,
747 + type: TransitRealtime.TranslatedString,
748 + json_name: "stopCode"
749 +
750 + field :stop_name, 3,
751 + optional: true,
752 + type: TransitRealtime.TranslatedString,
753 + json_name: "stopName"
754 +
755 + field :tts_stop_name, 4,
756 + optional: true,
757 + type: TransitRealtime.TranslatedString,
758 + json_name: "ttsStopName"
759 +
760 + field :stop_desc, 5,
761 + optional: true,
762 + type: TransitRealtime.TranslatedString,
763 + json_name: "stopDesc"
764 +
765 + field :stop_lat, 6, optional: true, type: :float, json_name: "stopLat"
766 + field :stop_lon, 7, optional: true, type: :float, json_name: "stopLon"
767 + field :zone_id, 8, optional: true, type: :string, json_name: "zoneId"
768 + field :stop_url, 9, optional: true, type: TransitRealtime.TranslatedString, json_name: "stopUrl"
769 + field :parent_station, 11, optional: true, type: :string, json_name: "parentStation"
770 + field :stop_timezone, 12, optional: true, type: :string, json_name: "stopTimezone"
771 +
772 + field :wheelchair_boarding, 13,
773 + optional: true,
774 + type: TransitRealtime.Stop.WheelchairBoarding,
775 + json_name: "wheelchairBoarding",
776 + default: :UNKNOWN,
777 + enum: true
778 +
779 + field :level_id, 14, optional: true, type: :string, json_name: "levelId"
780 +
781 + field :platform_code, 15,
782 + optional: true,
783 + type: TransitRealtime.TranslatedString,
784 + json_name: "platformCode"
785 +
786 + extensions [{1000, 2000}, {9000, 10000}]
787 +end
788 +
789 +defmodule TransitRealtime.TripModifications.Modification do
790 + @moduledoc false
791 +
792 + use Protobuf,
793 + full_name: "transit_realtime.TripModifications.Modification",
794 + protoc_gen_elixir_version: "0.17.0",
795 + syntax: :proto2
796 +
797 + field :start_stop_selector, 1,
798 + optional: true,
799 + type: TransitRealtime.StopSelector,
800 + json_name: "startStopSelector"
801 +
802 + field :end_stop_selector, 2,
803 + optional: true,
804 + type: TransitRealtime.StopSelector,
805 + json_name: "endStopSelector"
806 +
807 + field :propagated_modification_delay, 3,
808 + optional: true,
809 + type: :int32,
810 + json_name: "propagatedModificationDelay",
811 + default: 0
812 +
813 + field :replacement_stops, 4,
814 + repeated: true,
815 + type: TransitRealtime.ReplacementStop,
816 + json_name: "replacementStops"
817 +
818 + field :service_alert_id, 5, optional: true, type: :string, json_name: "serviceAlertId"
819 + field :last_modified_time, 6, optional: true, type: :uint64, json_name: "lastModifiedTime"
820 +
821 + extensions [{1000, 2000}, {9000, 10000}]
822 +end
823 +
824 +defmodule TransitRealtime.TripModifications.SelectedTrips do
825 + @moduledoc false
826 +
827 + use Protobuf,
828 + full_name: "transit_realtime.TripModifications.SelectedTrips",
829 + protoc_gen_elixir_version: "0.17.0",
830 + syntax: :proto2
831 +
832 + field :trip_ids, 1, repeated: true, type: :string, json_name: "tripIds"
833 + field :shape_id, 2, optional: true, type: :string, json_name: "shapeId"
834 +
835 + extensions [{1000, 2000}, {9000, 10000}]
836 +end
837 +
838 +defmodule TransitRealtime.TripModifications do
839 + @moduledoc false
840 +
841 + use Protobuf,
842 + full_name: "transit_realtime.TripModifications",
843 + protoc_gen_elixir_version: "0.17.0",
844 + syntax: :proto2
845 +
846 + field :selected_trips, 1,
847 + repeated: true,
848 + type: TransitRealtime.TripModifications.SelectedTrips,
849 + json_name: "selectedTrips"
850 +
851 + field :start_times, 2, repeated: true, type: :string, json_name: "startTimes"
852 + field :service_dates, 3, repeated: true, type: :string, json_name: "serviceDates"
853 + field :modifications, 4, repeated: true, type: TransitRealtime.TripModifications.Modification
854 +
855 + extensions [{1000, 2000}, {9000, 10000}]
856 +end
857 +
858 +defmodule TransitRealtime.StopSelector do
859 + @moduledoc false
860 +
861 + use Protobuf,
862 + full_name: "transit_realtime.StopSelector",
863 + protoc_gen_elixir_version: "0.17.0",
864 + syntax: :proto2
865 +
866 + field :stop_sequence, 1, optional: true, type: :uint32, json_name: "stopSequence"
867 + field :stop_id, 2, optional: true, type: :string, json_name: "stopId"
868 +
869 + extensions [{1000, 2000}, {9000, 10000}]
870 +end
871 +
872 +defmodule TransitRealtime.ReplacementStop do
873 + @moduledoc false
874 +
875 + use Protobuf,
876 + full_name: "transit_realtime.ReplacementStop",
877 + protoc_gen_elixir_version: "0.17.0",
878 + syntax: :proto2
879 +
880 + field :travel_time_to_stop, 1, optional: true, type: :int32, json_name: "travelTimeToStop"
881 + field :stop_id, 2, optional: true, type: :string, json_name: "stopId"
323 882
324 − extensions([{1000, 2000}])
883 + extensions [{1000, 2000}, {9000, 10000}]
325 884 end
added apps/room_gtfs/lib/gtfs_realtime_pb_extension.ex
+35 −0
@@ -0,0 +1,35 @@
1 +defmodule TransitRealtime.PbExtension do
2 + @moduledoc false
3 +
4 + use Protobuf, protoc_gen_elixir_version: "0.17.0"
5 +
6 + extend TransitRealtime.TripDescriptor, :nyct_trip_descriptor, 1001,
7 + optional: true,
8 + type: TransitRealtime.NyctTripDescriptor,
9 + json_name: "nyctTripDescriptor"
10 +
11 + extend TransitRealtime.TripUpdate.StopTimeUpdate, :nyct_stop_time_update, 1001,
12 + optional: true,
13 + type: TransitRealtime.NyctStopTimeUpdate,
14 + json_name: "nyctStopTimeUpdate"
15 +
16 + extend TransitRealtime.TripUpdate.StopTimeUpdate, :mta_railroad_stop_time_update, 1005,
17 + optional: true,
18 + type: TransitRealtime.MtaRailroadStopTimeUpdate,
19 + json_name: "mtaRailroadStopTimeUpdate"
20 +
21 + extend TransitRealtime.VehiclePosition.CarriageDetails, :mta_railroad_carriage_details, 1005,
22 + optional: true,
23 + type: TransitRealtime.MtaRailroadCarriageDetails,
24 + json_name: "mtaRailroadCarriageDetails"
25 +
26 + extend TransitRealtime.Alert, :mercury_alert, 1001,
27 + optional: true,
28 + type: TransitRealtime.MercuryAlert,
29 + json_name: "mercuryAlert"
30 +
31 + extend TransitRealtime.EntitySelector, :mercury_entity_selector, 1001,
32 + optional: true,
33 + type: TransitRealtime.MercuryEntitySelector,
34 + json_name: "mercuryEntitySelector"
35 +end
added apps/room_gtfs/lib/gtfs_realtime_service_status_pb.ex
+125 −0
@@ -0,0 +1,125 @@
1 +defmodule TransitRealtime.MercuryEntitySelector.Priority do
2 + @moduledoc false
3 +
4 + use Protobuf,
5 + enum: true,
6 + full_name: "transit_realtime.MercuryEntitySelector.Priority",
7 + protoc_gen_elixir_version: "0.17.0",
8 + syntax: :proto2
9 +
10 + field :PRIORITY_NO_SCHEDULED_SERVICE, 1
11 + field :PRIORITY_INFORMATION_OUTAGE, 2
12 + field :PRIORITY_STATION_NOTICE, 3
13 + field :PRIORITY_SPECIAL_NOTICE, 4
14 + field :PRIORITY_WEEKDAY_SCHEDULE, 5
15 + field :PRIORITY_WEEKEND_SCHEDULE, 6
16 + field :PRIORITY_SATURDAY_SCHEDULE, 7
17 + field :PRIORITY_SUNDAY_SCHEDULE, 8
18 + field :PRIORITY_EXTRA_SERVICE, 9
19 + field :PRIORITY_BOARDING_CHANGE, 10
20 + field :PRIORITY_SPECIAL_SCHEDULE, 11
21 + field :PRIORITY_EXPECT_DELAYS, 12
22 + field :PRIORITY_REDUCED_SERVICE, 13
23 + field :PRIORITY_PLANNED_EXPRESS_TO_LOCAL, 14
24 + field :PRIORITY_PLANNED_EXTRA_TRANSFER, 15
25 + field :PRIORITY_PLANNED_STOPS_SKIPPED, 16
26 + field :PRIORITY_PLANNED_DETOUR, 17
27 + field :PRIORITY_PLANNED_REROUTE, 18
28 + field :PRIORITY_PLANNED_SUBSTITUTE_BUSES, 19
29 + field :PRIORITY_PLANNED_PART_SUSPENDED, 20
30 + field :PRIORITY_PLANNED_SUSPENDED, 21
31 + field :PRIORITY_SERVICE_CHANGE, 22
32 + field :PRIORITY_PLANNED_WORK, 23
33 + field :PRIORITY_SOME_DELAYS, 24
34 + field :PRIORITY_EXPRESS_TO_LOCAL, 25
35 + field :PRIORITY_DELAYS, 26
36 + field :PRIORITY_CANCELLATIONS, 27
37 + field :PRIORITY_DELAYS_AND_CANCELLATIONS, 28
38 + field :PRIORITY_STOPS_SKIPPED, 29
39 + field :PRIORITY_SEVERE_DELAYS, 30
40 + field :PRIORITY_DETOUR, 31
41 + field :PRIORITY_REROUTE, 32
42 + field :PRIORITY_SUBSTITUTE_BUSES, 33
43 + field :PRIORITY_PART_SUSPENDED, 34
44 + field :PRIORITY_SUSPENDED, 35
45 +end
46 +
47 +defmodule TransitRealtime.MercuryFeedHeader do
48 + @moduledoc false
49 +
50 + use Protobuf,
51 + full_name: "transit_realtime.MercuryFeedHeader",
52 + protoc_gen_elixir_version: "0.17.0",
53 + syntax: :proto2
54 +
55 + field :mercury_version, 1, required: true, type: :string, json_name: "mercuryVersion"
56 +end
57 +
58 +defmodule TransitRealtime.MercuryStationAlternative do
59 + @moduledoc false
60 +
61 + use Protobuf,
62 + full_name: "transit_realtime.MercuryStationAlternative",
63 + protoc_gen_elixir_version: "0.17.0",
64 + syntax: :proto2
65 +
66 + field :affected_entity, 1,
67 + required: true,
68 + type: TransitRealtime.EntitySelector,
69 + json_name: "affectedEntity"
70 +
71 + field :notes, 2, required: true, type: TransitRealtime.TranslatedString
72 +end
73 +
74 +defmodule TransitRealtime.MercuryAlert do
75 + @moduledoc false
76 +
77 + use Protobuf,
78 + full_name: "transit_realtime.MercuryAlert",
79 + protoc_gen_elixir_version: "0.17.0",
80 + syntax: :proto2
81 +
82 + field :created_at, 1, required: true, type: :uint64, json_name: "createdAt"
83 + field :updated_at, 2, required: true, type: :uint64, json_name: "updatedAt"
84 + field :alert_type, 3, required: true, type: :string, json_name: "alertType"
85 +
86 + field :station_alternative, 4,
87 + repeated: true,
88 + type: TransitRealtime.MercuryStationAlternative,
89 + json_name: "stationAlternative"
90 +
91 + field :service_plan_number, 5, repeated: true, type: :string, json_name: "servicePlanNumber"
92 + field :general_order_number, 6, repeated: true, type: :string, json_name: "generalOrderNumber"
93 + field :display_before_active, 7, optional: true, type: :uint64, json_name: "displayBeforeActive"
94 +
95 + field :human_readable_active_period, 8,
96 + optional: true,
97 + type: TransitRealtime.TranslatedString,
98 + json_name: "humanReadableActivePeriod"
99 +
100 + field :directionality, 9, optional: true, type: :uint64
101 +
102 + field :affected_stations, 10,
103 + repeated: true,
104 + type: TransitRealtime.EntitySelector,
105 + json_name: "affectedStations"
106 +
107 + field :screens_summary, 11,
108 + optional: true,
109 + type: TransitRealtime.TranslatedString,
110 + json_name: "screensSummary"
111 +
112 + field :no_affected_stations, 12, optional: true, type: :bool, json_name: "noAffectedStations"
113 + field :clone_id, 13, optional: true, type: :string, json_name: "cloneId"
114 +end
115 +
116 +defmodule TransitRealtime.MercuryEntitySelector do
117 + @moduledoc false
118 +
119 + use Protobuf,
120 + full_name: "transit_realtime.MercuryEntitySelector",
121 + protoc_gen_elixir_version: "0.17.0",
122 + syntax: :proto2
123 +
124 + field :sort_order, 1, required: true, type: :string, json_name: "sortOrder"
125 +end
added apps/room_gtfs/lib/room_gtfs/application.ex
+36 −0

Click to load diff…

added apps/room_gtfs/lib/room_gtfs/feed_cache.ex
+233 −0

Click to load diff…

modified apps/room_gtfs/lib/room_gtfs/gtfs_worker.ex
+70 −9

Click to load diff…

modified apps/room_gtfs/mix.exs
+6 −2

Click to load diff…

added apps/room_gtfs/priv/proto/README.md
+87 −0

Click to load diff…

added apps/room_gtfs/priv/proto/com/google/transit/realtime/gtfs-realtime-MTARR.proto
+60 −0

Click to load diff…

added apps/room_gtfs/priv/proto/com/google/transit/realtime/gtfs-realtime-NYCT.proto
+157 −0

Click to load diff…

added apps/room_gtfs/priv/proto/com/google/transit/realtime/gtfs-realtime-service-status.proto
+129 −0

Click to load diff…

added apps/room_gtfs/priv/proto/com/google/transit/realtime/gtfs-realtime.proto
+1268 −0

Click to load diff…

modified apps/room_gtfs/test/rt_response_test.exs
+34 −0

Click to load diff…

Parents: 5844f5c