onebusaway-sdk 0.1.0.pre.alpha.203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +124 -0
  3. data/lib/onebusaway-sdk/base_client.rb +483 -0
  4. data/lib/onebusaway-sdk/base_model.rb +1188 -0
  5. data/lib/onebusaway-sdk/base_page.rb +40 -0
  6. data/lib/onebusaway-sdk/client.rb +181 -0
  7. data/lib/onebusaway-sdk/errors.rb +187 -0
  8. data/lib/onebusaway-sdk/extern.rb +10 -0
  9. data/lib/onebusaway-sdk/models/agencies_with_coverage_list_params.rb +18 -0
  10. data/lib/onebusaway-sdk/models/agencies_with_coverage_list_response.rb +84 -0
  11. data/lib/onebusaway-sdk/models/agency_retrieve_params.rb +18 -0
  12. data/lib/onebusaway-sdk/models/agency_retrieve_response.rb +151 -0
  13. data/lib/onebusaway-sdk/models/arrival_and_departure_list_params.rb +51 -0
  14. data/lib/onebusaway-sdk/models/arrival_and_departure_list_response.rb +767 -0
  15. data/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_params.rb +60 -0
  16. data/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_response.rb +751 -0
  17. data/lib/onebusaway-sdk/models/block_retrieve_params.rb +18 -0
  18. data/lib/onebusaway-sdk/models/block_retrieve_response.rb +205 -0
  19. data/lib/onebusaway-sdk/models/config_retrieve_params.rb +18 -0
  20. data/lib/onebusaway-sdk/models/config_retrieve_response.rb +331 -0
  21. data/lib/onebusaway-sdk/models/current_time_retrieve_params.rb +18 -0
  22. data/lib/onebusaway-sdk/models/current_time_retrieve_response.rb +67 -0
  23. data/lib/onebusaway-sdk/models/references.rb +1071 -0
  24. data/lib/onebusaway-sdk/models/report_problem_with_stop_retrieve_params.rb +117 -0
  25. data/lib/onebusaway-sdk/models/report_problem_with_trip_retrieve_params.rb +180 -0
  26. data/lib/onebusaway-sdk/models/response_wrapper.rb +37 -0
  27. data/lib/onebusaway-sdk/models/route_ids_for_agency_list_params.rb +18 -0
  28. data/lib/onebusaway-sdk/models/route_ids_for_agency_list_response.rb +45 -0
  29. data/lib/onebusaway-sdk/models/route_retrieve_params.rb +18 -0
  30. data/lib/onebusaway-sdk/models/route_retrieve_response.rb +149 -0
  31. data/lib/onebusaway-sdk/models/routes_for_agency_list_params.rb +18 -0
  32. data/lib/onebusaway-sdk/models/routes_for_agency_list_response.rb +156 -0
  33. data/lib/onebusaway-sdk/models/routes_for_location_list_params.rb +70 -0
  34. data/lib/onebusaway-sdk/models/routes_for_location_list_response.rb +162 -0
  35. data/lib/onebusaway-sdk/models/schedule_for_route_retrieve_params.rb +30 -0
  36. data/lib/onebusaway-sdk/models/schedule_for_route_retrieve_response.rb +453 -0
  37. data/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_params.rb +30 -0
  38. data/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_response.rb +244 -0
  39. data/lib/onebusaway-sdk/models/search_for_route_list_params.rb +36 -0
  40. data/lib/onebusaway-sdk/models/search_for_route_list_response.rb +166 -0
  41. data/lib/onebusaway-sdk/models/search_for_stop_list_params.rb +36 -0
  42. data/lib/onebusaway-sdk/models/search_for_stop_list_response.rb +161 -0
  43. data/lib/onebusaway-sdk/models/shape_retrieve_params.rb +18 -0
  44. data/lib/onebusaway-sdk/models/shape_retrieve_response.rb +70 -0
  45. data/lib/onebusaway-sdk/models/stop_ids_for_agency_list_params.rb +18 -0
  46. data/lib/onebusaway-sdk/models/stop_ids_for_agency_list_response.rb +45 -0
  47. data/lib/onebusaway-sdk/models/stop_retrieve_params.rb +18 -0
  48. data/lib/onebusaway-sdk/models/stop_retrieve_response.rb +144 -0
  49. data/lib/onebusaway-sdk/models/stops_for_agency_list_params.rb +18 -0
  50. data/lib/onebusaway-sdk/models/stops_for_agency_list_response.rb +146 -0
  51. data/lib/onebusaway-sdk/models/stops_for_location_list_params.rb +74 -0
  52. data/lib/onebusaway-sdk/models/stops_for_location_list_response.rb +161 -0
  53. data/lib/onebusaway-sdk/models/stops_for_route_list_params.rb +40 -0
  54. data/lib/onebusaway-sdk/models/stops_for_route_list_response.rb +253 -0
  55. data/lib/onebusaway-sdk/models/trip_detail_retrieve_params.rb +86 -0
  56. data/lib/onebusaway-sdk/models/trip_detail_retrieve_response.rb +561 -0
  57. data/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_params.rb +65 -0
  58. data/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_response.rb +561 -0
  59. data/lib/onebusaway-sdk/models/trip_retrieve_params.rb +18 -0
  60. data/lib/onebusaway-sdk/models/trip_retrieve_response.rb +160 -0
  61. data/lib/onebusaway-sdk/models/trips_for_location_list_params.rb +93 -0
  62. data/lib/onebusaway-sdk/models/trips_for_location_list_response.rb +572 -0
  63. data/lib/onebusaway-sdk/models/trips_for_route_list_params.rb +52 -0
  64. data/lib/onebusaway-sdk/models/trips_for_route_list_response.rb +559 -0
  65. data/lib/onebusaway-sdk/models/vehicles_for_agency_list_params.rb +29 -0
  66. data/lib/onebusaway-sdk/models/vehicles_for_agency_list_response.rb +529 -0
  67. data/lib/onebusaway-sdk/pooled_net_requester.rb +170 -0
  68. data/lib/onebusaway-sdk/request_options.rb +115 -0
  69. data/lib/onebusaway-sdk/resources/agencies_with_coverage.rb +31 -0
  70. data/lib/onebusaway-sdk/resources/agency.rb +32 -0
  71. data/lib/onebusaway-sdk/resources/arrival_and_departure.rb +71 -0
  72. data/lib/onebusaway-sdk/resources/block.rb +32 -0
  73. data/lib/onebusaway-sdk/resources/config.rb +30 -0
  74. data/lib/onebusaway-sdk/resources/current_time.rb +30 -0
  75. data/lib/onebusaway-sdk/resources/report_problem_with_stop.rb +44 -0
  76. data/lib/onebusaway-sdk/resources/report_problem_with_trip.rb +54 -0
  77. data/lib/onebusaway-sdk/resources/route.rb +32 -0
  78. data/lib/onebusaway-sdk/resources/route_ids_for_agency.rb +32 -0
  79. data/lib/onebusaway-sdk/resources/routes_for_agency.rb +32 -0
  80. data/lib/onebusaway-sdk/resources/routes_for_location.rb +44 -0
  81. data/lib/onebusaway-sdk/resources/schedule_for_route.rb +37 -0
  82. data/lib/onebusaway-sdk/resources/schedule_for_stop.rb +37 -0
  83. data/lib/onebusaway-sdk/resources/search_for_route.rb +36 -0
  84. data/lib/onebusaway-sdk/resources/search_for_stop.rb +36 -0
  85. data/lib/onebusaway-sdk/resources/shape.rb +32 -0
  86. data/lib/onebusaway-sdk/resources/stop.rb +32 -0
  87. data/lib/onebusaway-sdk/resources/stop_ids_for_agency.rb +32 -0
  88. data/lib/onebusaway-sdk/resources/stops_for_agency.rb +32 -0
  89. data/lib/onebusaway-sdk/resources/stops_for_location.rb +44 -0
  90. data/lib/onebusaway-sdk/resources/stops_for_route.rb +38 -0
  91. data/lib/onebusaway-sdk/resources/trip.rb +32 -0
  92. data/lib/onebusaway-sdk/resources/trip_details.rb +47 -0
  93. data/lib/onebusaway-sdk/resources/trip_for_vehicle.rb +45 -0
  94. data/lib/onebusaway-sdk/resources/trips_for_location.rb +48 -0
  95. data/lib/onebusaway-sdk/resources/trips_for_route.rb +41 -0
  96. data/lib/onebusaway-sdk/resources/vehicles_for_agency.rb +36 -0
  97. data/lib/onebusaway-sdk/util.rb +512 -0
  98. data/lib/onebusaway-sdk/version.rb +5 -0
  99. data/lib/onebusaway-sdk.rb +116 -0
  100. data/manifest.yaml +13 -0
  101. data/rbi/lib/onebusaway-sdk/base_client.rbi +162 -0
  102. data/rbi/lib/onebusaway-sdk/base_model.rbi +478 -0
  103. data/rbi/lib/onebusaway-sdk/base_page.rbi +39 -0
  104. data/rbi/lib/onebusaway-sdk/client.rbi +154 -0
  105. data/rbi/lib/onebusaway-sdk/errors.rbi +145 -0
  106. data/rbi/lib/onebusaway-sdk/extern.rbi +7 -0
  107. data/rbi/lib/onebusaway-sdk/models/agencies_with_coverage_list_params.rbi +18 -0
  108. data/rbi/lib/onebusaway-sdk/models/agencies_with_coverage_list_response.rbi +131 -0
  109. data/rbi/lib/onebusaway-sdk/models/agency_retrieve_params.rbi +18 -0
  110. data/rbi/lib/onebusaway-sdk/models/agency_retrieve_response.rbi +210 -0
  111. data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_list_params.rbi +60 -0
  112. data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_list_response.rbi +914 -0
  113. data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_params.rbi +87 -0
  114. data/rbi/lib/onebusaway-sdk/models/arrival_and_departure_retrieve_response.rbi +857 -0
  115. data/rbi/lib/onebusaway-sdk/models/block_retrieve_params.rbi +18 -0
  116. data/rbi/lib/onebusaway-sdk/models/block_retrieve_response.rbi +383 -0
  117. data/rbi/lib/onebusaway-sdk/models/config_retrieve_params.rbi +18 -0
  118. data/rbi/lib/onebusaway-sdk/models/config_retrieve_response.rbi +389 -0
  119. data/rbi/lib/onebusaway-sdk/models/current_time_retrieve_params.rbi +18 -0
  120. data/rbi/lib/onebusaway-sdk/models/current_time_retrieve_response.rbi +95 -0
  121. data/rbi/lib/onebusaway-sdk/models/references.rbi +1265 -0
  122. data/rbi/lib/onebusaway-sdk/models/report_problem_with_stop_retrieve_params.rbi +101 -0
  123. data/rbi/lib/onebusaway-sdk/models/report_problem_with_trip_retrieve_params.rbi +157 -0
  124. data/rbi/lib/onebusaway-sdk/models/response_wrapper.rbi +47 -0
  125. data/rbi/lib/onebusaway-sdk/models/route_ids_for_agency_list_params.rbi +18 -0
  126. data/rbi/lib/onebusaway-sdk/models/route_ids_for_agency_list_response.rbi +68 -0
  127. data/rbi/lib/onebusaway-sdk/models/route_retrieve_params.rbi +18 -0
  128. data/rbi/lib/onebusaway-sdk/models/route_retrieve_response.rbi +200 -0
  129. data/rbi/lib/onebusaway-sdk/models/routes_for_agency_list_params.rbi +18 -0
  130. data/rbi/lib/onebusaway-sdk/models/routes_for_agency_list_response.rbi +210 -0
  131. data/rbi/lib/onebusaway-sdk/models/routes_for_location_list_params.rbi +90 -0
  132. data/rbi/lib/onebusaway-sdk/models/routes_for_location_list_response.rbi +220 -0
  133. data/rbi/lib/onebusaway-sdk/models/schedule_for_route_retrieve_params.rbi +34 -0
  134. data/rbi/lib/onebusaway-sdk/models/schedule_for_route_retrieve_response.rbi +675 -0
  135. data/rbi/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_params.rbi +34 -0
  136. data/rbi/lib/onebusaway-sdk/models/schedule_for_stop_retrieve_response.rbi +457 -0
  137. data/rbi/lib/onebusaway-sdk/models/search_for_route_list_params.rbi +43 -0
  138. data/rbi/lib/onebusaway-sdk/models/search_for_route_list_response.rbi +220 -0
  139. data/rbi/lib/onebusaway-sdk/models/search_for_stop_list_params.rbi +43 -0
  140. data/rbi/lib/onebusaway-sdk/models/search_for_stop_list_response.rbi +231 -0
  141. data/rbi/lib/onebusaway-sdk/models/shape_retrieve_params.rbi +18 -0
  142. data/rbi/lib/onebusaway-sdk/models/shape_retrieve_response.rbi +103 -0
  143. data/rbi/lib/onebusaway-sdk/models/stop_ids_for_agency_list_params.rbi +18 -0
  144. data/rbi/lib/onebusaway-sdk/models/stop_ids_for_agency_list_response.rbi +68 -0
  145. data/rbi/lib/onebusaway-sdk/models/stop_retrieve_params.rbi +18 -0
  146. data/rbi/lib/onebusaway-sdk/models/stop_retrieve_response.rbi +211 -0
  147. data/rbi/lib/onebusaway-sdk/models/stops_for_agency_list_params.rbi +18 -0
  148. data/rbi/lib/onebusaway-sdk/models/stops_for_agency_list_response.rbi +210 -0
  149. data/rbi/lib/onebusaway-sdk/models/stops_for_location_list_params.rbi +90 -0
  150. data/rbi/lib/onebusaway-sdk/models/stops_for_location_list_response.rbi +231 -0
  151. data/rbi/lib/onebusaway-sdk/models/stops_for_route_list_params.rbi +48 -0
  152. data/rbi/lib/onebusaway-sdk/models/stops_for_route_list_response.rbi +307 -0
  153. data/rbi/lib/onebusaway-sdk/models/trip_detail_retrieve_params.rbi +87 -0
  154. data/rbi/lib/onebusaway-sdk/models/trip_detail_retrieve_response.rbi +702 -0
  155. data/rbi/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_params.rbi +76 -0
  156. data/rbi/lib/onebusaway-sdk/models/trip_for_vehicle_retrieve_response.rbi +704 -0
  157. data/rbi/lib/onebusaway-sdk/models/trip_retrieve_params.rbi +18 -0
  158. data/rbi/lib/onebusaway-sdk/models/trip_retrieve_response.rbi +211 -0
  159. data/rbi/lib/onebusaway-sdk/models/trips_for_location_list_params.rbi +109 -0
  160. data/rbi/lib/onebusaway-sdk/models/trips_for_location_list_response.rbi +715 -0
  161. data/rbi/lib/onebusaway-sdk/models/trips_for_route_list_params.rbi +60 -0
  162. data/rbi/lib/onebusaway-sdk/models/trips_for_route_list_response.rbi +705 -0
  163. data/rbi/lib/onebusaway-sdk/models/vehicles_for_agency_list_params.rbi +35 -0
  164. data/rbi/lib/onebusaway-sdk/models/vehicles_for_agency_list_response.rbi +633 -0
  165. data/rbi/lib/onebusaway-sdk/pooled_net_requester.rbi +36 -0
  166. data/rbi/lib/onebusaway-sdk/request_options.rbi +84 -0
  167. data/rbi/lib/onebusaway-sdk/resources/agencies_with_coverage.rbi +18 -0
  168. data/rbi/lib/onebusaway-sdk/resources/agency.rbi +21 -0
  169. data/rbi/lib/onebusaway-sdk/resources/arrival_and_departure.rbi +47 -0
  170. data/rbi/lib/onebusaway-sdk/resources/block.rbi +21 -0
  171. data/rbi/lib/onebusaway-sdk/resources/config.rbi +18 -0
  172. data/rbi/lib/onebusaway-sdk/resources/current_time.rbi +18 -0
  173. data/rbi/lib/onebusaway-sdk/resources/report_problem_with_stop.rbi +34 -0
  174. data/rbi/lib/onebusaway-sdk/resources/report_problem_with_trip.rbi +44 -0
  175. data/rbi/lib/onebusaway-sdk/resources/route.rbi +21 -0
  176. data/rbi/lib/onebusaway-sdk/resources/route_ids_for_agency.rbi +21 -0
  177. data/rbi/lib/onebusaway-sdk/resources/routes_for_agency.rbi +21 -0
  178. data/rbi/lib/onebusaway-sdk/resources/routes_for_location.rbi +26 -0
  179. data/rbi/lib/onebusaway-sdk/resources/schedule_for_route.rbi +22 -0
  180. data/rbi/lib/onebusaway-sdk/resources/schedule_for_stop.rbi +22 -0
  181. data/rbi/lib/onebusaway-sdk/resources/search_for_route.rbi +22 -0
  182. data/rbi/lib/onebusaway-sdk/resources/search_for_stop.rbi +22 -0
  183. data/rbi/lib/onebusaway-sdk/resources/shape.rbi +21 -0
  184. data/rbi/lib/onebusaway-sdk/resources/stop.rbi +21 -0
  185. data/rbi/lib/onebusaway-sdk/resources/stop_ids_for_agency.rbi +21 -0
  186. data/rbi/lib/onebusaway-sdk/resources/stops_for_agency.rbi +21 -0
  187. data/rbi/lib/onebusaway-sdk/resources/stops_for_location.rbi +26 -0
  188. data/rbi/lib/onebusaway-sdk/resources/stops_for_route.rbi +23 -0
  189. data/rbi/lib/onebusaway-sdk/resources/trip.rbi +21 -0
  190. data/rbi/lib/onebusaway-sdk/resources/trip_details.rbi +34 -0
  191. data/rbi/lib/onebusaway-sdk/resources/trip_for_vehicle.rbi +32 -0
  192. data/rbi/lib/onebusaway-sdk/resources/trips_for_location.rbi +36 -0
  193. data/rbi/lib/onebusaway-sdk/resources/trips_for_route.rbi +24 -0
  194. data/rbi/lib/onebusaway-sdk/resources/vehicles_for_agency.rbi +22 -0
  195. data/rbi/lib/onebusaway-sdk/util.rbi +136 -0
  196. data/rbi/lib/onebusaway-sdk/version.rbi +5 -0
  197. data/sig/onebusaway-sdk/base_client.rbs +101 -0
  198. data/sig/onebusaway-sdk/base_model.rbs +244 -0
  199. data/sig/onebusaway-sdk/base_page.rbs +20 -0
  200. data/sig/onebusaway-sdk/client.rbs +80 -0
  201. data/sig/onebusaway-sdk/errors.rbs +98 -0
  202. data/sig/onebusaway-sdk/extern.rbs +4 -0
  203. data/sig/onebusaway-sdk/models/agencies_with_coverage_list_params.rbs +20 -0
  204. data/sig/onebusaway-sdk/models/agencies_with_coverage_list_response.rbs +85 -0
  205. data/sig/onebusaway-sdk/models/agency_retrieve_params.rbs +19 -0
  206. data/sig/onebusaway-sdk/models/agency_retrieve_response.rbs +115 -0
  207. data/sig/onebusaway-sdk/models/arrival_and_departure_list_params.rbs +38 -0
  208. data/sig/onebusaway-sdk/models/arrival_and_departure_list_response.rbs +447 -0
  209. data/sig/onebusaway-sdk/models/arrival_and_departure_retrieve_params.rbs +50 -0
  210. data/sig/onebusaway-sdk/models/arrival_and_departure_retrieve_response.rbs +427 -0
  211. data/sig/onebusaway-sdk/models/block_retrieve_params.rbs +19 -0
  212. data/sig/onebusaway-sdk/models/block_retrieve_response.rbs +201 -0
  213. data/sig/onebusaway-sdk/models/config_retrieve_params.rbs +19 -0
  214. data/sig/onebusaway-sdk/models/config_retrieve_response.rbs +227 -0
  215. data/sig/onebusaway-sdk/models/current_time_retrieve_params.rbs +19 -0
  216. data/sig/onebusaway-sdk/models/current_time_retrieve_response.rbs +64 -0
  217. data/sig/onebusaway-sdk/models/references.rbs +732 -0
  218. data/sig/onebusaway-sdk/models/report_problem_with_stop_retrieve_params.rbs +73 -0
  219. data/sig/onebusaway-sdk/models/report_problem_with_trip_retrieve_params.rbs +105 -0
  220. data/sig/onebusaway-sdk/models/response_wrapper.rbs +30 -0
  221. data/sig/onebusaway-sdk/models/route_ids_for_agency_list_params.rbs +20 -0
  222. data/sig/onebusaway-sdk/models/route_ids_for_agency_list_response.rbs +49 -0
  223. data/sig/onebusaway-sdk/models/route_retrieve_params.rbs +19 -0
  224. data/sig/onebusaway-sdk/models/route_retrieve_response.rbs +113 -0
  225. data/sig/onebusaway-sdk/models/routes_for_agency_list_params.rbs +20 -0
  226. data/sig/onebusaway-sdk/models/routes_for_agency_list_response.rbs +117 -0
  227. data/sig/onebusaway-sdk/models/routes_for_location_list_params.rbs +56 -0
  228. data/sig/onebusaway-sdk/models/routes_for_location_list_response.rbs +123 -0
  229. data/sig/onebusaway-sdk/models/schedule_for_route_retrieve_params.rbs +24 -0
  230. data/sig/onebusaway-sdk/models/schedule_for_route_retrieve_response.rbs +341 -0
  231. data/sig/onebusaway-sdk/models/schedule_for_stop_retrieve_params.rbs +24 -0
  232. data/sig/onebusaway-sdk/models/schedule_for_stop_retrieve_response.rbs +215 -0
  233. data/sig/onebusaway-sdk/models/search_for_route_list_params.rbs +30 -0
  234. data/sig/onebusaway-sdk/models/search_for_route_list_response.rbs +125 -0
  235. data/sig/onebusaway-sdk/models/search_for_stop_list_params.rbs +30 -0
  236. data/sig/onebusaway-sdk/models/search_for_stop_list_response.rbs +123 -0
  237. data/sig/onebusaway-sdk/models/shape_retrieve_params.rbs +19 -0
  238. data/sig/onebusaway-sdk/models/shape_retrieve_response.rbs +64 -0
  239. data/sig/onebusaway-sdk/models/stop_ids_for_agency_list_params.rbs +20 -0
  240. data/sig/onebusaway-sdk/models/stop_ids_for_agency_list_response.rbs +49 -0
  241. data/sig/onebusaway-sdk/models/stop_retrieve_params.rbs +19 -0
  242. data/sig/onebusaway-sdk/models/stop_retrieve_response.rbs +111 -0
  243. data/sig/onebusaway-sdk/models/stops_for_agency_list_params.rbs +19 -0
  244. data/sig/onebusaway-sdk/models/stops_for_agency_list_response.rbs +105 -0
  245. data/sig/onebusaway-sdk/models/stops_for_location_list_params.rbs +56 -0
  246. data/sig/onebusaway-sdk/models/stops_for_location_list_response.rbs +123 -0
  247. data/sig/onebusaway-sdk/models/stops_for_route_list_params.rbs +33 -0
  248. data/sig/onebusaway-sdk/models/stops_for_route_list_response.rbs +206 -0
  249. data/sig/onebusaway-sdk/models/trip_detail_retrieve_params.rbs +54 -0
  250. data/sig/onebusaway-sdk/models/trip_detail_retrieve_response.rbs +375 -0
  251. data/sig/onebusaway-sdk/models/trip_for_vehicle_retrieve_params.rbs +48 -0
  252. data/sig/onebusaway-sdk/models/trip_for_vehicle_retrieve_response.rbs +377 -0
  253. data/sig/onebusaway-sdk/models/trip_retrieve_params.rbs +19 -0
  254. data/sig/onebusaway-sdk/models/trip_retrieve_response.rbs +119 -0
  255. data/sig/onebusaway-sdk/models/trips_for_location_list_params.rbs +58 -0
  256. data/sig/onebusaway-sdk/models/trips_for_location_list_response.rbs +379 -0
  257. data/sig/onebusaway-sdk/models/trips_for_route_list_params.rbs +38 -0
  258. data/sig/onebusaway-sdk/models/trips_for_route_list_response.rbs +371 -0
  259. data/sig/onebusaway-sdk/models/vehicles_for_agency_list_params.rbs +24 -0
  260. data/sig/onebusaway-sdk/models/vehicles_for_agency_list_response.rbs +332 -0
  261. data/sig/onebusaway-sdk/pooled_net_requester.rbs +28 -0
  262. data/sig/onebusaway-sdk/request_options.rbs +42 -0
  263. data/sig/onebusaway-sdk/resources/agencies_with_coverage.rbs +16 -0
  264. data/sig/onebusaway-sdk/resources/agency.rbs +18 -0
  265. data/sig/onebusaway-sdk/resources/arrival_and_departure.rbs +37 -0
  266. data/sig/onebusaway-sdk/resources/block.rbs +18 -0
  267. data/sig/onebusaway-sdk/resources/config.rbs +16 -0
  268. data/sig/onebusaway-sdk/resources/current_time.rbs +16 -0
  269. data/sig/onebusaway-sdk/resources/report_problem_with_stop.rbs +23 -0
  270. data/sig/onebusaway-sdk/resources/report_problem_with_trip.rbs +28 -0
  271. data/sig/onebusaway-sdk/resources/route.rbs +18 -0
  272. data/sig/onebusaway-sdk/resources/route_ids_for_agency.rbs +18 -0
  273. data/sig/onebusaway-sdk/resources/routes_for_agency.rbs +18 -0
  274. data/sig/onebusaway-sdk/resources/routes_for_location.rbs +22 -0
  275. data/sig/onebusaway-sdk/resources/schedule_for_route.rbs +19 -0
  276. data/sig/onebusaway-sdk/resources/schedule_for_stop.rbs +19 -0
  277. data/sig/onebusaway-sdk/resources/search_for_route.rbs +18 -0
  278. data/sig/onebusaway-sdk/resources/search_for_stop.rbs +18 -0
  279. data/sig/onebusaway-sdk/resources/shape.rbs +18 -0
  280. data/sig/onebusaway-sdk/resources/stop.rbs +18 -0
  281. data/sig/onebusaway-sdk/resources/stop_ids_for_agency.rbs +18 -0
  282. data/sig/onebusaway-sdk/resources/stops_for_agency.rbs +18 -0
  283. data/sig/onebusaway-sdk/resources/stops_for_location.rbs +22 -0
  284. data/sig/onebusaway-sdk/resources/stops_for_route.rbs +20 -0
  285. data/sig/onebusaway-sdk/resources/trip.rbs +18 -0
  286. data/sig/onebusaway-sdk/resources/trip_details.rbs +23 -0
  287. data/sig/onebusaway-sdk/resources/trip_for_vehicle.rbs +22 -0
  288. data/sig/onebusaway-sdk/resources/trips_for_location.rbs +23 -0
  289. data/sig/onebusaway-sdk/resources/trips_for_route.rbs +21 -0
  290. data/sig/onebusaway-sdk/resources/vehicles_for_agency.rbs +19 -0
  291. data/sig/onebusaway-sdk/util.rbs +90 -0
  292. data/sig/onebusaway-sdk/version.rbs +3 -0
  293. metadata +350 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b3972cddd6e4f812ab01dc163dc681f89a9c9cfdac66b7c3e622c70f1078d944
