gtfs-realtime-succinct.proto 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. syntax = "proto2";
  2. option java_package = "com.google.transit.realtime";
  3. package transit_realtime;
  4. message FeedMessage {
  5. required FeedHeader header = 1;
  6. repeated FeedEntity entity = 2;
  7. extensions 1000 to 1999;
  8. extensions 9000 to 9999;
  9. }
  10. message FeedHeader {
  11. required string gtfs_realtime_version = 1;
  12. enum Incrementality {
  13. FULL_DATASET = 0;
  14. DIFFERENTIAL = 1;
  15. }
  16. optional Incrementality incrementality = 2 [default = FULL_DATASET];
  17. optional uint64 timestamp = 3;
  18. extensions 1000 to 1999;
  19. extensions 9000 to 9999;
  20. }
  21. message FeedEntity {
  22. required string id = 1;
  23. optional bool is_deleted = 2 [default = false];
  24. optional TripUpdate trip_update = 3;
  25. optional VehiclePosition vehicle = 4;
  26. optional Alert alert = 5;
  27. optional Shape shape = 6;
  28. extensions 1000 to 1999;
  29. extensions 9000 to 9999;
  30. }
  31. message TripUpdate {
  32. required TripDescriptor trip = 1;
  33. optional VehicleDescriptor vehicle = 3;
  34. message StopTimeEvent {
  35. optional int32 delay = 1;
  36. optional int64 time = 2;
  37. optional int32 uncertainty = 3;
  38. extensions 1000 to 1999;
  39. extensions 9000 to 9999;
  40. }
  41. message StopTimeUpdate {
  42. optional uint32 stop_sequence = 1;
  43. optional string stop_id = 4;
  44. optional StopTimeEvent arrival = 2;
  45. optional StopTimeEvent departure = 3;
  46. optional VehiclePosition.OccupancyStatus departure_occupancy_status = 7;
  47. enum ScheduleRelationship {
  48. SCHEDULED = 0;
  49. SKIPPED = 1;
  50. NO_DATA = 2;
  51. UNSCHEDULED = 3;
  52. }
  53. optional ScheduleRelationship schedule_relationship = 5
  54. [default = SCHEDULED];
  55. message StopTimeProperties {
  56. optional string assigned_stop_id = 1;
  57. extensions 1000 to 1999;
  58. extensions 9000 to 9999;
  59. }
  60. optional StopTimeProperties stop_time_properties = 6;
  61. extensions 1000 to 1999;
  62. extensions 9000 to 9999;
  63. }
  64. repeated StopTimeUpdate stop_time_update = 2;
  65. optional uint64 timestamp = 4;
  66. optional int32 delay = 5;
  67. message TripProperties {
  68. optional string trip_id = 1;
  69. optional string start_date = 2;
  70. optional string start_time = 3;
  71. optional string shape_id = 4;
  72. extensions 1000 to 1999;
  73. extensions 9000 to 9999;
  74. }
  75. optional TripProperties trip_properties = 6;
  76. extensions 1000 to 1999;
  77. extensions 9000 to 9999;
  78. }
  79. message VehiclePosition {
  80. optional TripDescriptor trip = 1;
  81. optional VehicleDescriptor vehicle = 8;
  82. optional Position position = 2;
  83. optional uint32 current_stop_sequence = 3;
  84. optional string stop_id = 7;
  85. enum VehicleStopStatus {
  86. INCOMING_AT = 0;
  87. STOPPED_AT = 1;
  88. IN_TRANSIT_TO = 2;
  89. }
  90. optional VehicleStopStatus current_status = 4 [default = IN_TRANSIT_TO];
  91. optional uint64 timestamp = 5;
  92. enum CongestionLevel {
  93. UNKNOWN_CONGESTION_LEVEL = 0;
  94. RUNNING_SMOOTHLY = 1;
  95. STOP_AND_GO = 2;
  96. CONGESTION = 3;
  97. SEVERE_CONGESTION = 4; // People leaving their cars.
  98. }
  99. optional CongestionLevel congestion_level = 6;
  100. enum OccupancyStatus {
  101. EMPTY = 0;
  102. MANY_SEATS_AVAILABLE = 1;
  103. FEW_SEATS_AVAILABLE = 2;
  104. STANDING_ROOM_ONLY = 3;
  105. CRUSHED_STANDING_ROOM_ONLY = 4;
  106. FULL = 5;
  107. NOT_ACCEPTING_PASSENGERS = 6;
  108. NO_DATA_AVAILABLE = 7;
  109. NOT_BOARDABLE = 8;
  110. }
  111. optional OccupancyStatus occupancy_status = 9;
  112. optional uint32 occupancy_percentage = 10;
  113. message CarriageDetails {
  114. optional string id = 1;
  115. optional string label = 2;
  116. optional OccupancyStatus occupancy_status = 3 [default = NO_DATA_AVAILABLE];
  117. optional int32 occupancy_percentage = 4 [default = -1];
  118. optional uint32 carriage_sequence = 5;
  119. extensions 1000 to 1999;
  120. extensions 9000 to 9999;
  121. }
  122. repeated CarriageDetails multi_carriage_details = 11;
  123. extensions 1000 to 1999;
  124. extensions 9000 to 9999;
  125. }
  126. message Alert {
  127. repeated TimeRange active_period = 1;
  128. repeated EntitySelector informed_entity = 5;
  129. enum Cause {
  130. UNKNOWN_CAUSE = 1;
  131. OTHER_CAUSE = 2; // Not machine-representable.
  132. TECHNICAL_PROBLEM = 3;
  133. STRIKE = 4; // Public transit agency employees stopped working.
  134. DEMONSTRATION = 5; // People are blocking the streets.
  135. ACCIDENT = 6;
  136. HOLIDAY = 7;
  137. WEATHER = 8;
  138. MAINTENANCE = 9;
  139. CONSTRUCTION = 10;
  140. POLICE_ACTIVITY = 11;
  141. MEDICAL_EMERGENCY = 12;
  142. }
  143. optional Cause cause = 6 [default = UNKNOWN_CAUSE];
  144. enum Effect {
  145. NO_SERVICE = 1;
  146. REDUCED_SERVICE = 2;
  147. SIGNIFICANT_DELAYS = 3;
  148. DETOUR = 4;
  149. ADDITIONAL_SERVICE = 5;
  150. MODIFIED_SERVICE = 6;
  151. OTHER_EFFECT = 7;
  152. UNKNOWN_EFFECT = 8;
  153. STOP_MOVED = 9;
  154. NO_EFFECT = 10;
  155. ACCESSIBILITY_ISSUE = 11;
  156. }
  157. optional Effect effect = 7 [default = UNKNOWN_EFFECT];
  158. optional TranslatedString url = 8;
  159. optional TranslatedString header_text = 10;
  160. optional TranslatedString description_text = 11;
  161. optional TranslatedString tts_header_text = 12;
  162. optional TranslatedString tts_description_text = 13;
  163. enum SeverityLevel {
  164. UNKNOWN_SEVERITY = 1;
  165. INFO = 2;
  166. WARNING = 3;
  167. SEVERE = 4;
  168. }
  169. optional SeverityLevel severity_level = 14 [default = UNKNOWN_SEVERITY];
  170. extensions 1000 to 1999;
  171. extensions 9000 to 9999;
  172. }
  173. message TimeRange {
  174. optional uint64 start = 1;
  175. optional uint64 end = 2;
  176. extensions 1000 to 1999;
  177. extensions 9000 to 9999;
  178. }
  179. message Position {
  180. required float latitude = 1;
  181. required float longitude = 2;
  182. optional float bearing = 3;
  183. optional double odometer = 4;
  184. optional float speed = 5;
  185. extensions 1000 to 1999;
  186. extensions 9000 to 9999;
  187. }
  188. message TripDescriptor {
  189. optional string trip_id = 1;
  190. optional string route_id = 5;
  191. optional uint32 direction_id = 6;
  192. optional string start_time = 2;
  193. optional string start_date = 3;
  194. enum ScheduleRelationship {
  195. SCHEDULED = 0;
  196. ADDED = 1;
  197. UNSCHEDULED = 2;
  198. CANCELED = 3;
  199. REPLACEMENT = 5 [deprecated=true];
  200. DUPLICATED = 6;
  201. }
  202. optional ScheduleRelationship schedule_relationship = 4;
  203. extensions 1000 to 1999;
  204. extensions 9000 to 9999;
  205. }
  206. message VehicleDescriptor {
  207. optional string id = 1;
  208. optional string label = 2;
  209. optional string license_plate = 3;
  210. extensions 1000 to 1999;
  211. extensions 9000 to 9999;
  212. }
  213. message EntitySelector {
  214. optional string agency_id = 1;
  215. optional string route_id = 2;
  216. optional int32 route_type = 3;
  217. optional TripDescriptor trip = 4;
  218. optional string stop_id = 5;
  219. optional uint32 direction_id = 6;
  220. extensions 1000 to 1999;
  221. extensions 9000 to 9999;
  222. }
  223. message TranslatedString {
  224. message Translation {
  225. required string text = 1;
  226. optional string language = 2;
  227. extensions 1000 to 1999;
  228. extensions 9000 to 9999;
  229. }
  230. repeated Translation translation = 1;
  231. extensions 1000 to 1999;
  232. extensions 9000 to 9999;
  233. }
  234. message Shape {
  235. optional string shape_id = 1;
  236. optional string encoded_polyline = 2;
  237. extensions 1000 to 1999;
  238. extensions 9000 to 9999;
  239. }