4
+ data.tar.gz: 60794e144c2b2fca12dd3a41d62cea6b4df672df1718ada535bb09f1cb4ab8f1
5
+ SHA512:
6
+ metadata.gz: 3589ab16c97b353d8cae4574225f06ad6bf225a9049a7432dfb7f6ae2d19bebeafd31c7186603426ac23f3f7002bcd40d58147bb1e1d7f436f770d4b2aee95a1
7
+ data.tar.gz: 348ea1e6a603b47409649f52aa23ef4c0e4a7eec298ea349b00d0739c1d12a4b6a0fab4dedcd87a3d24204177408ec7292e0bb386cc7447ef11f02fb7e7050a7
data/README.md ADDED
@@ -0,0 +1,124 @@
1
+ # Onebusaway SDK Ruby API library
2
+
3
+ The Onebusaway SDK Ruby library provides convenient access to the Onebusaway SDK REST API from any Ruby 3.0.0+
4
+ application.
5
+
6
+ It is generated with [Stainless](https://www.stainlessapi.com/).
7
+
8
+ ## Documentation
9
+
10
+ Documentation for the most recent release of this gem can be found [on RubyDoc](https://gemdocs.org/gems/onebusaway-sdk/latest).
11
+
12
+ The underlying REST API documentation can be found on [developer.onebusaway.org](https://developer.onebusaway.org).
13
+
14
+ ## Installation
15
+
16
+ To use this gem during the beta, install directly from GitHub with Bundler by
17
+ adding the following to your application's `Gemfile`:
18
+
19
+ ```ruby
20
+ gem "onebusaway-sdk", git: "https://github.com/OneBusAway/ruby-sdk", branch: "main"
21
+ ```
22
+
23
+ To fetch an initial copy of the gem:
24
+
25
+ ```sh
26
+ bundle install
27
+ ```
28
+
29
+ To update the version used by your application when updates are pushed to
30
+ GitHub:
31
+
32
+ ```sh
33
+ bundle update onebusaway-sdk
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ ```ruby
39
+ require "bundler/setup"
40
+ require "onebusaway-sdk"
41
+
42
+ onebusaway_sdk = OnebusawaySDK::Client.new(
43
+ api_key: "My API Key" # defaults to ENV["ONEBUSAWAY_API_KEY"]
44
+ )
45
+
46
+ current_time = onebusaway_sdk.current_time.retrieve
47
+ ```
48
+
49
+ ### Errors
50
+
51
+ When the library is unable to connect to the API, or if the API returns a
52
+ non-success status code (i.e., 4xx or 5xx response), a subclass of
53
+ `OnebusawaySDK::Error` will be thrown:
54
+
55
+ ```ruby
56
+ begin
57
+ current_time = onebusaway_sdk.current_time.retrieve
58
+ rescue OnebusawaySDK::Error => e
59
+ puts(e.status) # 400
60
+ end
61
+ ```
62
+
63
+ Error codes are as followed:
64
+
65
+ | Cause | Error Type |
66
+ | ---------------- | -------------------------- |
67
+ | HTTP 400 | `BadRequestError` |
68
+ | HTTP 401 | `AuthenticationError` |
69
+ | HTTP 403 | `PermissionDeniedError` |
70
+ | HTTP 404 | `NotFoundError` |
71
+ | HTTP 409 | `ConflictError` |
72
+ | HTTP 422 | `UnprocessableEntityError` |
73
+ | HTTP 429 | `RateLimitError` |
74
+ | HTTP >=500 | `InternalServerError` |
75
+ | Other HTTP error | `APIStatusError` |
76
+ | Timeout | `APITimeoutError` |
77
+ | Network error | `APIConnectionError` |
78
+
79
+ ### Retries
80
+
81
+ Certain errors will be automatically retried 2 times by default, with a short
82
+ exponential backoff. Connection errors (for example, due to a network
83
+ connectivity problem), 408 Request Timeout, 409 Conflict, 429 Rate Limit, >=500 Internal errors,
84
+ and timeouts will all be retried by default.
85
+
86
+ You can use the `max_retries` option to configure or disable this:
87
+
88
+ ```ruby
89
+ # Configure the default for all requests:
90
+ onebusaway_sdk = OnebusawaySDK::Client.new(
91
+ max_retries: 0 # default is 2
92
+ )
93
+
94
+ # Or, configure per-request:
95
+ onebusaway_sdk.current_time.retrieve(request_options: {max_retries: 5})
96
+ ```
97
+
98
+ ### Timeouts
99
+
100
+ By default, requests will time out after 60 seconds.
101
+ Timeouts are applied separately to the initial connection and the overall request time,
102
+ so in some cases a request could wait 2\*timeout seconds before it fails.
103
+
104
+ You can use the `timeout` option to configure or disable this:
105
+
106
+ ```ruby
107
+ # Configure the default for all requests:
108
+ onebusaway_sdk = OnebusawaySDK::Client.new(
109
+ timeout: nil # default is 60
110
+ )
111
+
112
+ # Or, configure per-request:
113
+ onebusaway_sdk.current_time.retrieve(request_options: {timeout: 5})
114
+ ```
115
+
116
+ ## Versioning
117
+
118
+ This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. As the
119
+ library is in initial development and has a major version of `0`, APIs may change
120
+ at any time.
121
+
122
+ ## Requirements
123
+
124
+ Ruby 3.0 or higher.
@@ -0,0 +1,483 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OnebusawaySDK
4
+ # @private
5
+ #
6
+ # @abstract
7
+ #
8
+ class BaseClient
9
+ # from whatwg fetch spec
10
+ MAX_REDIRECTS = 20
11
+
12
+ # rubocop:disable Style/MutableConstant
13
+ PLATFORM_HEADERS = {
14
+ "x-stainless-arch" => OnebusawaySDK::Util.arch,
15
+ "x-stainless-lang" => "ruby",
16
+ "x-stainless-os" => OnebusawaySDK::Util.os,
17
+ "x-stainless-package-version" => OnebusawaySDK::VERSION,
18
+ "x-stainless-runtime" => ::RUBY_ENGINE,
19
+ "x-stainless-runtime-version" => ::RUBY_ENGINE_VERSION
20
+ }
21
+ # rubocop:enable Style/MutableConstant
22
+
23
+ class << self
24
+ # @private
25
+ #
26
+ # @param req [Hash{Symbol=>Object}]
27
+ #
28
+ # @raise [ArgumentError]
29
+ #
30
+ def validate!(req)
31
+ keys = [:method, :path, :query, :headers, :body, :unwrap, :page, :model, :options]
32
+ case req
33
+ in Hash
34
+ req.each_key do |k|
35
+ unless keys.include?(k)
36
+ raise ArgumentError.new("Request `req` keys must be one of #{keys}, got #{k.inspect}")
37
+ end
38
+ end
39
+ else
40
+ raise ArgumentError.new("Request `req` must be a Hash or RequestOptions, got #{req.inspect}")
41
+ end
42
+ end
43
+
44
+ # @private
45
+ #
46
+ # @param status [Integer]
47
+ # @param headers [Hash{String=>String}, Net::HTTPHeader]
48
+ #
49
+ # @return [Boolean]
50
+ #
51
+ def should_retry?(status, headers:)
52
+ coerced = OnebusawaySDK::Util.coerce_boolean(headers["x-should-retry"])
53
+ case [coerced, status]
54
+ in [true | false, _]
55
+ coerced
56
+ in [_, 408 | 409 | 429 | (500..)]
57
+ # retry on:
58
+ # 408: timeouts
59
+ # 409: locks
60
+ # 429: rate limits
61
+ # 500+: unknown errors
62
+ true
63
+ else
64
+ false
65
+ end
66
+ end
67
+
68
+ # @private
69
+ #
70
+ # @param request [Hash{Symbol=>Object}] .
71
+ #
72
+ # @option request [Symbol] :method
73
+ #
74
+ # @option request [URI::Generic] :url
75
+ #
76
+ # @option request [Hash{String=>String}] :headers
77
+ #
78
+ # @option request [Object] :body
79
+ #
80
+ # @option request [Integer] :max_retries
81
+ #
82
+ # @option request [Float] :timeout
83
+ #
84
+ # @param status [Integer]
85
+ #
86
+ # @param response_headers [Hash{String=>String}, Net::HTTPHeader]
87
+ #
88
+ # @return [Hash{Symbol=>Object}]
89
+ #
90
+ def follow_redirect(request, status:, response_headers:)
91
+ method, url, headers = request.fetch_values(:method, :url, :headers)
92
+ location =
93
+ Kernel.then do
94
+ URI.join(url, response_headers["location"])
95
+ rescue ArgumentError
96
+ message = "Server responded with status #{status} but no valid location header."
97
+ raise OnebusawaySDK::APIConnectionError.new(url: url, message: message)
98
+ end
99
+
100
+ request = {**request, url: location}
101
+
102
+ case [url.scheme, location.scheme]
103
+ in ["https", "http"]
104
+ message = "Tried to redirect to a insecure URL"
105
+ raise OnebusawaySDK::APIConnectionError.new(url: url, message: message)
106
+ else
107
+ nil
108
+ end
109
+
110
+ # from whatwg fetch spec
111
+ case [status, method]
112
+ in [301 | 302, :post] | [303, _]
113
+ drop = %w[content-encoding content-language content-length content-location content-type]
114
+ request = {
115
+ **request,
116
+ method: method == :head ? :head : :get,
117
+ headers: headers.except(*drop),
118
+ body: nil
119
+ }
120
+ else
121
+ end
122
+
123
+ # from undici
124
+ if OnebusawaySDK::Util.uri_origin(url) != OnebusawaySDK::Util.uri_origin(location)
125
+ drop = %w[authorization cookie host proxy-authorization]
126
+ request = {**request, headers: request.fetch(:headers).except(*drop)}
127
+ end
128
+
129
+ request
130
+ end
131
+ end
132
+
133
+ # @private
134
+ #
135
+ # @return [OnebusawaySDK::PooledNetRequester]
136
+ attr_accessor :requester
137
+
138
+ # @private
139
+ #
140
+ # @param base_url [String]
141
+ # @param timeout [Float]
142
+ # @param max_retries [Integer]
143
+ # @param initial_retry_delay [Float]
144
+ # @param max_retry_delay [Float]
145
+ # @param headers [Hash{String=>String, nil}]
146
+ # @param idempotency_header [String, nil]
147
+ #
148
+ def initialize(
149
+ base_url:,
150
+ timeout: 0.0,
151
+ max_retries: 0,
152
+ initial_retry_delay: 0.0,
153
+ max_retry_delay: 0.0,
154
+ headers: {},
155
+ idempotency_header: nil
156
+ )
157
+ @requester = OnebusawaySDK::PooledNetRequester.new
158
+ @headers = OnebusawaySDK::Util.normalized_headers(
159
+ self.class::PLATFORM_HEADERS,
160
+ {
161
+ "accept" => "application/json",
162
+ "content-type" => "application/json"
163
+ },
164
+ headers
165
+ )
166
+ @base_url = OnebusawaySDK::Util.parse_uri(base_url)
167
+ @idempotency_header = idempotency_header&.to_s&.downcase
168
+ @max_retries = max_retries
169
+ @timeout = timeout
170
+ @initial_retry_delay = initial_retry_delay
171
+ @max_retry_delay = max_retry_delay
172
+ end
173
+
174
+ # @private
175
+ #
176
+ # @return [Hash{String=>String}]
177
+ #
178
+ private def auth_query = {}
179
+
180
+ # @private
181
+ #
182
+ # @return [String]
183
+ #
184
+ private def generate_idempotency_key = "stainless-ruby-retry-#{SecureRandom.uuid}"
185
+
186
+ # @private
187
+ #
188
+ # @param req [Hash{Symbol=>Object}] .
189
+ #
190
+ # @option req [Symbol] :method
191
+ #
192
+ # @option req [String, Array<String>] :path
193
+ #
194
+ # @option req [Hash{String=>Array<String>, String, nil}, nil] :query
195
+ #
196
+ # @option req [Hash{String=>String, nil}, nil] :headers
197
+ #
198
+ # @option req [Object, nil] :body
199
+ #
200
+ # @option req [Symbol, nil] :unwrap
201
+ #
202
+ # @option req [Class, nil] :page
203
+ #
204
+ # @option req [OnebusawaySDK::Converter, Class, nil] :model
205
+ #
206
+ # @param opts [Hash{Symbol=>Object}] .
207
+ #
208
+ # @option opts [String, nil] :idempotency_key
209
+ #
210
+ # @option opts [Hash{String=>Array<String>, String, nil}, nil] :extra_query
211
+ #
212
+ # @option opts [Hash{String=>String, nil}, nil] :extra_headers
213
+ #
214
+ # @option opts [Hash{Symbol=>Object}, nil] :extra_body
215
+ #
216
+ # @option opts [Integer, nil] :max_retries
217
+ #
218
+ # @option opts [Float, nil] :timeout
219
+ #
220
+ # @return [Hash{Symbol=>Object}]
221
+ #
222
+ private def build_request(req, opts)
223
+ method, uninterpolated_path = req.fetch_values(:method, :path)
224
+
225
+ path = OnebusawaySDK::Util.interpolate_path(uninterpolated_path)
226
+
227
+ query = OnebusawaySDK::Util.deep_merge(auth_query, req[:query].to_h, opts[:extra_query].to_h)
228
+
229
+ headers = OnebusawaySDK::Util.normalized_headers(
230
+ @headers,
231
+ req[:headers].to_h,
232
+ opts[:extra_headers].to_h
233
+ )
234
+
235
+ if @idempotency_header &&
236
+ !headers.key?(@idempotency_header) &&
237
+ !Net::HTTP::IDEMPOTENT_METHODS_.include?(method.to_s.upcase)
238
+ headers[@idempotency_header] = opts.fetch(:idempotency_key) { generate_idempotency_key }
239
+ end
240
+
241
+ unless headers.key?("x-stainless-retry-count")
242
+ headers["x-stainless-retry-count"] = "0"
243
+ end
244
+
245
+ timeout = opts.fetch(:timeout, @timeout).to_f.clamp((0..))
246
+ unless headers.key?("x-stainless-read-timeout") || timeout.zero?
247
+ headers["x-stainless-read-timeout"] = timeout.to_s
248
+ end
249
+
250
+ headers.reject! { |_, v| v.to_s.empty? }
251
+
252
+ body =
253
+ case method
254
+ in :get | :head | :options | :trace
255
+ nil
256
+ else
257
+ OnebusawaySDK::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
258
+ end
259
+
260
+ headers, encoded = OnebusawaySDK::Util.encode_content(headers, body)
261
+ {
262
+ method: method,
263
+ url: OnebusawaySDK::Util.join_parsed_uri(@base_url, {**req, path: path, query: query}),
264
+ headers: headers,
265
+ body: encoded,
266
+ max_retries: opts.fetch(:max_retries, @max_retries),
267
+ timeout: timeout
268
+ }
269
+ end
270
+
271
+ # @private
272
+ #
273
+ # @param headers [Hash{String=>String}]
274
+ # @param retry_count [Integer]
275
+ #
276
+ # @return [Float]
277
+ #
278
+ private def retry_delay(headers, retry_count:)
279
+ # Non-standard extension
280
+ span = Float(headers["retry-after-ms"], exception: false)&.then { _1 / 1000 }
281
+ return span if span
282
+
283
+ retry_header = headers["retry-after"]
284
+ return span if (span = Float(retry_header, exception: false))
285
+
286
+ span = retry_header&.then do
287
+ Time.httpdate(_1) - Time.now
288
+ rescue ArgumentError
289
+ nil
290
+ end
291
+ return span if span
292
+
293
+ scale = retry_count**2
294
+ jitter = 1 - (0.25 * rand)
295
+ (@initial_retry_delay * scale * jitter).clamp(0, @max_retry_delay)
296
+ end
297
+
298
+ # @private
299
+ #
300
+ # @param request [Hash{Symbol=>Object}] .
301
+ #
302
+ # @option request [Symbol] :method
303
+ #
304
+ # @option request [URI::Generic] :url
305
+ #
306
+ # @option request [Hash{String=>String}] :headers
307
+ #
308
+ # @option request [Object] :body
309
+ #
310
+ # @option request [Integer] :max_retries
311
+ #
312
+ # @option request [Float] :timeout
313
+ #
314
+ # @param redirect_count [Integer]
315
+ #
316
+ # @param retry_count [Integer]
317
+ #
318
+ # @param send_retry_header [Boolean]
319
+ #
320
+ # @raise [OnebusawaySDK::APIError]
321
+ # @return [Array(Net::HTTPResponse, Enumerable)]
322
+ #
323
+ private def send_request(request, redirect_count:, retry_count:, send_retry_header:)
324
+ url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
325
+ input = {**request.except(:timeout), deadline: OnebusawaySDK::Util.monotonic_secs + timeout}
326
+
327
+ if send_retry_header
328
+ headers["x-stainless-retry-count"] = retry_count.to_s
329
+ end
330
+
331
+ begin
332
+ response, stream = @requester.execute(input)
333
+ status = Integer(response.code)
334
+ rescue OnebusawaySDK::APIConnectionError => e
335
+ status = e
336
+ end
337
+
338
+ # normally we want to drain the response body and reuse the HTTP session by clearing the socket buffers
339
+ # unless we hit a server error
340
+ srv_fault = (500...).include?(status)
341
+
342
+ case status
343
+ in ..299
344
+ [response, stream]
345
+ in 300..399 if redirect_count >= self.class::MAX_REDIRECTS
346
+ message = "Failed to complete the request within #{self.class::MAX_REDIRECTS} redirects."
347
+
348
+ stream.each { next }
349
+ raise OnebusawaySDK::APIConnectionError.new(url: url, message: message)
350
+ in 300..399
351
+ request = self.class.follow_redirect(request, status: status, response_headers: response)
352
+
353
+ stream.each { next }
354
+ send_request(
355
+ request,
356
+ redirect_count: redirect_count + 1,
357
+ retry_count: retry_count,
358
+ send_retry_header: send_retry_header
359
+ )
360
+ in OnebusawaySDK::APIConnectionError if retry_count >= max_retries
361
+ raise status
362
+ in (400..) if retry_count >= max_retries || (response && !self.class.should_retry?(
363
+ status,
364
+ headers: response
365
+ ))
366
+ decoded = OnebusawaySDK::Util.decode_content(response, stream: stream, suppress_error: true)
367
+
368
+ stream.each { srv_fault ? break : next }
369
+ raise OnebusawaySDK::APIStatusError.for(
370
+ url: url,
371
+ status: status,
372
+ body: decoded,
373
+ request: nil,
374
+ response: response
375
+ )
376
+ in (400..) | OnebusawaySDK::APIConnectionError
377
+ delay = retry_delay(response, retry_count: retry_count)
378
+
379
+ stream&.each { srv_fault ? break : next }
380
+ sleep(delay)
381
+
382
+ send_request(
383
+ request,
384
+ redirect_count: redirect_count,
385
+ retry_count: retry_count + 1,
386
+ send_retry_header: send_retry_header
387
+ )
388
+ end
389
+ end
390
+
391
+ # @private
392
+ #
393
+ # @param req [Hash{Symbol=>Object}] .
394
+ #
395
+ # @option req [Symbol] :method
396
+ #
397
+ # @option req [String, Array<String>] :path
398
+ #
399
+ # @option req [Hash{String=>Array<String>, String, nil}, nil] :query
400
+ #
401
+ # @option req [Hash{String=>String, nil}, nil] :headers
402
+ #
403
+ # @option req [Object, nil] :body
404
+ #
405
+ # @option req [Symbol, nil] :unwrap
406
+ #
407
+ # @option req [Class, nil] :page
408
+ #
409
+ # @option req [OnebusawaySDK::Converter, Class, nil] :model
410
+ #
411
+ # @option req [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :options
412
+ #
413
+ # @param headers [Hash{String=>String}, Net::HTTPHeader]
414
+ #
415
+ # @param stream [Enumerable]
416
+ #
417
+ # @return [Object]
418
+ #
419
+ private def parse_response(req, headers:, stream:)
420
+ decoded = OnebusawaySDK::Util.decode_content(headers, stream: stream)
421
+ unwrapped = OnebusawaySDK::Util.dig(decoded, req[:unwrap])
422
+
423
+ case [req[:page], req.fetch(:model, OnebusawaySDK::Unknown)]
424
+ in [Class => page, _]
425
+ page.new(client: self, req: req, headers: headers, unwrapped: unwrapped)
426
+ in [nil, Class | OnebusawaySDK::Converter => model]
427
+ OnebusawaySDK::Converter.coerce(model, unwrapped)
428
+ in [nil, nil]
429
+ unwrapped
430
+ end
431
+ end
432
+
433
+ # Execute the request specified by `req`. This is the method that all resource
434
+ # methods call into.
435
+ #
436
+ # @param req [Hash{Symbol=>Object}] .
437
+ #
438
+ # @option req [Symbol] :method
439
+ #
440
+ # @option req [String, Array<String>] :path
441
+ #
442
+ # @option req [Hash{String=>Array<String>, String, nil}, nil] :query
443
+ #
444
+ # @option req [Hash{String=>String, nil}, nil] :headers
445
+ #
446
+ # @option req [Object, nil] :body
447
+ #
448
+ # @option req [Symbol, nil] :unwrap
449
+ #
450
+ # @option req [Class, nil] :page
451
+ #
452
+ # @option req [OnebusawaySDK::Converter, Class, nil] :model
453
+ #
454
+ # @option req [OnebusawaySDK::RequestOptions, Hash{Symbol=>Object}, nil] :options
455
+ #
456
+ # @raise [OnebusawaySDK::APIError]
457
+ # @return [Object]
458
+ #
459
+ def request(req)
460
+ self.class.validate!(req)
461
+ opts = req[:options].to_h
462
+ OnebusawaySDK::RequestOptions.validate!(opts)
463
+ request = build_request(req.except(:options), opts)
464
+
465
+ # Don't send the current retry count in the headers if the caller modified the header defaults.
466
+ send_retry_header = request.fetch(:headers)["x-stainless-retry-count"] == "0"
467
+ response, stream = send_request(
468
+ request,
469
+ redirect_count: 0,
470
+ retry_count: 0,
471
+ send_retry_header: send_retry_header
472
+ )
473
+ parse_response(req, headers: response, stream: stream)
474
+ end
475
+
476
+ # @return [String]
477
+ #
478
+ def inspect
479
+ base_url = OnebusawaySDK::Util.unparse_uri(@base_url)
480
+ "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{base_url} max_retries=#{@max_retries} timeout=#{@timeout}>"
481
+ end
482
+ end
483
+ end