nextbillionai 0.1.0.pre.alpha.4

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 (794) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +44 -0
  4. data/README.md +259 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/nextbillionai/client.rb +168 -0
  7. data/lib/nextbillionai/errors.rb +214 -0
  8. data/lib/nextbillionai/file_part.rb +55 -0
  9. data/lib/nextbillionai/internal/transport/base_client.rb +573 -0
  10. data/lib/nextbillionai/internal/transport/pooled_net_requester.rb +209 -0
  11. data/lib/nextbillionai/internal/type/array_of.rb +167 -0
  12. data/lib/nextbillionai/internal/type/base_model.rb +539 -0
  13. data/lib/nextbillionai/internal/type/base_page.rb +55 -0
  14. data/lib/nextbillionai/internal/type/boolean.rb +77 -0
  15. data/lib/nextbillionai/internal/type/converter.rb +300 -0
  16. data/lib/nextbillionai/internal/type/enum.rb +156 -0
  17. data/lib/nextbillionai/internal/type/file_input.rb +108 -0
  18. data/lib/nextbillionai/internal/type/hash_of.rb +187 -0
  19. data/lib/nextbillionai/internal/type/request_parameters.rb +42 -0
  20. data/lib/nextbillionai/internal/type/union.rb +241 -0
  21. data/lib/nextbillionai/internal/type/unknown.rb +81 -0
  22. data/lib/nextbillionai/internal/util.rb +914 -0
  23. data/lib/nextbillionai/internal.rb +20 -0
  24. data/lib/nextbillionai/models/access.rb +27 -0
  25. data/lib/nextbillionai/models/address.rb +107 -0
  26. data/lib/nextbillionai/models/area_list_params.rb +26 -0
  27. data/lib/nextbillionai/models/area_list_response.rb +44 -0
  28. data/lib/nextbillionai/models/autocomplete_suggest_params.rb +99 -0
  29. data/lib/nextbillionai/models/autocomplete_suggest_response.rb +253 -0
  30. data/lib/nextbillionai/models/autosuggest_suggest_params.rb +99 -0
  31. data/lib/nextbillionai/models/autosuggest_suggest_response.rb +253 -0
  32. data/lib/nextbillionai/models/batch_create_params.rb +54 -0
  33. data/lib/nextbillionai/models/batch_create_response.rb +41 -0
  34. data/lib/nextbillionai/models/batch_retrieve_params.rb +35 -0
  35. data/lib/nextbillionai/models/batch_retrieve_response.rb +76 -0
  36. data/lib/nextbillionai/models/browse_search_params.rb +98 -0
  37. data/lib/nextbillionai/models/browse_search_response.rb +252 -0
  38. data/lib/nextbillionai/models/categories.rb +36 -0
  39. data/lib/nextbillionai/models/contact_object.rb +48 -0
  40. data/lib/nextbillionai/models/contacts.rb +47 -0
  41. data/lib/nextbillionai/models/direction_compute_route_params.rb +684 -0
  42. data/lib/nextbillionai/models/direction_compute_route_response.rb +629 -0
  43. data/lib/nextbillionai/models/discover_retrieve_params.rb +99 -0
  44. data/lib/nextbillionai/models/discover_retrieve_response.rb +253 -0
  45. data/lib/nextbillionai/models/distance_matrix/json_create_params.rb +16 -0
  46. data/lib/nextbillionai/models/distance_matrix/json_retrieve_params.rb +220 -0
  47. data/lib/nextbillionai/models/distance_matrix/json_retrieve_response.rb +82 -0
  48. data/lib/nextbillionai/models/fleetify/document_template_content_request.rb +189 -0
  49. data/lib/nextbillionai/models/fleetify/document_template_content_response.rb +168 -0
  50. data/lib/nextbillionai/models/fleetify/document_template_create_params.rb +50 -0
  51. data/lib/nextbillionai/models/fleetify/document_template_create_response.rb +79 -0
  52. data/lib/nextbillionai/models/fleetify/document_template_delete_params.rb +29 -0
  53. data/lib/nextbillionai/models/fleetify/document_template_delete_response.rb +32 -0
  54. data/lib/nextbillionai/models/fleetify/document_template_list_params.rb +28 -0
  55. data/lib/nextbillionai/models/fleetify/document_template_list_response.rb +85 -0
  56. data/lib/nextbillionai/models/fleetify/document_template_retrieve_params.rb +29 -0
  57. data/lib/nextbillionai/models/fleetify/document_template_retrieve_response.rb +80 -0
  58. data/lib/nextbillionai/models/fleetify/document_template_update_params.rb +50 -0
  59. data/lib/nextbillionai/models/fleetify/document_template_update_response.rb +78 -0
  60. data/lib/nextbillionai/models/fleetify/route_create_params.rb +276 -0
  61. data/lib/nextbillionai/models/fleetify/route_create_response.rb +196 -0
  62. data/lib/nextbillionai/models/fleetify/route_redispatch_params.rb +139 -0
  63. data/lib/nextbillionai/models/fleetify/route_redispatch_response.rb +432 -0
  64. data/lib/nextbillionai/models/fleetify/routes/document_submission.rb +12 -0
  65. data/lib/nextbillionai/models/fleetify/routes/route_step_completion_mode.rb +31 -0
  66. data/lib/nextbillionai/models/fleetify/routes/route_step_geofence_config.rb +53 -0
  67. data/lib/nextbillionai/models/fleetify/routes/route_steps_request.rb +174 -0
  68. data/lib/nextbillionai/models/fleetify/routes/route_steps_response.rb +273 -0
  69. data/lib/nextbillionai/models/fleetify/routes/step_complete_params.rb +69 -0
  70. data/lib/nextbillionai/models/fleetify/routes/step_create_params.rb +193 -0
  71. data/lib/nextbillionai/models/fleetify/routes/step_create_response.rb +40 -0
  72. data/lib/nextbillionai/models/fleetify/routes/step_delete_params.rb +37 -0
  73. data/lib/nextbillionai/models/fleetify/routes/step_delete_response.rb +33 -0
  74. data/lib/nextbillionai/models/fleetify/routes/step_update_params.rb +195 -0
  75. data/lib/nextbillionai/models/fleetify/routes/step_update_response.rb +40 -0
  76. data/lib/nextbillionai/models/fleetify/routing_response.rb +86 -0
  77. data/lib/nextbillionai/models/geocode_batch_create_params.rb +112 -0
  78. data/lib/nextbillionai/models/geocode_batch_create_response.rb +139 -0
  79. data/lib/nextbillionai/models/geocode_retrieve_params.rb +99 -0
  80. data/lib/nextbillionai/models/geocode_retrieve_response.rb +253 -0
  81. data/lib/nextbillionai/models/geocode_structured_retrieve_params.rb +132 -0
  82. data/lib/nextbillionai/models/geocode_structured_retrieve_response.rb +254 -0
  83. data/lib/nextbillionai/models/geofence/batch_create_params.rb +40 -0
  84. data/lib/nextbillionai/models/geofence/batch_create_response.rb +45 -0
  85. data/lib/nextbillionai/models/geofence/batch_delete_params.rb +37 -0
  86. data/lib/nextbillionai/models/geofence/batch_list_params.rb +36 -0
  87. data/lib/nextbillionai/models/geofence/batch_list_response.rb +47 -0
  88. data/lib/nextbillionai/models/geofence/console_preview_params.rb +16 -0
  89. data/lib/nextbillionai/models/geofence/console_preview_response.rb +41 -0
  90. data/lib/nextbillionai/models/geofence/console_search_params.rb +24 -0
  91. data/lib/nextbillionai/models/geofence/console_search_response.rb +62 -0
  92. data/lib/nextbillionai/models/geofence/polygon_geojson.rb +34 -0
  93. data/lib/nextbillionai/models/geofence.rb +202 -0
  94. data/lib/nextbillionai/models/geofence_contains_params.rb +56 -0
  95. data/lib/nextbillionai/models/geofence_contains_response.rb +99 -0
  96. data/lib/nextbillionai/models/geofence_create_params.rb +26 -0
  97. data/lib/nextbillionai/models/geofence_create_response.rb +49 -0
  98. data/lib/nextbillionai/models/geofence_delete_params.rb +26 -0
  99. data/lib/nextbillionai/models/geofence_entity_create.rb +328 -0
  100. data/lib/nextbillionai/models/geofence_list_params.rb +58 -0
  101. data/lib/nextbillionai/models/geofence_list_response.rb +52 -0
  102. data/lib/nextbillionai/models/geofence_retrieve_params.rb +26 -0
  103. data/lib/nextbillionai/models/geofence_retrieve_response.rb +41 -0
  104. data/lib/nextbillionai/models/geofence_update_params.rb +322 -0
  105. data/lib/nextbillionai/models/isochrone_compute_params.rb +153 -0
  106. data/lib/nextbillionai/models/isochrone_compute_response.rb +187 -0
  107. data/lib/nextbillionai/models/lookup_by_id_params.rb +35 -0
  108. data/lib/nextbillionai/models/lookup_by_id_response.rb +94 -0
  109. data/lib/nextbillionai/models/map_create_segment_params.rb +14 -0
  110. data/lib/nextbillionai/models/map_view.rb +43 -0
  111. data/lib/nextbillionai/models/mdm_create_distance_matrix_params.rb +385 -0
  112. data/lib/nextbillionai/models/mdm_create_distance_matrix_response.rb +50 -0
  113. data/lib/nextbillionai/models/mdm_get_distance_matrix_status_params.rb +35 -0
  114. data/lib/nextbillionai/models/mdm_get_distance_matrix_status_response.rb +64 -0
  115. data/lib/nextbillionai/models/multigeocode/place_create_params.rb +276 -0
  116. data/lib/nextbillionai/models/multigeocode/place_create_response.rb +24 -0
  117. data/lib/nextbillionai/models/multigeocode/place_delete_params.rb +28 -0
  118. data/lib/nextbillionai/models/multigeocode/place_delete_response.rb +31 -0
  119. data/lib/nextbillionai/models/multigeocode/place_item.rb +154 -0
  120. data/lib/nextbillionai/models/multigeocode/place_retrieve_params.rb +28 -0
  121. data/lib/nextbillionai/models/multigeocode/place_retrieve_response.rb +107 -0
  122. data/lib/nextbillionai/models/multigeocode/place_update_params.rb +118 -0
  123. data/lib/nextbillionai/models/multigeocode/place_update_response.rb +31 -0
  124. data/lib/nextbillionai/models/multigeocode_search_params.rb +135 -0
  125. data/lib/nextbillionai/models/multigeocode_search_response.rb +117 -0
  126. data/lib/nextbillionai/models/navigation_retrieve_route_params.rb +328 -0
  127. data/lib/nextbillionai/models/navigation_retrieve_route_response.rb +875 -0
  128. data/lib/nextbillionai/models/optimization/driver_assignment_assign_params.rb +679 -0
  129. data/lib/nextbillionai/models/optimization/driver_assignment_assign_response.rb +307 -0
  130. data/lib/nextbillionai/models/optimization/job.rb +460 -0
  131. data/lib/nextbillionai/models/optimization/location.rb +28 -0
  132. data/lib/nextbillionai/models/optimization/shipment.rb +589 -0
  133. data/lib/nextbillionai/models/optimization/v2_retrieve_result_params.rb +37 -0
  134. data/lib/nextbillionai/models/optimization/v2_retrieve_result_response.rb +743 -0
  135. data/lib/nextbillionai/models/optimization/v2_submit_params.rb +1841 -0
  136. data/lib/nextbillionai/models/optimization/vehicle.rb +92 -0
  137. data/lib/nextbillionai/models/optimization_compute_params.rb +212 -0
  138. data/lib/nextbillionai/models/optimization_compute_response.rb +347 -0
  139. data/lib/nextbillionai/models/optimization_re_optimize_params.rb +217 -0
  140. data/lib/nextbillionai/models/position.rb +26 -0
  141. data/lib/nextbillionai/models/post_response.rb +48 -0
  142. data/lib/nextbillionai/models/postalcode_retrieve_coordinates_params.rb +108 -0
  143. data/lib/nextbillionai/models/postalcode_retrieve_coordinates_response.rb +305 -0
  144. data/lib/nextbillionai/models/restriction_create_params.rb +51 -0
  145. data/lib/nextbillionai/models/restriction_delete_params.rb +26 -0
  146. data/lib/nextbillionai/models/restriction_delete_response.rb +25 -0
  147. data/lib/nextbillionai/models/restriction_list_by_bbox_params.rb +197 -0
  148. data/lib/nextbillionai/models/restriction_list_by_bbox_response.rb +9 -0
  149. data/lib/nextbillionai/models/restriction_list_params.rb +197 -0
  150. data/lib/nextbillionai/models/restriction_list_response.rb +62 -0
  151. data/lib/nextbillionai/models/restriction_retrieve_params.rb +34 -0
  152. data/lib/nextbillionai/models/restriction_set_state_params.rb +50 -0
  153. data/lib/nextbillionai/models/restriction_update_params.rb +37 -0
  154. data/lib/nextbillionai/models/restrictions_item_list_params.rb +123 -0
  155. data/lib/nextbillionai/models/restrictions_item_list_response.rb +171 -0
  156. data/lib/nextbillionai/models/revgeocode_retrieve_params.rb +77 -0
  157. data/lib/nextbillionai/models/revgeocode_retrieve_response.rb +253 -0
  158. data/lib/nextbillionai/models/rich_group_request.rb +292 -0
  159. data/lib/nextbillionai/models/rich_group_response.rb +249 -0
  160. data/lib/nextbillionai/models/route_report_create_params.rb +62 -0
  161. data/lib/nextbillionai/models/route_report_create_response.rb +452 -0
  162. data/lib/nextbillionai/models/skynet/asset/event_list_params.rb +96 -0
  163. data/lib/nextbillionai/models/skynet/asset/event_list_response.rb +361 -0
  164. data/lib/nextbillionai/models/skynet/asset/location_get_last_params.rb +48 -0
  165. data/lib/nextbillionai/models/skynet/asset/location_get_last_response.rb +65 -0
  166. data/lib/nextbillionai/models/skynet/asset/location_list_params.rb +130 -0
  167. data/lib/nextbillionai/models/skynet/asset/location_list_response.rb +242 -0
  168. data/lib/nextbillionai/models/skynet/asset/track_location.rb +124 -0
  169. data/lib/nextbillionai/models/skynet/asset_bind_params.rb +40 -0
  170. data/lib/nextbillionai/models/skynet/asset_create_params.rb +116 -0
  171. data/lib/nextbillionai/models/skynet/asset_create_response.rb +59 -0
  172. data/lib/nextbillionai/models/skynet/asset_delete_params.rb +46 -0
  173. data/lib/nextbillionai/models/skynet/asset_details.rb +223 -0
  174. data/lib/nextbillionai/models/skynet/asset_list_params.rb +120 -0
  175. data/lib/nextbillionai/models/skynet/asset_list_response.rb +67 -0
  176. data/lib/nextbillionai/models/skynet/asset_retrieve_params.rb +46 -0
  177. data/lib/nextbillionai/models/skynet/asset_retrieve_response.rb +55 -0
  178. data/lib/nextbillionai/models/skynet/asset_track_params.rb +184 -0
  179. data/lib/nextbillionai/models/skynet/asset_update_attributes_params.rb +48 -0
  180. data/lib/nextbillionai/models/skynet/asset_update_params.rb +104 -0
  181. data/lib/nextbillionai/models/skynet/config_retrieve_params.rb +46 -0
  182. data/lib/nextbillionai/models/skynet/config_retrieve_response.rb +71 -0
  183. data/lib/nextbillionai/models/skynet/config_test_webhook_params.rb +28 -0
  184. data/lib/nextbillionai/models/skynet/config_test_webhook_response.rb +28 -0
  185. data/lib/nextbillionai/models/skynet/config_update_params.rb +55 -0
  186. data/lib/nextbillionai/models/skynet/meta_data.rb +10 -0
  187. data/lib/nextbillionai/models/skynet/metadata.rb +10 -0
  188. data/lib/nextbillionai/models/skynet/monitor.rb +291 -0
  189. data/lib/nextbillionai/models/skynet/monitor_create_params.rb +418 -0
  190. data/lib/nextbillionai/models/skynet/monitor_create_response.rb +55 -0
  191. data/lib/nextbillionai/models/skynet/monitor_delete_params.rb +28 -0
  192. data/lib/nextbillionai/models/skynet/monitor_list_params.rb +89 -0
  193. data/lib/nextbillionai/models/skynet/monitor_list_response.rb +68 -0
  194. data/lib/nextbillionai/models/skynet/monitor_retrieve_params.rb +28 -0
  195. data/lib/nextbillionai/models/skynet/monitor_retrieve_response.rb +54 -0
  196. data/lib/nextbillionai/models/skynet/monitor_update_params.rb +360 -0
  197. data/lib/nextbillionai/models/skynet/namespaced_apikey_create_params.rb +39 -0
  198. data/lib/nextbillionai/models/skynet/namespaced_apikey_create_response.rb +101 -0
  199. data/lib/nextbillionai/models/skynet/namespaced_apikey_delete_params.rb +50 -0
  200. data/lib/nextbillionai/models/skynet/namespaced_apikey_delete_response.rb +35 -0
  201. data/lib/nextbillionai/models/skynet/pagination.rb +50 -0
  202. data/lib/nextbillionai/models/skynet/search/polygon_create_params.rb +295 -0
  203. data/lib/nextbillionai/models/skynet/search/polygon_get_params.rb +190 -0
  204. data/lib/nextbillionai/models/skynet/search_around_params.rb +186 -0
  205. data/lib/nextbillionai/models/skynet/search_bound_params.rb +180 -0
  206. data/lib/nextbillionai/models/skynet/search_response.rb +207 -0
  207. data/lib/nextbillionai/models/skynet/simple_resp.rb +33 -0
  208. data/lib/nextbillionai/models/skynet/trip_delete_params.rb +46 -0
  209. data/lib/nextbillionai/models/skynet/trip_end_params.rb +54 -0
  210. data/lib/nextbillionai/models/skynet/trip_get_summary_params.rb +46 -0
  211. data/lib/nextbillionai/models/skynet/trip_get_summary_response.rb +226 -0
  212. data/lib/nextbillionai/models/skynet/trip_retrieve_params.rb +46 -0
  213. data/lib/nextbillionai/models/skynet/trip_retrieve_response.rb +188 -0
  214. data/lib/nextbillionai/models/skynet/trip_start_params.rb +154 -0
  215. data/lib/nextbillionai/models/skynet/trip_start_response.rb +57 -0
  216. data/lib/nextbillionai/models/skynet/trip_stop.rb +40 -0
  217. data/lib/nextbillionai/models/skynet/trip_update_params.rb +148 -0
  218. data/lib/nextbillionai/models/skynet_subscribe_params.rb +91 -0
  219. data/lib/nextbillionai/models/skynet_subscribe_response.rb +46 -0
  220. data/lib/nextbillionai/models/snap_to_road_snap_params.rb +247 -0
  221. data/lib/nextbillionai/models/snap_to_road_snap_response.rb +272 -0
  222. data/lib/nextbillionai/models.rb +158 -0
  223. data/lib/nextbillionai/request_options.rb +78 -0
  224. data/lib/nextbillionai/resources/areas.rb +39 -0
  225. data/lib/nextbillionai/resources/autocomplete.rb +49 -0
  226. data/lib/nextbillionai/resources/autosuggest.rb +49 -0
  227. data/lib/nextbillionai/resources/batch.rb +70 -0
  228. data/lib/nextbillionai/resources/browse.rb +49 -0
  229. data/lib/nextbillionai/resources/directions.rb +89 -0
  230. data/lib/nextbillionai/resources/discover.rb +49 -0
  231. data/lib/nextbillionai/resources/distance_matrix/json.rb +79 -0
  232. data/lib/nextbillionai/resources/distance_matrix.rb +18 -0
  233. data/lib/nextbillionai/resources/fleetify/document_templates.rb +163 -0
  234. data/lib/nextbillionai/resources/fleetify/routes/steps.rb +202 -0
  235. data/lib/nextbillionai/resources/fleetify/routes.rb +92 -0
  236. data/lib/nextbillionai/resources/fleetify.rb +22 -0
  237. data/lib/nextbillionai/resources/geocode.rb +127 -0
  238. data/lib/nextbillionai/resources/geofence/batch.rb +101 -0
  239. data/lib/nextbillionai/resources/geofence/console.rb +77 -0
  240. data/lib/nextbillionai/resources/geofence.rb +224 -0
  241. data/lib/nextbillionai/resources/isochrone.rb +59 -0
  242. data/lib/nextbillionai/resources/lookup.rb +41 -0
  243. data/lib/nextbillionai/resources/map.rb +32 -0
  244. data/lib/nextbillionai/resources/mdm.rb +100 -0
  245. data/lib/nextbillionai/resources/multigeocode/place.rb +165 -0
  246. data/lib/nextbillionai/resources/multigeocode.rb +70 -0
  247. data/lib/nextbillionai/resources/navigation.rb +72 -0
  248. data/lib/nextbillionai/resources/optimization/driver_assignment.rb +53 -0
  249. data/lib/nextbillionai/resources/optimization/v2.rb +100 -0
  250. data/lib/nextbillionai/resources/optimization.rb +110 -0
  251. data/lib/nextbillionai/resources/postalcode.rb +49 -0
  252. data/lib/nextbillionai/resources/restrictions.rb +325 -0
  253. data/lib/nextbillionai/resources/restrictions_items.rb +44 -0
  254. data/lib/nextbillionai/resources/revgeocode.rb +45 -0
  255. data/lib/nextbillionai/resources/route_report.rb +45 -0
  256. data/lib/nextbillionai/resources/skynet/asset/event.rb +57 -0
  257. data/lib/nextbillionai/resources/skynet/asset/location.rb +88 -0
  258. data/lib/nextbillionai/resources/skynet/asset.rb +303 -0
  259. data/lib/nextbillionai/resources/skynet/config.rb +99 -0
  260. data/lib/nextbillionai/resources/skynet/monitor.rb +206 -0
  261. data/lib/nextbillionai/resources/skynet/namespaced_apikeys.rb +72 -0
  262. data/lib/nextbillionai/resources/skynet/search/polygon.rb +106 -0
  263. data/lib/nextbillionai/resources/skynet/search.rb +114 -0
  264. data/lib/nextbillionai/resources/skynet/trip.rb +220 -0
  265. data/lib/nextbillionai/resources/skynet.rb +67 -0
  266. data/lib/nextbillionai/resources/snap_to_roads.rb +62 -0
  267. data/lib/nextbillionai/version.rb +5 -0
  268. data/lib/nextbillionai.rb +294 -0
  269. data/manifest.yaml +15 -0
  270. data/rbi/nextbillionai/client.rbi +121 -0
  271. data/rbi/nextbillionai/errors.rbi +178 -0
  272. data/rbi/nextbillionai/file_part.rbi +37 -0
  273. data/rbi/nextbillionai/internal/transport/base_client.rbi +301 -0
  274. data/rbi/nextbillionai/internal/transport/pooled_net_requester.rbi +80 -0
  275. data/rbi/nextbillionai/internal/type/array_of.rbi +104 -0
  276. data/rbi/nextbillionai/internal/type/base_model.rbi +310 -0
  277. data/rbi/nextbillionai/internal/type/base_page.rbi +43 -0
  278. data/rbi/nextbillionai/internal/type/boolean.rbi +58 -0
  279. data/rbi/nextbillionai/internal/type/converter.rbi +167 -0
  280. data/rbi/nextbillionai/internal/type/enum.rbi +82 -0
  281. data/rbi/nextbillionai/internal/type/file_input.rbi +59 -0
  282. data/rbi/nextbillionai/internal/type/hash_of.rbi +104 -0
  283. data/rbi/nextbillionai/internal/type/request_parameters.rbi +31 -0
  284. data/rbi/nextbillionai/internal/type/union.rbi +121 -0
  285. data/rbi/nextbillionai/internal/type/unknown.rbi +58 -0
  286. data/rbi/nextbillionai/internal/util.rbi +487 -0
  287. data/rbi/nextbillionai/internal.rbi +18 -0
  288. data/rbi/nextbillionai/models/access.rbi +41 -0
  289. data/rbi/nextbillionai/models/address.rbi +163 -0
  290. data/rbi/nextbillionai/models/area_list_params.rbi +42 -0
  291. data/rbi/nextbillionai/models/area_list_response.rbi +84 -0
  292. data/rbi/nextbillionai/models/autocomplete_suggest_params.rbi +166 -0
  293. data/rbi/nextbillionai/models/autocomplete_suggest_response.rbi +539 -0
  294. data/rbi/nextbillionai/models/autosuggest_suggest_params.rbi +166 -0
  295. data/rbi/nextbillionai/models/autosuggest_suggest_response.rbi +539 -0
  296. data/rbi/nextbillionai/models/batch_create_params.rbi +103 -0
  297. data/rbi/nextbillionai/models/batch_create_response.rbi +67 -0
  298. data/rbi/nextbillionai/models/batch_retrieve_params.rbi +58 -0
  299. data/rbi/nextbillionai/models/batch_retrieve_response.rbi +152 -0
  300. data/rbi/nextbillionai/models/browse_search_params.rbi +167 -0
  301. data/rbi/nextbillionai/models/browse_search_response.rbi +530 -0
  302. data/rbi/nextbillionai/models/categories.rbi +54 -0
  303. data/rbi/nextbillionai/models/contact_object.rbi +98 -0
  304. data/rbi/nextbillionai/models/contacts.rbi +87 -0
  305. data/rbi/nextbillionai/models/direction_compute_route_params.rbi +1442 -0
  306. data/rbi/nextbillionai/models/direction_compute_route_response.rbi +1364 -0
  307. data/rbi/nextbillionai/models/discover_retrieve_params.rbi +166 -0
  308. data/rbi/nextbillionai/models/discover_retrieve_response.rbi +539 -0
  309. data/rbi/nextbillionai/models/distance_matrix/json_create_params.rbi +34 -0
  310. data/rbi/nextbillionai/models/distance_matrix/json_retrieve_params.rbi +439 -0
  311. data/rbi/nextbillionai/models/distance_matrix/json_retrieve_response.rbi +202 -0
  312. data/rbi/nextbillionai/models/fleetify/document_template_content_request.rbi +379 -0
  313. data/rbi/nextbillionai/models/fleetify/document_template_content_response.rbi +330 -0
  314. data/rbi/nextbillionai/models/fleetify/document_template_create_params.rbi +80 -0
  315. data/rbi/nextbillionai/models/fleetify/document_template_create_response.rbi +168 -0
  316. data/rbi/nextbillionai/models/fleetify/document_template_delete_params.rbi +47 -0
  317. data/rbi/nextbillionai/models/fleetify/document_template_delete_response.rbi +46 -0
  318. data/rbi/nextbillionai/models/fleetify/document_template_list_params.rbi +47 -0
  319. data/rbi/nextbillionai/models/fleetify/document_template_list_response.rbi +185 -0
  320. data/rbi/nextbillionai/models/fleetify/document_template_retrieve_params.rbi +47 -0
  321. data/rbi/nextbillionai/models/fleetify/document_template_retrieve_response.rbi +170 -0
  322. data/rbi/nextbillionai/models/fleetify/document_template_update_params.rbi +95 -0
  323. data/rbi/nextbillionai/models/fleetify/document_template_update_response.rbi +166 -0
  324. data/rbi/nextbillionai/models/fleetify/route_create_params.rbi +595 -0
  325. data/rbi/nextbillionai/models/fleetify/route_create_response.rbi +360 -0
  326. data/rbi/nextbillionai/models/fleetify/route_redispatch_params.rbi +307 -0
  327. data/rbi/nextbillionai/models/fleetify/route_redispatch_response.rbi +810 -0
  328. data/rbi/nextbillionai/models/fleetify/routes/document_submission.rbi +12 -0
  329. data/rbi/nextbillionai/models/fleetify/routes/route_step_completion_mode.rbi +59 -0
  330. data/rbi/nextbillionai/models/fleetify/routes/route_step_geofence_config.rbi +111 -0
  331. data/rbi/nextbillionai/models/fleetify/routes/route_steps_request.rbi +362 -0
  332. data/rbi/nextbillionai/models/fleetify/routes/route_steps_response.rbi +538 -0
  333. data/rbi/nextbillionai/models/fleetify/routes/step_complete_params.rbi +107 -0
  334. data/rbi/nextbillionai/models/fleetify/routes/step_create_params.rbi +384 -0
  335. data/rbi/nextbillionai/models/fleetify/routes/step_create_response.rbi +77 -0
  336. data/rbi/nextbillionai/models/fleetify/routes/step_delete_params.rbi +58 -0
  337. data/rbi/nextbillionai/models/fleetify/routes/step_delete_response.rbi +50 -0
  338. data/rbi/nextbillionai/models/fleetify/routes/step_update_params.rbi +393 -0
  339. data/rbi/nextbillionai/models/fleetify/routes/step_update_response.rbi +77 -0
  340. data/rbi/nextbillionai/models/fleetify/routing_response.rbi +136 -0
  341. data/rbi/nextbillionai/models/geocode_batch_create_params.rbi +191 -0
  342. data/rbi/nextbillionai/models/geocode_batch_create_response.rbi +268 -0
  343. data/rbi/nextbillionai/models/geocode_retrieve_params.rbi +166 -0
  344. data/rbi/nextbillionai/models/geocode_retrieve_response.rbi +539 -0
  345. data/rbi/nextbillionai/models/geocode_structured_retrieve_params.rbi +207 -0
  346. data/rbi/nextbillionai/models/geocode_structured_retrieve_response.rbi +543 -0
  347. data/rbi/nextbillionai/models/geofence/batch_create_params.rbi +69 -0
  348. data/rbi/nextbillionai/models/geofence/batch_create_response.rbi +97 -0
  349. data/rbi/nextbillionai/models/geofence/batch_delete_params.rbi +63 -0
  350. data/rbi/nextbillionai/models/geofence/batch_list_params.rbi +58 -0
  351. data/rbi/nextbillionai/models/geofence/batch_list_response.rbi +96 -0
  352. data/rbi/nextbillionai/models/geofence/console_preview_params.rbi +34 -0
  353. data/rbi/nextbillionai/models/geofence/console_preview_response.rbi +104 -0
  354. data/rbi/nextbillionai/models/geofence/console_search_params.rbi +45 -0
  355. data/rbi/nextbillionai/models/geofence/console_search_response.rbi +138 -0
  356. data/rbi/nextbillionai/models/geofence/polygon_geojson.rbi +56 -0
  357. data/rbi/nextbillionai/models/geofence.rbi +326 -0
  358. data/rbi/nextbillionai/models/geofence_contains_params.rbi +90 -0
  359. data/rbi/nextbillionai/models/geofence_contains_response.rbi +255 -0
  360. data/rbi/nextbillionai/models/geofence_create_params.rbi +45 -0
  361. data/rbi/nextbillionai/models/geofence_create_response.rbi +97 -0
  362. data/rbi/nextbillionai/models/geofence_delete_params.rbi +45 -0
  363. data/rbi/nextbillionai/models/geofence_entity_create.rbi +603 -0
  364. data/rbi/nextbillionai/models/geofence_list_params.rbi +97 -0
  365. data/rbi/nextbillionai/models/geofence_list_response.rbi +111 -0
  366. data/rbi/nextbillionai/models/geofence_retrieve_params.rbi +45 -0
  367. data/rbi/nextbillionai/models/geofence_retrieve_response.rbi +96 -0
  368. data/rbi/nextbillionai/models/geofence_update_params.rbi +601 -0
  369. data/rbi/nextbillionai/models/isochrone_compute_params.rbi +248 -0
  370. data/rbi/nextbillionai/models/isochrone_compute_response.rbi +369 -0
  371. data/rbi/nextbillionai/models/lookup_by_id_params.rbi +58 -0
  372. data/rbi/nextbillionai/models/lookup_by_id_response.rbi +174 -0
  373. data/rbi/nextbillionai/models/map_create_segment_params.rbi +32 -0
  374. data/rbi/nextbillionai/models/map_view.rbi +70 -0
  375. data/rbi/nextbillionai/models/mdm_create_distance_matrix_params.rbi +868 -0
  376. data/rbi/nextbillionai/models/mdm_create_distance_matrix_response.rbi +88 -0
  377. data/rbi/nextbillionai/models/mdm_get_distance_matrix_status_params.rbi +58 -0
  378. data/rbi/nextbillionai/models/mdm_get_distance_matrix_status_response.rbi +141 -0
  379. data/rbi/nextbillionai/models/multigeocode/place_create_params.rbi +518 -0
  380. data/rbi/nextbillionai/models/multigeocode/place_create_response.rbi +39 -0
  381. data/rbi/nextbillionai/models/multigeocode/place_delete_params.rbi +47 -0
  382. data/rbi/nextbillionai/models/multigeocode/place_delete_response.rbi +46 -0
  383. data/rbi/nextbillionai/models/multigeocode/place_item.rbi +255 -0
  384. data/rbi/nextbillionai/models/multigeocode/place_retrieve_params.rbi +47 -0
  385. data/rbi/nextbillionai/models/multigeocode/place_retrieve_response.rbi +226 -0
  386. data/rbi/nextbillionai/models/multigeocode/place_update_params.rbi +245 -0
  387. data/rbi/nextbillionai/models/multigeocode/place_update_response.rbi +46 -0
  388. data/rbi/nextbillionai/models/multigeocode_search_params.rbi +205 -0
  389. data/rbi/nextbillionai/models/multigeocode_search_response.rbi +277 -0
  390. data/rbi/nextbillionai/models/navigation_retrieve_route_params.rbi +692 -0
  391. data/rbi/nextbillionai/models/navigation_retrieve_route_response.rbi +1894 -0
  392. data/rbi/nextbillionai/models/optimization/driver_assignment_assign_params.rbi +1306 -0
  393. data/rbi/nextbillionai/models/optimization/driver_assignment_assign_response.rbi +720 -0
  394. data/rbi/nextbillionai/models/optimization/job.rbi +798 -0
  395. data/rbi/nextbillionai/models/optimization/location.rbi +39 -0
  396. data/rbi/nextbillionai/models/optimization/shipment.rbi +1030 -0
  397. data/rbi/nextbillionai/models/optimization/v2_retrieve_result_params.rbi +60 -0
  398. data/rbi/nextbillionai/models/optimization/v2_retrieve_result_response.rbi +1318 -0
  399. data/rbi/nextbillionai/models/optimization/v2_submit_params.rbi +3695 -0
  400. data/rbi/nextbillionai/models/optimization/vehicle.rbi +168 -0
  401. data/rbi/nextbillionai/models/optimization_compute_params.rbi +453 -0
  402. data/rbi/nextbillionai/models/optimization_compute_response.rbi +885 -0
  403. data/rbi/nextbillionai/models/optimization_re_optimize_params.rbi +439 -0
  404. data/rbi/nextbillionai/models/position.rbi +40 -0
  405. data/rbi/nextbillionai/models/post_response.rbi +81 -0
  406. data/rbi/nextbillionai/models/postalcode_retrieve_coordinates_params.rbi +211 -0
  407. data/rbi/nextbillionai/models/postalcode_retrieve_coordinates_response.rbi +661 -0
  408. data/rbi/nextbillionai/models/restriction_create_params.rbi +119 -0
  409. data/rbi/nextbillionai/models/restriction_delete_params.rbi +45 -0
  410. data/rbi/nextbillionai/models/restriction_delete_response.rbi +42 -0
  411. data/rbi/nextbillionai/models/restriction_list_by_bbox_params.rbi +447 -0
  412. data/rbi/nextbillionai/models/restriction_list_by_bbox_response.rbi +13 -0
  413. data/rbi/nextbillionai/models/restriction_list_params.rbi +414 -0
  414. data/rbi/nextbillionai/models/restriction_list_response.rbi +120 -0
  415. data/rbi/nextbillionai/models/restriction_retrieve_params.rbi +59 -0
  416. data/rbi/nextbillionai/models/restriction_set_state_params.rbi +99 -0
  417. data/rbi/nextbillionai/models/restriction_update_params.rbi +65 -0
  418. data/rbi/nextbillionai/models/restrictions_item_list_params.rbi +325 -0
  419. data/rbi/nextbillionai/models/restrictions_item_list_response.rbi +436 -0
  420. data/rbi/nextbillionai/models/revgeocode_retrieve_params.rbi +132 -0
  421. data/rbi/nextbillionai/models/revgeocode_retrieve_response.rbi +539 -0
  422. data/rbi/nextbillionai/models/rich_group_request.rbi +507 -0
  423. data/rbi/nextbillionai/models/rich_group_response.rbi +464 -0
  424. data/rbi/nextbillionai/models/route_report_create_params.rbi +121 -0
  425. data/rbi/nextbillionai/models/route_report_create_response.rbi +982 -0
  426. data/rbi/nextbillionai/models/skynet/asset/event_list_params.rbi +177 -0
  427. data/rbi/nextbillionai/models/skynet/asset/event_list_response.rbi +721 -0
  428. data/rbi/nextbillionai/models/skynet/asset/location_get_last_params.rbi +106 -0
  429. data/rbi/nextbillionai/models/skynet/asset/location_get_last_response.rbi +136 -0
  430. data/rbi/nextbillionai/models/skynet/asset/location_list_params.rbi +265 -0
  431. data/rbi/nextbillionai/models/skynet/asset/location_list_response.rbi +503 -0
  432. data/rbi/nextbillionai/models/skynet/asset/track_location.rbi +209 -0
  433. data/rbi/nextbillionai/models/skynet/asset_bind_params.rbi +66 -0
  434. data/rbi/nextbillionai/models/skynet/asset_create_params.rbi +208 -0
  435. data/rbi/nextbillionai/models/skynet/asset_create_response.rbi +114 -0
  436. data/rbi/nextbillionai/models/skynet/asset_delete_params.rbi +100 -0
  437. data/rbi/nextbillionai/models/skynet/asset_details.rbi +387 -0
  438. data/rbi/nextbillionai/models/skynet/asset_list_params.rbi +213 -0
  439. data/rbi/nextbillionai/models/skynet/asset_list_response.rbi +140 -0
  440. data/rbi/nextbillionai/models/skynet/asset_retrieve_params.rbi +101 -0
  441. data/rbi/nextbillionai/models/skynet/asset_retrieve_response.rbi +122 -0
  442. data/rbi/nextbillionai/models/skynet/asset_track_params.rbi +329 -0
  443. data/rbi/nextbillionai/models/skynet/asset_update_attributes_params.rbi +82 -0
  444. data/rbi/nextbillionai/models/skynet/asset_update_params.rbi +189 -0
  445. data/rbi/nextbillionai/models/skynet/config_retrieve_params.rbi +104 -0
  446. data/rbi/nextbillionai/models/skynet/config_retrieve_response.rbi +163 -0
  447. data/rbi/nextbillionai/models/skynet/config_test_webhook_params.rbi +47 -0
  448. data/rbi/nextbillionai/models/skynet/config_test_webhook_response.rbi +47 -0
  449. data/rbi/nextbillionai/models/skynet/config_update_params.rbi +114 -0
  450. data/rbi/nextbillionai/models/skynet/meta_data.rbi +9 -0
  451. data/rbi/nextbillionai/models/skynet/metadata.rbi +9 -0
  452. data/rbi/nextbillionai/models/skynet/monitor.rbi +568 -0
  453. data/rbi/nextbillionai/models/skynet/monitor_create_params.rbi +792 -0
  454. data/rbi/nextbillionai/models/skynet/monitor_create_response.rbi +114 -0
  455. data/rbi/nextbillionai/models/skynet/monitor_delete_params.rbi +47 -0
  456. data/rbi/nextbillionai/models/skynet/monitor_list_params.rbi +166 -0
  457. data/rbi/nextbillionai/models/skynet/monitor_list_response.rbi +143 -0
  458. data/rbi/nextbillionai/models/skynet/monitor_retrieve_params.rbi +47 -0
  459. data/rbi/nextbillionai/models/skynet/monitor_retrieve_response.rbi +119 -0
  460. data/rbi/nextbillionai/models/skynet/monitor_update_params.rbi +690 -0
  461. data/rbi/nextbillionai/models/skynet/namespaced_apikey_create_params.rbi +64 -0
  462. data/rbi/nextbillionai/models/skynet/namespaced_apikey_create_response.rbi +182 -0
  463. data/rbi/nextbillionai/models/skynet/namespaced_apikey_delete_params.rbi +78 -0
  464. data/rbi/nextbillionai/models/skynet/namespaced_apikey_delete_response.rbi +52 -0
  465. data/rbi/nextbillionai/models/skynet/pagination.rbi +84 -0
  466. data/rbi/nextbillionai/models/skynet/search/polygon_create_params.rbi +583 -0
  467. data/rbi/nextbillionai/models/skynet/search/polygon_get_params.rbi +358 -0
  468. data/rbi/nextbillionai/models/skynet/search_around_params.rbi +346 -0
  469. data/rbi/nextbillionai/models/skynet/search_bound_params.rbi +341 -0
  470. data/rbi/nextbillionai/models/skynet/search_response.rbi +390 -0
  471. data/rbi/nextbillionai/models/skynet/simple_resp.rbi +52 -0
  472. data/rbi/nextbillionai/models/skynet/trip_delete_params.rbi +99 -0
  473. data/rbi/nextbillionai/models/skynet/trip_end_params.rbi +104 -0
  474. data/rbi/nextbillionai/models/skynet/trip_get_summary_params.rbi +104 -0
  475. data/rbi/nextbillionai/models/skynet/trip_get_summary_response.rbi +414 -0
  476. data/rbi/nextbillionai/models/skynet/trip_retrieve_params.rbi +101 -0
  477. data/rbi/nextbillionai/models/skynet/trip_retrieve_response.rbi +354 -0
  478. data/rbi/nextbillionai/models/skynet/trip_start_params.rbi +279 -0
  479. data/rbi/nextbillionai/models/skynet/trip_start_response.rbi +112 -0
  480. data/rbi/nextbillionai/models/skynet/trip_stop.rbi +69 -0
  481. data/rbi/nextbillionai/models/skynet/trip_update_params.rbi +274 -0
  482. data/rbi/nextbillionai/models/skynet_subscribe_params.rbi +170 -0
  483. data/rbi/nextbillionai/models/skynet_subscribe_response.rbi +75 -0
  484. data/rbi/nextbillionai/models/snap_to_road_snap_params.rbi +492 -0
  485. data/rbi/nextbillionai/models/snap_to_road_snap_response.rbi +546 -0
  486. data/rbi/nextbillionai/models.rbi +125 -0
  487. data/rbi/nextbillionai/request_options.rbi +59 -0
  488. data/rbi/nextbillionai/resources/areas.rbi +27 -0
  489. data/rbi/nextbillionai/resources/autocomplete.rbi +75 -0
  490. data/rbi/nextbillionai/resources/autosuggest.rbi +75 -0
  491. data/rbi/nextbillionai/resources/batch.rbi +50 -0
  492. data/rbi/nextbillionai/resources/browse.rbi +74 -0
  493. data/rbi/nextbillionai/resources/directions.rbi +320 -0
  494. data/rbi/nextbillionai/resources/discover.rbi +75 -0
  495. data/rbi/nextbillionai/resources/distance_matrix/json.rbi +129 -0
  496. data/rbi/nextbillionai/resources/distance_matrix.rbi +15 -0
  497. data/rbi/nextbillionai/resources/fleetify/document_templates.rbi +130 -0
  498. data/rbi/nextbillionai/resources/fleetify/routes/steps.rbi +270 -0
  499. data/rbi/nextbillionai/resources/fleetify/routes.rbi +114 -0
  500. data/rbi/nextbillionai/resources/fleetify.rbi +18 -0
  501. data/rbi/nextbillionai/resources/geocode.rbi +164 -0
  502. data/rbi/nextbillionai/resources/geofence/batch.rbi +70 -0
  503. data/rbi/nextbillionai/resources/geofence/console.rbi +89 -0
  504. data/rbi/nextbillionai/resources/geofence.rbi +249 -0
  505. data/rbi/nextbillionai/resources/isochrone.rbi +89 -0
  506. data/rbi/nextbillionai/resources/lookup.rbi +31 -0
  507. data/rbi/nextbillionai/resources/map.rbi +19 -0
  508. data/rbi/nextbillionai/resources/mdm.rbi +182 -0
  509. data/rbi/nextbillionai/resources/multigeocode/place.rbi +155 -0
  510. data/rbi/nextbillionai/resources/multigeocode.rbi +73 -0
  511. data/rbi/nextbillionai/resources/navigation.rbi +152 -0
  512. data/rbi/nextbillionai/resources/optimization/driver_assignment.rbi +54 -0
  513. data/rbi/nextbillionai/resources/optimization/v2.rbi +217 -0
  514. data/rbi/nextbillionai/resources/optimization.rbi +165 -0
  515. data/rbi/nextbillionai/resources/postalcode.rbi +54 -0
  516. data/rbi/nextbillionai/resources/restrictions.rbi +487 -0
  517. data/rbi/nextbillionai/resources/restrictions_items.rbi +46 -0
  518. data/rbi/nextbillionai/resources/revgeocode.rbi +63 -0
  519. data/rbi/nextbillionai/resources/route_report.rbi +41 -0
  520. data/rbi/nextbillionai/resources/skynet/asset/event.rbi +64 -0
  521. data/rbi/nextbillionai/resources/skynet/asset/location.rbi +106 -0
  522. data/rbi/nextbillionai/resources/skynet/asset.rbi +336 -0
  523. data/rbi/nextbillionai/resources/skynet/config.rbi +71 -0
  524. data/rbi/nextbillionai/resources/skynet/monitor.rbi +305 -0
  525. data/rbi/nextbillionai/resources/skynet/namespaced_apikeys.rbi +66 -0
  526. data/rbi/nextbillionai/resources/skynet/search/polygon.rbi +175 -0
  527. data/rbi/nextbillionai/resources/skynet/search.rbi +191 -0
  528. data/rbi/nextbillionai/resources/skynet/trip.rbi +210 -0
  529. data/rbi/nextbillionai/resources/skynet.rbi +60 -0
  530. data/rbi/nextbillionai/resources/snap_to_roads.rbi +103 -0
  531. data/rbi/nextbillionai/version.rbi +5 -0
  532. data/sig/nextbillionai/client.rbs +74 -0
  533. data/sig/nextbillionai/errors.rbs +110 -0
  534. data/sig/nextbillionai/file_part.rbs +21 -0
  535. data/sig/nextbillionai/internal/transport/base_client.rbs +131 -0
  536. data/sig/nextbillionai/internal/transport/pooled_net_requester.rbs +45 -0
  537. data/sig/nextbillionai/internal/type/array_of.rbs +48 -0
  538. data/sig/nextbillionai/internal/type/base_model.rbs +104 -0
  539. data/sig/nextbillionai/internal/type/base_page.rbs +24 -0
  540. data/sig/nextbillionai/internal/type/boolean.rbs +26 -0
  541. data/sig/nextbillionai/internal/type/converter.rbs +62 -0
  542. data/sig/nextbillionai/internal/type/enum.rbs +32 -0
  543. data/sig/nextbillionai/internal/type/file_input.rbs +25 -0
  544. data/sig/nextbillionai/internal/type/hash_of.rbs +48 -0
  545. data/sig/nextbillionai/internal/type/request_parameters.rbs +19 -0
  546. data/sig/nextbillionai/internal/type/union.rbs +52 -0
  547. data/sig/nextbillionai/internal/type/unknown.rbs +26 -0
  548. data/sig/nextbillionai/internal/util.rbs +185 -0
  549. data/sig/nextbillionai/internal.rbs +10 -0
  550. data/sig/nextbillionai/models/access.rbs +19 -0
  551. data/sig/nextbillionai/models/address.rbs +92 -0
  552. data/sig/nextbillionai/models/area_list_params.rbs +23 -0
  553. data/sig/nextbillionai/models/area_list_response.rbs +43 -0
  554. data/sig/nextbillionai/models/autocomplete_suggest_params.rbs +59 -0
  555. data/sig/nextbillionai/models/autocomplete_suggest_response.rbs +236 -0
  556. data/sig/nextbillionai/models/autosuggest_suggest_params.rbs +59 -0
  557. data/sig/nextbillionai/models/autosuggest_suggest_response.rbs +236 -0
  558. data/sig/nextbillionai/models/batch_create_params.rbs +47 -0
  559. data/sig/nextbillionai/models/batch_create_response.rbs +24 -0
  560. data/sig/nextbillionai/models/batch_retrieve_params.rbs +28 -0
  561. data/sig/nextbillionai/models/batch_retrieve_response.rbs +61 -0
  562. data/sig/nextbillionai/models/browse_search_params.rbs +61 -0
  563. data/sig/nextbillionai/models/browse_search_response.rbs +234 -0
  564. data/sig/nextbillionai/models/categories.rbs +23 -0
  565. data/sig/nextbillionai/models/contact_object.rbs +50 -0
  566. data/sig/nextbillionai/models/contacts.rbs +69 -0
  567. data/sig/nextbillionai/models/direction_compute_route_params.rbs +391 -0
  568. data/sig/nextbillionai/models/direction_compute_route_response.rbs +554 -0
  569. data/sig/nextbillionai/models/discover_retrieve_params.rbs +59 -0
  570. data/sig/nextbillionai/models/discover_retrieve_response.rbs +234 -0
  571. data/sig/nextbillionai/models/distance_matrix/json_create_params.rbs +17 -0
  572. data/sig/nextbillionai/models/distance_matrix/json_retrieve_params.rbs +114 -0
  573. data/sig/nextbillionai/models/distance_matrix/json_retrieve_response.rbs +77 -0
  574. data/sig/nextbillionai/models/fleetify/document_template_content_request.rbs +148 -0
  575. data/sig/nextbillionai/models/fleetify/document_template_content_response.rbs +135 -0
  576. data/sig/nextbillionai/models/fleetify/document_template_create_params.rbs +38 -0
  577. data/sig/nextbillionai/models/fleetify/document_template_create_response.rbs +75 -0
  578. data/sig/nextbillionai/models/fleetify/document_template_delete_params.rbs +25 -0
  579. data/sig/nextbillionai/models/fleetify/document_template_delete_response.rbs +21 -0
  580. data/sig/nextbillionai/models/fleetify/document_template_list_params.rbs +25 -0
  581. data/sig/nextbillionai/models/fleetify/document_template_list_response.rbs +75 -0
  582. data/sig/nextbillionai/models/fleetify/document_template_retrieve_params.rbs +25 -0
  583. data/sig/nextbillionai/models/fleetify/document_template_retrieve_response.rbs +75 -0
  584. data/sig/nextbillionai/models/fleetify/document_template_update_params.rbs +44 -0
  585. data/sig/nextbillionai/models/fleetify/document_template_update_response.rbs +75 -0
  586. data/sig/nextbillionai/models/fleetify/route_create_params.rbs +199 -0
  587. data/sig/nextbillionai/models/fleetify/route_create_response.rbs +159 -0
  588. data/sig/nextbillionai/models/fleetify/route_redispatch_params.rbs +118 -0
  589. data/sig/nextbillionai/models/fleetify/route_redispatch_response.rbs +359 -0
  590. data/sig/nextbillionai/models/fleetify/routes/document_submission.rbs +9 -0
  591. data/sig/nextbillionai/models/fleetify/routes/route_step_completion_mode.rbs +22 -0
  592. data/sig/nextbillionai/models/fleetify/routes/route_step_geofence_config.rbs +47 -0
  593. data/sig/nextbillionai/models/fleetify/routes/route_steps_request.rbs +134 -0
  594. data/sig/nextbillionai/models/fleetify/routes/route_steps_response.rbs +223 -0
  595. data/sig/nextbillionai/models/fleetify/routes/step_complete_params.rbs +56 -0
  596. data/sig/nextbillionai/models/fleetify/routes/step_create_params.rbs +148 -0
  597. data/sig/nextbillionai/models/fleetify/routes/step_create_response.rbs +42 -0
  598. data/sig/nextbillionai/models/fleetify/routes/step_delete_params.rbs +32 -0
  599. data/sig/nextbillionai/models/fleetify/routes/step_delete_response.rbs +23 -0
  600. data/sig/nextbillionai/models/fleetify/routes/step_update_params.rbs +159 -0
  601. data/sig/nextbillionai/models/fleetify/routes/step_update_response.rbs +42 -0
  602. data/sig/nextbillionai/models/fleetify/routing_response.rbs +66 -0
  603. data/sig/nextbillionai/models/geocode_batch_create_params.rbs +70 -0
  604. data/sig/nextbillionai/models/geocode_batch_create_response.rbs +128 -0
  605. data/sig/nextbillionai/models/geocode_retrieve_params.rbs +59 -0
  606. data/sig/nextbillionai/models/geocode_retrieve_response.rbs +234 -0
  607. data/sig/nextbillionai/models/geocode_structured_retrieve_params.rbs +94 -0
  608. data/sig/nextbillionai/models/geocode_structured_retrieve_response.rbs +236 -0
  609. data/sig/nextbillionai/models/geofence/batch_create_params.rbs +34 -0
  610. data/sig/nextbillionai/models/geofence/batch_create_response.rbs +45 -0
  611. data/sig/nextbillionai/models/geofence/batch_delete_params.rbs +32 -0
  612. data/sig/nextbillionai/models/geofence/batch_list_params.rbs +30 -0
  613. data/sig/nextbillionai/models/geofence/batch_list_response.rbs +37 -0
  614. data/sig/nextbillionai/models/geofence/console_preview_params.rbs +17 -0
  615. data/sig/nextbillionai/models/geofence/console_preview_response.rbs +49 -0
  616. data/sig/nextbillionai/models/geofence/console_search_params.rbs +25 -0
  617. data/sig/nextbillionai/models/geofence/console_search_response.rbs +56 -0
  618. data/sig/nextbillionai/models/geofence/polygon_geojson.rbs +25 -0
  619. data/sig/nextbillionai/models/geofence.rbs +161 -0
  620. data/sig/nextbillionai/models/geofence_contains_params.rbs +40 -0
  621. data/sig/nextbillionai/models/geofence_contains_response.rbs +105 -0
  622. data/sig/nextbillionai/models/geofence_create_params.rbs +25 -0
  623. data/sig/nextbillionai/models/geofence_create_response.rbs +43 -0
  624. data/sig/nextbillionai/models/geofence_delete_params.rbs +23 -0
  625. data/sig/nextbillionai/models/geofence_entity_create.rbs +216 -0
  626. data/sig/nextbillionai/models/geofence_list_params.rbs +42 -0
  627. data/sig/nextbillionai/models/geofence_list_response.rbs +61 -0
  628. data/sig/nextbillionai/models/geofence_retrieve_params.rbs +23 -0
  629. data/sig/nextbillionai/models/geofence_retrieve_response.rbs +45 -0
  630. data/sig/nextbillionai/models/geofence_update_params.rbs +227 -0
  631. data/sig/nextbillionai/models/isochrone_compute_params.rbs +96 -0
  632. data/sig/nextbillionai/models/isochrone_compute_response.rbs +159 -0
  633. data/sig/nextbillionai/models/lookup_by_id_params.rbs +28 -0
  634. data/sig/nextbillionai/models/lookup_by_id_response.rbs +94 -0
  635. data/sig/nextbillionai/models/map_create_segment_params.rbs +15 -0
  636. data/sig/nextbillionai/models/map_view.rbs +37 -0
  637. data/sig/nextbillionai/models/mdm_create_distance_matrix_params.rbs +270 -0
  638. data/sig/nextbillionai/models/mdm_create_distance_matrix_response.rbs +43 -0
  639. data/sig/nextbillionai/models/mdm_get_distance_matrix_status_params.rbs +28 -0
  640. data/sig/nextbillionai/models/mdm_get_distance_matrix_status_response.rbs +57 -0
  641. data/sig/nextbillionai/models/multigeocode/place_create_params.rbs +226 -0
  642. data/sig/nextbillionai/models/multigeocode/place_create_response.rbs +17 -0
  643. data/sig/nextbillionai/models/multigeocode/place_delete_params.rbs +25 -0
  644. data/sig/nextbillionai/models/multigeocode/place_delete_response.rbs +21 -0
  645. data/sig/nextbillionai/models/multigeocode/place_item.rbs +133 -0
  646. data/sig/nextbillionai/models/multigeocode/place_retrieve_params.rbs +25 -0
  647. data/sig/nextbillionai/models/multigeocode/place_retrieve_response.rbs +95 -0
  648. data/sig/nextbillionai/models/multigeocode/place_update_params.rbs +99 -0
  649. data/sig/nextbillionai/models/multigeocode/place_update_response.rbs +21 -0
  650. data/sig/nextbillionai/models/multigeocode_search_params.rbs +104 -0
  651. data/sig/nextbillionai/models/multigeocode_search_response.rbs +114 -0
  652. data/sig/nextbillionai/models/navigation_retrieve_route_params.rbs +206 -0
  653. data/sig/nextbillionai/models/navigation_retrieve_route_response.rbs +812 -0
  654. data/sig/nextbillionai/models/optimization/driver_assignment_assign_params.rbs +412 -0
  655. data/sig/nextbillionai/models/optimization/driver_assignment_assign_response.rbs +281 -0
  656. data/sig/nextbillionai/models/optimization/job.rbs +225 -0
  657. data/sig/nextbillionai/models/optimization/location.rbs +17 -0
  658. data/sig/nextbillionai/models/optimization/shipment.rbs +313 -0
  659. data/sig/nextbillionai/models/optimization/v2_retrieve_result_params.rbs +30 -0
  660. data/sig/nextbillionai/models/optimization/v2_retrieve_result_response.rbs +555 -0
  661. data/sig/nextbillionai/models/optimization/v2_submit_params.rbs +1138 -0
  662. data/sig/nextbillionai/models/optimization/vehicle.rbs +66 -0
  663. data/sig/nextbillionai/models/optimization_compute_params.rbs +146 -0
  664. data/sig/nextbillionai/models/optimization_compute_response.rbs +386 -0
  665. data/sig/nextbillionai/models/optimization_re_optimize_params.rbs +176 -0
  666. data/sig/nextbillionai/models/position.rbs +19 -0
  667. data/sig/nextbillionai/models/post_response.rbs +38 -0
  668. data/sig/nextbillionai/models/postalcode_retrieve_coordinates_params.rbs +84 -0
  669. data/sig/nextbillionai/models/postalcode_retrieve_coordinates_response.rbs +260 -0
  670. data/sig/nextbillionai/models/restriction_create_params.rbs +48 -0
  671. data/sig/nextbillionai/models/restriction_delete_params.rbs +23 -0
  672. data/sig/nextbillionai/models/restriction_delete_response.rbs +19 -0
  673. data/sig/nextbillionai/models/restriction_list_by_bbox_params.rbs +162 -0
  674. data/sig/nextbillionai/models/restriction_list_by_bbox_response.rbs +8 -0
  675. data/sig/nextbillionai/models/restriction_list_params.rbs +164 -0
  676. data/sig/nextbillionai/models/restriction_list_response.rbs +57 -0
  677. data/sig/nextbillionai/models/restriction_retrieve_params.rbs +30 -0
  678. data/sig/nextbillionai/models/restriction_set_state_params.rbs +43 -0
  679. data/sig/nextbillionai/models/restriction_update_params.rbs +32 -0
  680. data/sig/nextbillionai/models/restrictions_item_list_params.rbs +145 -0
  681. data/sig/nextbillionai/models/restrictions_item_list_response.rbs +166 -0
  682. data/sig/nextbillionai/models/revgeocode_retrieve_params.rbs +40 -0
  683. data/sig/nextbillionai/models/revgeocode_retrieve_response.rbs +236 -0
  684. data/sig/nextbillionai/models/rich_group_request.rbs +207 -0
  685. data/sig/nextbillionai/models/rich_group_response.rbs +207 -0
  686. data/sig/nextbillionai/models/route_report_create_params.rbs +47 -0
  687. data/sig/nextbillionai/models/route_report_create_response.rbs +408 -0
  688. data/sig/nextbillionai/models/skynet/asset/event_list_params.rbs +84 -0
  689. data/sig/nextbillionai/models/skynet/asset/event_list_response.rbs +303 -0
  690. data/sig/nextbillionai/models/skynet/asset/location_get_last_params.rbs +49 -0
  691. data/sig/nextbillionai/models/skynet/asset/location_get_last_response.rbs +60 -0
  692. data/sig/nextbillionai/models/skynet/asset/location_list_params.rbs +105 -0
  693. data/sig/nextbillionai/models/skynet/asset/location_list_response.rbs +216 -0
  694. data/sig/nextbillionai/models/skynet/asset/track_location.rbs +100 -0
  695. data/sig/nextbillionai/models/skynet/asset_bind_params.rbs +30 -0
  696. data/sig/nextbillionai/models/skynet/asset_create_params.rbs +89 -0
  697. data/sig/nextbillionai/models/skynet/asset_create_response.rbs +52 -0
  698. data/sig/nextbillionai/models/skynet/asset_delete_params.rbs +47 -0
  699. data/sig/nextbillionai/models/skynet/asset_details.rbs +175 -0
  700. data/sig/nextbillionai/models/skynet/asset_list_params.rbs +89 -0
  701. data/sig/nextbillionai/models/skynet/asset_list_response.rbs +70 -0
  702. data/sig/nextbillionai/models/skynet/asset_retrieve_params.rbs +47 -0
  703. data/sig/nextbillionai/models/skynet/asset_retrieve_response.rbs +54 -0
  704. data/sig/nextbillionai/models/skynet/asset_track_params.rbs +140 -0
  705. data/sig/nextbillionai/models/skynet/asset_update_attributes_params.rbs +30 -0
  706. data/sig/nextbillionai/models/skynet/asset_update_params.rbs +82 -0
  707. data/sig/nextbillionai/models/skynet/config_retrieve_params.rbs +47 -0
  708. data/sig/nextbillionai/models/skynet/config_retrieve_response.rbs +73 -0
  709. data/sig/nextbillionai/models/skynet/config_test_webhook_params.rbs +25 -0
  710. data/sig/nextbillionai/models/skynet/config_test_webhook_response.rbs +17 -0
  711. data/sig/nextbillionai/models/skynet/config_update_params.rbs +54 -0
  712. data/sig/nextbillionai/models/skynet/meta_data.rbs +7 -0
  713. data/sig/nextbillionai/models/skynet/metadata.rbs +7 -0
  714. data/sig/nextbillionai/models/skynet/monitor.rbs +220 -0
  715. data/sig/nextbillionai/models/skynet/monitor_create_params.rbs +226 -0
  716. data/sig/nextbillionai/models/skynet/monitor_create_response.rbs +52 -0
  717. data/sig/nextbillionai/models/skynet/monitor_delete_params.rbs +25 -0
  718. data/sig/nextbillionai/models/skynet/monitor_list_params.rbs +75 -0
  719. data/sig/nextbillionai/models/skynet/monitor_list_response.rbs +70 -0
  720. data/sig/nextbillionai/models/skynet/monitor_retrieve_params.rbs +25 -0
  721. data/sig/nextbillionai/models/skynet/monitor_retrieve_response.rbs +56 -0
  722. data/sig/nextbillionai/models/skynet/monitor_update_params.rbs +206 -0
  723. data/sig/nextbillionai/models/skynet/namespaced_apikey_create_params.rbs +30 -0
  724. data/sig/nextbillionai/models/skynet/namespaced_apikey_create_response.rbs +94 -0
  725. data/sig/nextbillionai/models/skynet/namespaced_apikey_delete_params.rbs +34 -0
  726. data/sig/nextbillionai/models/skynet/namespaced_apikey_delete_response.rbs +21 -0
  727. data/sig/nextbillionai/models/skynet/pagination.rbs +40 -0
  728. data/sig/nextbillionai/models/skynet/search/polygon_create_params.rbs +193 -0
  729. data/sig/nextbillionai/models/skynet/search/polygon_get_params.rbs +125 -0
  730. data/sig/nextbillionai/models/skynet/search_around_params.rbs +128 -0
  731. data/sig/nextbillionai/models/skynet/search_bound_params.rbs +123 -0
  732. data/sig/nextbillionai/models/skynet/search_response.rbs +185 -0
  733. data/sig/nextbillionai/models/skynet/simple_resp.rbs +21 -0
  734. data/sig/nextbillionai/models/skynet/trip_delete_params.rbs +47 -0
  735. data/sig/nextbillionai/models/skynet/trip_end_params.rbs +52 -0
  736. data/sig/nextbillionai/models/skynet/trip_get_summary_params.rbs +47 -0
  737. data/sig/nextbillionai/models/skynet/trip_get_summary_response.rbs +198 -0
  738. data/sig/nextbillionai/models/skynet/trip_retrieve_params.rbs +47 -0
  739. data/sig/nextbillionai/models/skynet/trip_retrieve_response.rbs +168 -0
  740. data/sig/nextbillionai/models/skynet/trip_start_params.rbs +120 -0
  741. data/sig/nextbillionai/models/skynet/trip_start_response.rbs +52 -0
  742. data/sig/nextbillionai/models/skynet/trip_stop.rbs +29 -0
  743. data/sig/nextbillionai/models/skynet/trip_update_params.rbs +113 -0
  744. data/sig/nextbillionai/models/skynet_subscribe_params.rbs +64 -0
  745. data/sig/nextbillionai/models/skynet_subscribe_response.rbs +38 -0
  746. data/sig/nextbillionai/models/snap_to_road_snap_params.rbs +173 -0
  747. data/sig/nextbillionai/models/snap_to_road_snap_response.rbs +215 -0
  748. data/sig/nextbillionai/models.rbs +115 -0
  749. data/sig/nextbillionai/request_options.rbs +36 -0
  750. data/sig/nextbillionai/resources/areas.rbs +12 -0
  751. data/sig/nextbillionai/resources/autocomplete.rbs +17 -0
  752. data/sig/nextbillionai/resources/autosuggest.rbs +17 -0
  753. data/sig/nextbillionai/resources/batch.rbs +19 -0
  754. data/sig/nextbillionai/resources/browse.rbs +17 -0
  755. data/sig/nextbillionai/resources/directions.rbs +37 -0
  756. data/sig/nextbillionai/resources/discover.rbs +17 -0
  757. data/sig/nextbillionai/resources/distance_matrix/json.rbs +23 -0
  758. data/sig/nextbillionai/resources/distance_matrix.rbs +9 -0
  759. data/sig/nextbillionai/resources/fleetify/document_templates.rbs +41 -0
  760. data/sig/nextbillionai/resources/fleetify/routes/steps.rbs +61 -0
  761. data/sig/nextbillionai/resources/fleetify/routes.rbs +30 -0
  762. data/sig/nextbillionai/resources/fleetify.rbs +11 -0
  763. data/sig/nextbillionai/resources/geocode.rbs +38 -0
  764. data/sig/nextbillionai/resources/geofence/batch.rbs +27 -0
  765. data/sig/nextbillionai/resources/geofence/console.rbs +26 -0
  766. data/sig/nextbillionai/resources/geofence.rbs +65 -0
  767. data/sig/nextbillionai/resources/isochrone.rbs +21 -0
  768. data/sig/nextbillionai/resources/lookup.rbs +13 -0
  769. data/sig/nextbillionai/resources/map.rbs +9 -0
  770. data/sig/nextbillionai/resources/mdm.rbs +34 -0
  771. data/sig/nextbillionai/resources/multigeocode/place.rbs +39 -0
  772. data/sig/nextbillionai/resources/multigeocode.rbs +24 -0
  773. data/sig/nextbillionai/resources/navigation.rbs +26 -0
  774. data/sig/nextbillionai/resources/optimization/driver_assignment.rbs +18 -0
  775. data/sig/nextbillionai/resources/optimization/v2.rbs +35 -0
  776. data/sig/nextbillionai/resources/optimization.rbs +34 -0
  777. data/sig/nextbillionai/resources/postalcode.rbs +16 -0
  778. data/sig/nextbillionai/resources/restrictions.rbs +107 -0
  779. data/sig/nextbillionai/resources/restrictions_items.rbs +21 -0
  780. data/sig/nextbillionai/resources/revgeocode.rbs +15 -0
  781. data/sig/nextbillionai/resources/route_report.rbs +14 -0
  782. data/sig/nextbillionai/resources/skynet/asset/event.rbs +23 -0
  783. data/sig/nextbillionai/resources/skynet/asset/location.rbs +31 -0
  784. data/sig/nextbillionai/resources/skynet/asset.rbs +86 -0
  785. data/sig/nextbillionai/resources/skynet/config.rbs +27 -0
  786. data/sig/nextbillionai/resources/skynet/monitor.rbs +64 -0
  787. data/sig/nextbillionai/resources/skynet/namespaced_apikeys.rbs +22 -0
  788. data/sig/nextbillionai/resources/skynet/search/polygon.rbs +38 -0
  789. data/sig/nextbillionai/resources/skynet/search.rbs +42 -0
  790. data/sig/nextbillionai/resources/skynet/trip.rbs +63 -0
  791. data/sig/nextbillionai/resources/skynet.rbs +26 -0
  792. data/sig/nextbillionai/resources/snap_to_roads.rbs +22 -0
  793. data/sig/nextbillionai/version.rbs +3 -0
  794. metadata +851 -0
@@ -0,0 +1,1318 @@
1
+ # typed: strong
2
+
3
+ module Nextbillionai
4
+ module Models
5
+ module Optimization
6
+ class V2RetrieveResultResponse < Nextbillionai::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse,
11
+ Nextbillionai::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Returns the description of the optimization job as given in the input POST
16
+ # optimization request. This field will not be present in the response if no
17
+ # description was provided in the input request.
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :description
20
+
21
+ sig { params(description: String).void }
22
+ attr_writer :description
23
+
24
+ # Returns the message in case of errors or failures, otherwise a blank string is
25
+ # returned.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :message
28
+
29
+ sig { params(message: String).void }
30
+ attr_writer :message
31
+
32
+ # An object containing the details of the optimized routes.
33
+ sig do
34
+ returns(
35
+ T.nilable(
36
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result
37
+ )
38
+ )
39
+ end
40
+ attr_reader :result
41
+
42
+ sig do
43
+ params(
44
+ result:
45
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::OrHash
46
+ ).void
47
+ end
48
+ attr_writer :result
49
+
50
+ # It indicates the overall status or result of the API request denoting whether
51
+ # the operation was successful or did it encounter any errors.
52
+ sig do
53
+ returns(
54
+ T.nilable(
55
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::TaggedSymbol
56
+ )
57
+ )
58
+ end
59
+ attr_reader :status
60
+
61
+ sig do
62
+ params(
63
+ status:
64
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::OrSymbol
65
+ ).void
66
+ end
67
+ attr_writer :status
68
+
69
+ sig do
70
+ params(
71
+ description: String,
72
+ message: String,
73
+ result:
74
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::OrHash,
75
+ status:
76
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::OrSymbol
77
+ ).returns(T.attached_class)
78
+ end
79
+ def self.new(
80
+ # Returns the description of the optimization job as given in the input POST
81
+ # optimization request. This field will not be present in the response if no
82
+ # description was provided in the input request.
83
+ description: nil,
84
+ # Returns the message in case of errors or failures, otherwise a blank string is
85
+ # returned.
86
+ message: nil,
87
+ # An object containing the details of the optimized routes.
88
+ result: nil,
89
+ # It indicates the overall status or result of the API request denoting whether
90
+ # the operation was successful or did it encounter any errors.
91
+ status: nil
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ description: String,
99
+ message: String,
100
+ result:
101
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result,
102
+ status:
103
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::TaggedSymbol
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ class Result < Nextbillionai::Internal::Type::BaseModel
111
+ OrHash =
112
+ T.type_alias do
113
+ T.any(
114
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result,
115
+ Nextbillionai::Internal::AnyHash
116
+ )
117
+ end
118
+
119
+ # A custom code representing the status of the result. A code other than 0,
120
+ # represents an internal error. In case of codes other than 0, please verify the
121
+ # parameter values, constraints and locations. If the issue does not resolve,
122
+ # please reach out to NextBillion at
123
+ # [support@nextbillion.ai](mailto:support@nextbillion.ai).
124
+ sig { returns(T.nilable(Integer)) }
125
+ attr_reader :code
126
+
127
+ sig { params(code: Integer).void }
128
+ attr_writer :code
129
+
130
+ # Returns the error message for unfulfilled optimization jobs. This field will not
131
+ # be present in the response in case there are no errors.
132
+ sig { returns(T.nilable(String)) }
133
+ attr_reader :error
134
+
135
+ sig { params(error: String).void }
136
+ attr_writer :error
137
+
138
+ # An array of objects containing the details of each route in the optimized
139
+ # solution. Each object represents one route.
140
+ sig do
141
+ returns(
142
+ T.nilable(
143
+ T::Array[
144
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route
145
+ ]
146
+ )
147
+ )
148
+ end
149
+ attr_reader :routes
150
+
151
+ sig do
152
+ params(
153
+ routes:
154
+ T::Array[
155
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::OrHash
156
+ ]
157
+ ).void
158
+ end
159
+ attr_writer :routes
160
+
161
+ # Returns all the routing profiles used in the solution. If no routing profiles
162
+ # were provided in the input or if the vehicles tagged to profiles were not used
163
+ # in the solution, the "default" routing properties are returned. Default routing
164
+ # properties are indicated by options.routing in the input.
165
+ sig { returns(T.nilable(T.anything)) }
166
+ attr_reader :routing_profiles
167
+
168
+ sig { params(routing_profiles: T.anything).void }
169
+ attr_writer :routing_profiles
170
+
171
+ # An object to describe the summarized result of the optimization request. This
172
+ # object can be useful to quickly get an overview of the important result
173
+ # parameters.
174
+ sig do
175
+ returns(
176
+ T.nilable(
177
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Summary
178
+ )
179
+ )
180
+ end
181
+ attr_reader :summary
182
+
183
+ sig do
184
+ params(
185
+ summary:
186
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Summary::OrHash
187
+ ).void
188
+ end
189
+ attr_writer :summary
190
+
191
+ # An array of objects containing the details of unassigned tasks in the optimized
192
+ # solution. Each object represents one task.
193
+ sig do
194
+ returns(
195
+ T.nilable(
196
+ T::Array[
197
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Unassigned
198
+ ]
199
+ )
200
+ )
201
+ end
202
+ attr_reader :unassigned
203
+
204
+ sig do
205
+ params(
206
+ unassigned:
207
+ T::Array[
208
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Unassigned::OrHash
209
+ ]
210
+ ).void
211
+ end
212
+ attr_writer :unassigned
213
+
214
+ # An object containing the details of the optimized routes.
215
+ sig do
216
+ params(
217
+ code: Integer,
218
+ error: String,
219
+ routes:
220
+ T::Array[
221
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::OrHash
222
+ ],
223
+ routing_profiles: T.anything,
224
+ summary:
225
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Summary::OrHash,
226
+ unassigned:
227
+ T::Array[
228
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Unassigned::OrHash
229
+ ]
230
+ ).returns(T.attached_class)
231
+ end
232
+ def self.new(
233
+ # A custom code representing the status of the result. A code other than 0,
234
+ # represents an internal error. In case of codes other than 0, please verify the
235
+ # parameter values, constraints and locations. If the issue does not resolve,
236
+ # please reach out to NextBillion at
237
+ # [support@nextbillion.ai](mailto:support@nextbillion.ai).
238
+ code: nil,
239
+ # Returns the error message for unfulfilled optimization jobs. This field will not
240
+ # be present in the response in case there are no errors.
241
+ error: nil,
242
+ # An array of objects containing the details of each route in the optimized
243
+ # solution. Each object represents one route.
244
+ routes: nil,
245
+ # Returns all the routing profiles used in the solution. If no routing profiles
246
+ # were provided in the input or if the vehicles tagged to profiles were not used
247
+ # in the solution, the "default" routing properties are returned. Default routing
248
+ # properties are indicated by options.routing in the input.
249
+ routing_profiles: nil,
250
+ # An object to describe the summarized result of the optimization request. This
251
+ # object can be useful to quickly get an overview of the important result
252
+ # parameters.
253
+ summary: nil,
254
+ # An array of objects containing the details of unassigned tasks in the optimized
255
+ # solution. Each object represents one task.
256
+ unassigned: nil
257
+ )
258
+ end
259
+
260
+ sig do
261
+ override.returns(
262
+ {
263
+ code: Integer,
264
+ error: String,
265
+ routes:
266
+ T::Array[
267
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route
268
+ ],
269
+ routing_profiles: T.anything,
270
+ summary:
271
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Summary,
272
+ unassigned:
273
+ T::Array[
274
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Unassigned
275
+ ]
276
+ }
277
+ )
278
+ end
279
+ def to_hash
280
+ end
281
+
282
+ class Route < Nextbillionai::Internal::Type::BaseModel
283
+ OrHash =
284
+ T.type_alias do
285
+ T.any(
286
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route,
287
+ Nextbillionai::Internal::AnyHash
288
+ )
289
+ end
290
+
291
+ # Returns the capacity configuration of the vehicle that was used for this route.
292
+ # This field would return either the vehicle's capacity or one of the
293
+ # alternative_capacities provided in the input request.
294
+ sig { returns(T.nilable(T::Array[Integer])) }
295
+ attr_reader :adopted_capacity
296
+
297
+ sig { params(adopted_capacity: T::Array[Integer]).void }
298
+ attr_writer :adopted_capacity
299
+
300
+ # Returns the cost of the route. The unit of cost type depends on the value of
301
+ # travel_cost attribute in the optimization request.
302
+ sig { returns(T.nilable(Integer)) }
303
+ attr_reader :cost
304
+
305
+ sig { params(cost: Integer).void }
306
+ attr_writer :cost
307
+
308
+ # Returns the total quantities, for each dimension (or unit), of deliveries
309
+ # performed in the route. Please note that when both shipments and jobs are
310
+ # provided, this field corresponds to the sum of quantities delivered as part of
311
+ # the assigned shipments and jobs on the route.
312
+ sig { returns(T.nilable(T::Array[Integer])) }
313
+ attr_reader :delivery
314
+
315
+ sig { params(delivery: T::Array[Integer]).void }
316
+ attr_writer :delivery
317
+
318
+ # Return the description of the assigned vehicle. It would be the same as that
319
+ # provided in the description field of vehicles part of the input POST
320
+ # optimization request.
321
+ sig { returns(T.nilable(String)) }
322
+ attr_reader :description
323
+
324
+ sig { params(description: String).void }
325
+ attr_writer :description
326
+
327
+ # Returns the total distance of the route, in meters.
328
+ sig { returns(T.nilable(Float)) }
329
+ attr_reader :distance
330
+
331
+ sig { params(distance: Float).void }
332
+ attr_writer :distance
333
+
334
+ # Returns the total drive duration of the route, in seconds.
335
+ sig { returns(T.nilable(Integer)) }
336
+ attr_reader :duration
337
+
338
+ sig { params(duration: Integer).void }
339
+ attr_writer :duration
340
+
341
+ # Returns the geometry of this route encoded in polyline format.
342
+ sig { returns(T.nilable(String)) }
343
+ attr_reader :geometry
344
+
345
+ sig { params(geometry: String).void }
346
+ attr_writer :geometry
347
+
348
+ # Returns the custom information that was provided when the vehicle was
349
+ # configured. This field would not be present for the vehicles that were not
350
+ # provided with any metadata.
351
+ sig { returns(T.nilable(T.anything)) }
352
+ attr_reader :metadata
353
+
354
+ sig { params(metadata: T.anything).void }
355
+ attr_writer :metadata
356
+
357
+ # Returns the total quantities, for each dimension (or unit), of pickups performed
358
+ # in the route. Please note that when both shipments and jobs are provided, this
359
+ # field corresponds to the sum of quantities picked-up as part of the assigned
360
+ # shipments and jobs on the route.
361
+ sig { returns(T.nilable(T::Array[Integer])) }
362
+ attr_reader :pickup
363
+
364
+ sig { params(pickup: T::Array[Integer]).void }
365
+ attr_writer :pickup
366
+
367
+ # Returns the sum of priorities of all tasks on the route.
368
+ sig { returns(T.nilable(Integer)) }
369
+ attr_reader :priority
370
+
371
+ sig { params(priority: Integer).void }
372
+ attr_writer :priority
373
+
374
+ # Returns the profile of the vehicle.
375
+ sig { returns(T.nilable(String)) }
376
+ attr_reader :profile
377
+
378
+ sig { params(profile: String).void }
379
+ attr_writer :profile
380
+
381
+ # Returns the revenue earned by fulfilling the task on this route. Please note
382
+ # this field is present only when the revenue inputs are provided in the input,
383
+ # otherwise it is not present in the response.
384
+ sig { returns(T.nilable(Integer)) }
385
+ attr_reader :revenue
386
+
387
+ sig { params(revenue: Integer).void }
388
+ attr_writer :revenue
389
+
390
+ # Returns the total service time spent on the tasks or depots on the route, in
391
+ # seconds.
392
+ sig { returns(T.nilable(Integer)) }
393
+ attr_reader :service
394
+
395
+ sig { params(service: Integer).void }
396
+ attr_writer :service
397
+
398
+ # Returns the total setup time, in seconds, for the tasks assigned on the route.
399
+ sig { returns(T.nilable(Integer)) }
400
+ attr_reader :setup
401
+
402
+ sig { params(setup: Integer).void }
403
+ attr_writer :setup
404
+
405
+ # This attribute contains the details of all the steps involved in the route. It
406
+ # is an array of objects with each object representing one step.
407
+ sig do
408
+ returns(
409
+ T.nilable(
410
+ T::Array[
411
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::Step
412
+ ]
413
+ )
414
+ )
415
+ end
416
+ attr_reader :steps
417
+
418
+ sig do
419
+ params(
420
+ steps:
421
+ T::Array[
422
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::Step::OrHash
423
+ ]
424
+ ).void
425
+ end
426
+ attr_writer :steps
427
+
428
+ # Returns the ID of the vehicle that was assigned to the route. The value type
429
+ # will be same as the value type provided in the input request.
430
+ sig { returns(T.nilable(String)) }
431
+ attr_reader :vehicle
432
+
433
+ sig { params(vehicle: String).void }
434
+ attr_writer :vehicle
435
+
436
+ # Returns the total vehicle overtime for the route, in seconds. Please note this
437
+ # field is present only when there is a non-zero value for vehicle overtime,
438
+ # otherwise it is not present in the response.
439
+ sig { returns(T.nilable(Integer)) }
440
+ attr_reader :vehicle_overtime
441
+
442
+ sig { params(vehicle_overtime: Integer).void }
443
+ attr_writer :vehicle_overtime
444
+
445
+ # Returns the total waiting time of the vehicle on the route, in seconds.
446
+ sig { returns(T.nilable(Integer)) }
447
+ attr_reader :waiting_time
448
+
449
+ sig { params(waiting_time: Integer).void }
450
+ attr_writer :waiting_time
451
+
452
+ sig do
453
+ params(
454
+ adopted_capacity: T::Array[Integer],
455
+ cost: Integer,
456
+ delivery: T::Array[Integer],
457
+ description: String,
458
+ distance: Float,
459
+ duration: Integer,
460
+ geometry: String,
461
+ metadata: T.anything,
462
+ pickup: T::Array[Integer],
463
+ priority: Integer,
464
+ profile: String,
465
+ revenue: Integer,
466
+ service: Integer,
467
+ setup: Integer,
468
+ steps:
469
+ T::Array[
470
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::Step::OrHash
471
+ ],
472
+ vehicle: String,
473
+ vehicle_overtime: Integer,
474
+ waiting_time: Integer
475
+ ).returns(T.attached_class)
476
+ end
477
+ def self.new(
478
+ # Returns the capacity configuration of the vehicle that was used for this route.
479
+ # This field would return either the vehicle's capacity or one of the
480
+ # alternative_capacities provided in the input request.
481
+ adopted_capacity: nil,
482
+ # Returns the cost of the route. The unit of cost type depends on the value of
483
+ # travel_cost attribute in the optimization request.
484
+ cost: nil,
485
+ # Returns the total quantities, for each dimension (or unit), of deliveries
486
+ # performed in the route. Please note that when both shipments and jobs are
487
+ # provided, this field corresponds to the sum of quantities delivered as part of
488
+ # the assigned shipments and jobs on the route.
489
+ delivery: nil,
490
+ # Return the description of the assigned vehicle. It would be the same as that
491
+ # provided in the description field of vehicles part of the input POST
492
+ # optimization request.
493
+ description: nil,
494
+ # Returns the total distance of the route, in meters.
495
+ distance: nil,
496
+ # Returns the total drive duration of the route, in seconds.
497
+ duration: nil,
498
+ # Returns the geometry of this route encoded in polyline format.
499
+ geometry: nil,
500
+ # Returns the custom information that was provided when the vehicle was
501
+ # configured. This field would not be present for the vehicles that were not
502
+ # provided with any metadata.
503
+ metadata: nil,
504
+ # Returns the total quantities, for each dimension (or unit), of pickups performed
505
+ # in the route. Please note that when both shipments and jobs are provided, this
506
+ # field corresponds to the sum of quantities picked-up as part of the assigned
507
+ # shipments and jobs on the route.
508
+ pickup: nil,
509
+ # Returns the sum of priorities of all tasks on the route.
510
+ priority: nil,
511
+ # Returns the profile of the vehicle.
512
+ profile: nil,
513
+ # Returns the revenue earned by fulfilling the task on this route. Please note
514
+ # this field is present only when the revenue inputs are provided in the input,
515
+ # otherwise it is not present in the response.
516
+ revenue: nil,
517
+ # Returns the total service time spent on the tasks or depots on the route, in
518
+ # seconds.
519
+ service: nil,
520
+ # Returns the total setup time, in seconds, for the tasks assigned on the route.
521
+ setup: nil,
522
+ # This attribute contains the details of all the steps involved in the route. It
523
+ # is an array of objects with each object representing one step.
524
+ steps: nil,
525
+ # Returns the ID of the vehicle that was assigned to the route. The value type
526
+ # will be same as the value type provided in the input request.
527
+ vehicle: nil,
528
+ # Returns the total vehicle overtime for the route, in seconds. Please note this
529
+ # field is present only when there is a non-zero value for vehicle overtime,
530
+ # otherwise it is not present in the response.
531
+ vehicle_overtime: nil,
532
+ # Returns the total waiting time of the vehicle on the route, in seconds.
533
+ waiting_time: nil
534
+ )
535
+ end
536
+
537
+ sig do
538
+ override.returns(
539
+ {
540
+ adopted_capacity: T::Array[Integer],
541
+ cost: Integer,
542
+ delivery: T::Array[Integer],
543
+ description: String,
544
+ distance: Float,
545
+ duration: Integer,
546
+ geometry: String,
547
+ metadata: T.anything,
548
+ pickup: T::Array[Integer],
549
+ priority: Integer,
550
+ profile: String,
551
+ revenue: Integer,
552
+ service: Integer,
553
+ setup: Integer,
554
+ steps:
555
+ T::Array[
556
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::Step
557
+ ],
558
+ vehicle: String,
559
+ vehicle_overtime: Integer,
560
+ waiting_time: Integer
561
+ }
562
+ )
563
+ end
564
+ def to_hash
565
+ end
566
+
567
+ class Step < Nextbillionai::Internal::Type::BaseModel
568
+ OrHash =
569
+ T.type_alias do
570
+ T.any(
571
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Route::Step,
572
+ Nextbillionai::Internal::AnyHash
573
+ )
574
+ end
575
+
576
+ # Returns the ID of the task. The ID returned here are the same values that were
577
+ # provided for the given task in the jobs or the shipments objects of the input
578
+ # POST optimization request.
579
+ #
580
+ # **Note:** Since both integer and string value types are supported for job IDs,
581
+ # the value type returned for this field will depend on the value type provided in
582
+ # the input request.
583
+ sig { returns(T.nilable(String)) }
584
+ attr_reader :id
585
+
586
+ sig { params(id: String).void }
587
+ attr_writer :id
588
+
589
+ # Returns the time at which the vehicle arrives at the step location. If
590
+ # time_windows is provided for the task it will be returned as an UNIX timestamp
591
+ # expressed in seconds. When time_windows is not provided, it is returned as the
592
+ # total duration, in seconds, elapsed since the start of the route.
593
+ #
594
+ # Please note it includes all the other durations as well (setup, service,
595
+ # waiting).
596
+ sig { returns(T.nilable(Integer)) }
597
+ attr_reader :arrival
598
+
599
+ sig { params(arrival: Integer).void }
600
+ attr_writer :arrival
601
+
602
+ # For step type "start" or "end", this field returns the ID of the depot relevant
603
+ # to that step. For "start" steps, the field will contain the ID of the depot from
604
+ # which the vehicle commenced its journey. Conversely, for "end" steps, the field
605
+ # will hold the ID of the depot where the vehicle concluded its trip.
606
+ #
607
+ # Please note that start_depot_ids or end_depot_ids input for the vehicle must be
608
+ # configured to get this field in the response for respective step types in a
609
+ # route.
610
+ sig { returns(T.nilable(String)) }
611
+ attr_reader :depot
612
+
613
+ sig { params(depot: String).void }
614
+ attr_writer :depot
615
+
616
+ # Returns the description of this step. The description returned here are the same
617
+ # values that were provided for the given task in the jobs or the shipments
618
+ # objects of the input POST optimization request.
619
+ sig { returns(T.nilable(String)) }
620
+ attr_reader :description
621
+
622
+ sig { params(description: String).void }
623
+ attr_writer :description
624
+
625
+ # Returns the distance covered, in meters, from the start of the route and up
626
+ # until the current step.
627
+ #
628
+ # Please note that the value of this parameter accumulates with each step. In case
629
+ # , the travel_cost: air_distance, then the distance here represents straight line
630
+ # distance.
631
+ sig { returns(T.nilable(Integer)) }
632
+ attr_reader :distance
633
+
634
+ sig { params(distance: Integer).void }
635
+ attr_writer :distance
636
+
637
+ # Returns the total drive time, in seconds, from the start of the route up until
638
+ # the start of the step. Please note that this value does not include any other
639
+ # category of durations (service, wait, setup) and the value of this parameter
640
+ # accumulates with each step.
641
+ sig { returns(T.nilable(Integer)) }
642
+ attr_reader :duration
643
+
644
+ sig { params(duration: Integer).void }
645
+ attr_writer :duration
646
+
647
+ # Returns the amount of time, in seconds, by which the vehicle is late when
648
+ # arriving at this step. Please note this field is present only when there is a
649
+ # non-zero value for vehicle lateness, otherwise it is not present in the
650
+ # response.
651
+ sig { returns(T.nilable(String)) }
652
+ attr_reader :late_by
653
+
654
+ sig { params(late_by: String).void }
655
+ attr_writer :late_by
656
+
657
+ # Returns the load on the vehicle after completing this step. In case of multiple
658
+ # dimensions, loads of each type are returned by a matching number of elements in
659
+ # the array.
660
+ sig { returns(T.nilable(T::Array[Integer])) }
661
+ attr_reader :load_
662
+
663
+ sig { params(load_: T::Array[Integer]).void }
664
+ attr_writer :load_
665
+
666
+ # Returns the location coordinates of the step in the \[latitude, longitude\]
667
+ # format.
668
+ #
669
+ # The index of this location is also returned by the location_index parameter.
670
+ sig { returns(T.nilable(T::Array[Float])) }
671
+ attr_reader :location
672
+
673
+ sig { params(location: T::Array[Float]).void }
674
+ attr_writer :location
675
+
676
+ # Returns the index (in the location array) of the location coordinates where the
677
+ # step is performed. The index will always be in the range of \[0, length of
678
+ # location array).
679
+ #
680
+ # Actual coordinates are also returned by the location parameter.
681
+ sig { returns(T.nilable(Integer)) }
682
+ attr_reader :location_index
683
+
684
+ sig { params(location_index: Integer).void }
685
+ attr_writer :location_index
686
+
687
+ # Returns the custom information that was provided when the given task (job /
688
+ # pickup / delivery) was configured. This field would not be present for the tasks
689
+ # that were not provided with any metadata. It will also be not present for
690
+ # “start” and “end” steps.
691
+ sig { returns(T.nilable(T.anything)) }
692
+ attr_reader :metadata
693
+
694
+ sig { params(metadata: T.anything).void }
695
+ attr_writer :metadata
696
+
697
+ # In case this step is part of a task group, this field returns the location
698
+ # coordinates of the point, in \[latitude, longitude\] format, which was used as a
699
+ # common stop for all grouped tasks.
700
+ sig { returns(T.nilable(T::Array[Float])) }
701
+ attr_reader :projected_location
702
+
703
+ sig { params(projected_location: T::Array[Float]).void }
704
+ attr_writer :projected_location
705
+
706
+ # When a vehicle is configured to make multiple runs to the depot (via
707
+ # max_depot_runs), this field returns the iteration to which the step belongs to.
708
+ # Each run will begin with a "start" step from the depot's location and conclude
709
+ # with an "end" step at either the last task's or the configured end location.
710
+ sig { returns(T.nilable(Integer)) }
711
+ attr_reader :run
712
+
713
+ sig { params(run: Integer).void }
714
+ attr_writer :run
715
+
716
+ # Returns the service time, in seconds, for the task when the step type is not
717
+ # start or end.
718
+ #
719
+ # When the step type is start or end , the field also returns the service time, in
720
+ # seconds, spent at the depot when if the vehicle is starting or completing the
721
+ # trip at one of the depots.
722
+ sig { returns(T.nilable(Integer)) }
723
+ attr_reader :service
724
+
725
+ sig { params(service: Integer).void }
726
+ attr_writer :service
727
+
728
+ # Returns the setup time, in seconds, for the task.
729
+ sig { returns(T.nilable(Integer)) }
730
+ attr_reader :setup
731
+
732
+ sig { params(setup: Integer).void }
733
+ attr_writer :setup
734
+
735
+ # Returns the coordinates after snapping the location of this step to a nearby
736
+ # road. Please note that this field will not be available in the response when
737
+ # custom duration or distance matrix were used for cost calculations.
738
+ sig { returns(T.nilable(T::Array[Float])) }
739
+ attr_reader :snapped_location
740
+
741
+ sig { params(snapped_location: T::Array[Float]).void }
742
+ attr_writer :snapped_location
743
+
744
+ # Returns the type of the step. Its value will always be one of the following:
745
+ # start, job, pickup, delivery, end. In case the type is start or end, steps
746
+ # object will not have the id field.
747
+ sig { returns(T.nilable(String)) }
748
+ attr_reader :type
749
+
750
+ sig { params(type: String).void }
751
+ attr_writer :type
752
+
753
+ # Returns the wait time of the vehicle at this step, in seconds.
754
+ sig { returns(T.nilable(Integer)) }
755
+ attr_reader :waiting_time
756
+
757
+ sig { params(waiting_time: Integer).void }
758
+ attr_writer :waiting_time
759
+
760
+ # This attribute contains the details of all the steps involved in the route. It
761
+ # is an array of objects with each object representing one step.
762
+ sig do
763
+ params(
764
+ id: String,
765
+ arrival: Integer,
766
+ depot: String,
767
+ description: String,
768
+ distance: Integer,
769
+ duration: Integer,
770
+ late_by: String,
771
+ load_: T::Array[Integer],
772
+ location: T::Array[Float],
773
+ location_index: Integer,
774
+ metadata: T.anything,
775
+ projected_location: T::Array[Float],
776
+ run: Integer,
777
+ service: Integer,
778
+ setup: Integer,
779
+ snapped_location: T::Array[Float],
780
+ type: String,
781
+ waiting_time: Integer
782
+ ).returns(T.attached_class)
783
+ end
784
+ def self.new(
785
+ # Returns the ID of the task. The ID returned here are the same values that were
786
+ # provided for the given task in the jobs or the shipments objects of the input
787
+ # POST optimization request.
788
+ #
789
+ # **Note:** Since both integer and string value types are supported for job IDs,
790
+ # the value type returned for this field will depend on the value type provided in
791
+ # the input request.
792
+ id: nil,
793
+ # Returns the time at which the vehicle arrives at the step location. If
794
+ # time_windows is provided for the task it will be returned as an UNIX timestamp
795
+ # expressed in seconds. When time_windows is not provided, it is returned as the
796
+ # total duration, in seconds, elapsed since the start of the route.
797
+ #
798
+ # Please note it includes all the other durations as well (setup, service,
799
+ # waiting).
800
+ arrival: nil,
801
+ # For step type "start" or "end", this field returns the ID of the depot relevant
802
+ # to that step. For "start" steps, the field will contain the ID of the depot from
803
+ # which the vehicle commenced its journey. Conversely, for "end" steps, the field
804
+ # will hold the ID of the depot where the vehicle concluded its trip.
805
+ #
806
+ # Please note that start_depot_ids or end_depot_ids input for the vehicle must be
807
+ # configured to get this field in the response for respective step types in a
808
+ # route.
809
+ depot: nil,
810
+ # Returns the description of this step. The description returned here are the same
811
+ # values that were provided for the given task in the jobs or the shipments
812
+ # objects of the input POST optimization request.
813
+ description: nil,
814
+ # Returns the distance covered, in meters, from the start of the route and up
815
+ # until the current step.
816
+ #
817
+ # Please note that the value of this parameter accumulates with each step. In case
818
+ # , the travel_cost: air_distance, then the distance here represents straight line
819
+ # distance.
820
+ distance: nil,
821
+ # Returns the total drive time, in seconds, from the start of the route up until
822
+ # the start of the step. Please note that this value does not include any other
823
+ # category of durations (service, wait, setup) and the value of this parameter
824
+ # accumulates with each step.
825
+ duration: nil,
826
+ # Returns the amount of time, in seconds, by which the vehicle is late when
827
+ # arriving at this step. Please note this field is present only when there is a
828
+ # non-zero value for vehicle lateness, otherwise it is not present in the
829
+ # response.
830
+ late_by: nil,
831
+ # Returns the load on the vehicle after completing this step. In case of multiple
832
+ # dimensions, loads of each type are returned by a matching number of elements in
833
+ # the array.
834
+ load_: nil,
835
+ # Returns the location coordinates of the step in the \[latitude, longitude\]
836
+ # format.
837
+ #
838
+ # The index of this location is also returned by the location_index parameter.
839
+ location: nil,
840
+ # Returns the index (in the location array) of the location coordinates where the
841
+ # step is performed. The index will always be in the range of \[0, length of
842
+ # location array).
843
+ #
844
+ # Actual coordinates are also returned by the location parameter.
845
+ location_index: nil,
846
+ # Returns the custom information that was provided when the given task (job /
847
+ # pickup / delivery) was configured. This field would not be present for the tasks
848
+ # that were not provided with any metadata. It will also be not present for
849
+ # “start” and “end” steps.
850
+ metadata: nil,
851
+ # In case this step is part of a task group, this field returns the location
852
+ # coordinates of the point, in \[latitude, longitude\] format, which was used as a
853
+ # common stop for all grouped tasks.
854
+ projected_location: nil,
855
+ # When a vehicle is configured to make multiple runs to the depot (via
856
+ # max_depot_runs), this field returns the iteration to which the step belongs to.
857
+ # Each run will begin with a "start" step from the depot's location and conclude
858
+ # with an "end" step at either the last task's or the configured end location.
859
+ run: nil,
860
+ # Returns the service time, in seconds, for the task when the step type is not
861
+ # start or end.
862
+ #
863
+ # When the step type is start or end , the field also returns the service time, in
864
+ # seconds, spent at the depot when if the vehicle is starting or completing the
865
+ # trip at one of the depots.
866
+ service: nil,
867
+ # Returns the setup time, in seconds, for the task.
868
+ setup: nil,
869
+ # Returns the coordinates after snapping the location of this step to a nearby
870
+ # road. Please note that this field will not be available in the response when
871
+ # custom duration or distance matrix were used for cost calculations.
872
+ snapped_location: nil,
873
+ # Returns the type of the step. Its value will always be one of the following:
874
+ # start, job, pickup, delivery, end. In case the type is start or end, steps
875
+ # object will not have the id field.
876
+ type: nil,
877
+ # Returns the wait time of the vehicle at this step, in seconds.
878
+ waiting_time: nil
879
+ )
880
+ end
881
+
882
+ sig do
883
+ override.returns(
884
+ {
885
+ id: String,
886
+ arrival: Integer,
887
+ depot: String,
888
+ description: String,
889
+ distance: Integer,
890
+ duration: Integer,
891
+ late_by: String,
892
+ load_: T::Array[Integer],
893
+ location: T::Array[Float],
894
+ location_index: Integer,
895
+ metadata: T.anything,
896
+ projected_location: T::Array[Float],
897
+ run: Integer,
898
+ service: Integer,
899
+ setup: Integer,
900
+ snapped_location: T::Array[Float],
901
+ type: String,
902
+ waiting_time: Integer
903
+ }
904
+ )
905
+ end
906
+ def to_hash
907
+ end
908
+ end
909
+ end
910
+
911
+ class Summary < Nextbillionai::Internal::Type::BaseModel
912
+ OrHash =
913
+ T.type_alias do
914
+ T.any(
915
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Summary,
916
+ Nextbillionai::Internal::AnyHash
917
+ )
918
+ end
919
+
920
+ # Returns the total cost of all the routes returned in the solution. The unit of
921
+ # cost type depends on the value of travel_cost attribute in the optimization
922
+ # request.
923
+ sig { returns(T.nilable(Integer)) }
924
+ attr_reader :cost
925
+
926
+ sig { params(cost: Integer).void }
927
+ attr_writer :cost
928
+
929
+ # Returns the sum of all quantities that were delivered in the optimized solution.
930
+ # If quantities of different dimensions were delivered, then a matching number of
931
+ # elements is returned in the delivery array.
932
+ #
933
+ # Please note that when both shipments and jobs are provided, this field
934
+ # corresponds to the sum of quantities delivered as part of all the assigned
935
+ # shipments and jobs .
936
+ sig { returns(T.nilable(T::Array[Integer])) }
937
+ attr_reader :delivery
938
+
939
+ sig { params(delivery: T::Array[Integer]).void }
940
+ attr_writer :delivery
941
+
942
+ # Returns the total distance of all routes, in meters. It is equal to the sum of
943
+ # distances of individual routes.
944
+ sig { returns(T.nilable(Float)) }
945
+ attr_reader :distance
946
+
947
+ sig { params(distance: Float).void }
948
+ attr_writer :distance
949
+
950
+ # Returns the total drive time, in seconds, needed to cover all routes. Please
951
+ # note that it does not include the service, setup or the waiting durations
952
+ # elapsed on these routes.
953
+ sig { returns(T.nilable(Integer)) }
954
+ attr_reader :duration
955
+
956
+ sig { params(duration: Integer).void }
957
+ attr_writer :duration
958
+
959
+ # Returns the total number of tasks across all routes that failed to start within
960
+ # their scheduled time windows.
961
+ sig { returns(T.nilable(Integer)) }
962
+ attr_reader :num_late_visits
963
+
964
+ sig { params(num_late_visits: Integer).void }
965
+ attr_writer :num_late_visits
966
+
967
+ # Returns the sum of all quantities that were picked-up in the optimized solution.
968
+ # If quantities of different dimensions were picked-up, then a matching number of
969
+ # elements is returned in the pickup array.
970
+ #
971
+ # Please note that when both shipments and jobs are provided, this field
972
+ # corresponds to the sum of quantities picked-up as part of all the assigned
973
+ # shipments and jobs .
974
+ sig { returns(T.nilable(T::Array[Integer])) }
975
+ attr_reader :pickup
976
+
977
+ sig { params(pickup: T::Array[Integer]).void }
978
+ attr_writer :pickup
979
+
980
+ # Returns the sum of priorities of all tasks that were assigned.
981
+ sig { returns(T.nilable(Integer)) }
982
+ attr_reader :priority
983
+
984
+ sig { params(priority: Integer).void }
985
+ attr_writer :priority
986
+
987
+ # Returns the revenue earned by completing all the assigned tasks. Overall profit
988
+ # earned by following the suggested route plan can be inferred by subtracting the
989
+ # cost of the solution from the reported revenue.
990
+ sig { returns(T.nilable(Integer)) }
991
+ attr_reader :revenue
992
+
993
+ sig { params(revenue: Integer).void }
994
+ attr_writer :revenue
995
+
996
+ # Returns the total number of routes in the solution.
997
+ sig { returns(T.nilable(Integer)) }
998
+ attr_reader :routes
999
+
1000
+ sig { params(routes: Integer).void }
1001
+ attr_writer :routes
1002
+
1003
+ # Returns the total service time, in seconds, for all the routes in the solution.
1004
+ # It is equal to the sum of service time of individual tasks that were assigned
1005
+ # and the time spent loading/unloading items at designated depots by all vehicles.
1006
+ sig { returns(T.nilable(Integer)) }
1007
+ attr_reader :service
1008
+
1009
+ sig { params(service: Integer).void }
1010
+ attr_writer :service
1011
+
1012
+ # Returns the total setup time, in seconds, of all assigned tasks. It is equal to
1013
+ # the sum of setup time of individual tasks that were assigned.
1014
+ sig { returns(T.nilable(Integer)) }
1015
+ attr_reader :setup
1016
+
1017
+ sig { params(setup: Integer).void }
1018
+ attr_writer :setup
1019
+
1020
+ # Returns the total duration, in seconds, that tasks across all routes were
1021
+ # delayed from starting after their scheduled time windows had passed.
1022
+ sig { returns(T.nilable(Integer)) }
1023
+ attr_reader :total_visit_lateness
1024
+
1025
+ sig { params(total_visit_lateness: Integer).void }
1026
+ attr_writer :total_visit_lateness
1027
+
1028
+ # Returns the number of unfulfilled tasks in the solution.
1029
+ sig { returns(T.nilable(Integer)) }
1030
+ attr_reader :unassigned
1031
+
1032
+ sig { params(unassigned: Integer).void }
1033
+ attr_writer :unassigned
1034
+
1035
+ # Returns the sum of durations spent waiting, in seconds, by vehicles on all
1036
+ # routes.
1037
+ sig { returns(T.nilable(Integer)) }
1038
+ attr_reader :waiting_time
1039
+
1040
+ sig { params(waiting_time: Integer).void }
1041
+ attr_writer :waiting_time
1042
+
1043
+ # An object to describe the summarized result of the optimization request. This
1044
+ # object can be useful to quickly get an overview of the important result
1045
+ # parameters.
1046
+ sig do
1047
+ params(
1048
+ cost: Integer,
1049
+ delivery: T::Array[Integer],
1050
+ distance: Float,
1051
+ duration: Integer,
1052
+ num_late_visits: Integer,
1053
+ pickup: T::Array[Integer],
1054
+ priority: Integer,
1055
+ revenue: Integer,
1056
+ routes: Integer,
1057
+ service: Integer,
1058
+ setup: Integer,
1059
+ total_visit_lateness: Integer,
1060
+ unassigned: Integer,
1061
+ waiting_time: Integer
1062
+ ).returns(T.attached_class)
1063
+ end
1064
+ def self.new(
1065
+ # Returns the total cost of all the routes returned in the solution. The unit of
1066
+ # cost type depends on the value of travel_cost attribute in the optimization
1067
+ # request.
1068
+ cost: nil,
1069
+ # Returns the sum of all quantities that were delivered in the optimized solution.
1070
+ # If quantities of different dimensions were delivered, then a matching number of
1071
+ # elements is returned in the delivery array.
1072
+ #
1073
+ # Please note that when both shipments and jobs are provided, this field
1074
+ # corresponds to the sum of quantities delivered as part of all the assigned
1075
+ # shipments and jobs .
1076
+ delivery: nil,
1077
+ # Returns the total distance of all routes, in meters. It is equal to the sum of
1078
+ # distances of individual routes.
1079
+ distance: nil,
1080
+ # Returns the total drive time, in seconds, needed to cover all routes. Please
1081
+ # note that it does not include the service, setup or the waiting durations
1082
+ # elapsed on these routes.
1083
+ duration: nil,
1084
+ # Returns the total number of tasks across all routes that failed to start within
1085
+ # their scheduled time windows.
1086
+ num_late_visits: nil,
1087
+ # Returns the sum of all quantities that were picked-up in the optimized solution.
1088
+ # If quantities of different dimensions were picked-up, then a matching number of
1089
+ # elements is returned in the pickup array.
1090
+ #
1091
+ # Please note that when both shipments and jobs are provided, this field
1092
+ # corresponds to the sum of quantities picked-up as part of all the assigned
1093
+ # shipments and jobs .
1094
+ pickup: nil,
1095
+ # Returns the sum of priorities of all tasks that were assigned.
1096
+ priority: nil,
1097
+ # Returns the revenue earned by completing all the assigned tasks. Overall profit
1098
+ # earned by following the suggested route plan can be inferred by subtracting the
1099
+ # cost of the solution from the reported revenue.
1100
+ revenue: nil,
1101
+ # Returns the total number of routes in the solution.
1102
+ routes: nil,
1103
+ # Returns the total service time, in seconds, for all the routes in the solution.
1104
+ # It is equal to the sum of service time of individual tasks that were assigned
1105
+ # and the time spent loading/unloading items at designated depots by all vehicles.
1106
+ service: nil,
1107
+ # Returns the total setup time, in seconds, of all assigned tasks. It is equal to
1108
+ # the sum of setup time of individual tasks that were assigned.
1109
+ setup: nil,
1110
+ # Returns the total duration, in seconds, that tasks across all routes were
1111
+ # delayed from starting after their scheduled time windows had passed.
1112
+ total_visit_lateness: nil,
1113
+ # Returns the number of unfulfilled tasks in the solution.
1114
+ unassigned: nil,
1115
+ # Returns the sum of durations spent waiting, in seconds, by vehicles on all
1116
+ # routes.
1117
+ waiting_time: nil
1118
+ )
1119
+ end
1120
+
1121
+ sig do
1122
+ override.returns(
1123
+ {
1124
+ cost: Integer,
1125
+ delivery: T::Array[Integer],
1126
+ distance: Float,
1127
+ duration: Integer,
1128
+ num_late_visits: Integer,
1129
+ pickup: T::Array[Integer],
1130
+ priority: Integer,
1131
+ revenue: Integer,
1132
+ routes: Integer,
1133
+ service: Integer,
1134
+ setup: Integer,
1135
+ total_visit_lateness: Integer,
1136
+ unassigned: Integer,
1137
+ waiting_time: Integer
1138
+ }
1139
+ )
1140
+ end
1141
+ def to_hash
1142
+ end
1143
+ end
1144
+
1145
+ class Unassigned < Nextbillionai::Internal::Type::BaseModel
1146
+ OrHash =
1147
+ T.type_alias do
1148
+ T.any(
1149
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Result::Unassigned,
1150
+ Nextbillionai::Internal::AnyHash
1151
+ )
1152
+ end
1153
+
1154
+ # Returns the ID of the unassigned task. The ID returned is the same as that
1155
+ # provided for the given task in the jobs or the shipments part in the input POST
1156
+ # optimization request.
1157
+ #
1158
+ # **Note:** Since both integer and string value types are supported for task IDs,
1159
+ # the value type returned for this field will depend on the value type provided in
1160
+ # the input request for the unassigned task.
1161
+ sig { returns(T.nilable(String)) }
1162
+ attr_reader :id
1163
+
1164
+ sig { params(id: String).void }
1165
+ attr_writer :id
1166
+
1167
+ # Returns the location of the unassigned tasks in the \[latitude, longitude\]
1168
+ # format.
1169
+ sig { returns(T.nilable(T::Array[Float])) }
1170
+ attr_reader :location
1171
+
1172
+ sig { params(location: T::Array[Float]).void }
1173
+ attr_writer :location
1174
+
1175
+ # Returns the cost of outsourcing the task. This is the same value as provided in
1176
+ # the input. The field is present only if a outsourcing_cost was provided for the
1177
+ # unassigned task.
1178
+ sig { returns(T.nilable(Integer)) }
1179
+ attr_reader :outsourcing_cost
1180
+
1181
+ sig { params(outsourcing_cost: Integer).void }
1182
+ attr_writer :outsourcing_cost
1183
+
1184
+ # Returns the most likely reason due to which the task remained unassigned. The
1185
+ # optimization service can capture the following causes of tasks remaining
1186
+ # unassigned, among others:
1187
+ #
1188
+ # - unmatched skills of the tasks
1189
+ # - insufficient capacity of vehicle to accommodate the tasks
1190
+ # - time_window requirements of the tasks or the vehicles
1191
+ # - violation of vehicle’s max_activity_waiting_time constraint
1192
+ # - violation of vehicle’s max_tasks or max_stops constraints
1193
+ # - violation of vehicle’s max_distance or max_travel_time constraints
1194
+ # - task unassigned due to zone constraints
1195
+ # - task unassigned due to depot constraints
1196
+ # - task unassigned due to load type incompatibility constraints
1197
+ # - task unassigned due to max time in vehicle constraint
1198
+ # - task unassigned as it is unprofitable
1199
+ # - task unassigned due to low outsourcing cost
1200
+ # - task unassigned due to infeasible conditions specified in relations attribute
1201
+ sig { returns(T.nilable(String)) }
1202
+ attr_reader :reason
1203
+
1204
+ sig { params(reason: String).void }
1205
+ attr_writer :reason
1206
+
1207
+ # Returns the type of the task that was unassigned. Will always belong to one of
1208
+ # job, pickup, or delivery.
1209
+ sig { returns(T.nilable(String)) }
1210
+ attr_reader :type
1211
+
1212
+ sig { params(type: String).void }
1213
+ attr_writer :type
1214
+
1215
+ sig do
1216
+ params(
1217
+ id: String,
1218
+ location: T::Array[Float],
1219
+ outsourcing_cost: Integer,
1220
+ reason: String,
1221
+ type: String
1222
+ ).returns(T.attached_class)
1223
+ end
1224
+ def self.new(
1225
+ # Returns the ID of the unassigned task. The ID returned is the same as that
1226
+ # provided for the given task in the jobs or the shipments part in the input POST
1227
+ # optimization request.
1228
+ #
1229
+ # **Note:** Since both integer and string value types are supported for task IDs,
1230
+ # the value type returned for this field will depend on the value type provided in
1231
+ # the input request for the unassigned task.
1232
+ id: nil,
1233
+ # Returns the location of the unassigned tasks in the \[latitude, longitude\]
1234
+ # format.
1235
+ location: nil,
1236
+ # Returns the cost of outsourcing the task. This is the same value as provided in
1237
+ # the input. The field is present only if a outsourcing_cost was provided for the
1238
+ # unassigned task.
1239
+ outsourcing_cost: nil,
1240
+ # Returns the most likely reason due to which the task remained unassigned. The
1241
+ # optimization service can capture the following causes of tasks remaining
1242
+ # unassigned, among others:
1243
+ #
1244
+ # - unmatched skills of the tasks
1245
+ # - insufficient capacity of vehicle to accommodate the tasks
1246
+ # - time_window requirements of the tasks or the vehicles
1247
+ # - violation of vehicle’s max_activity_waiting_time constraint
1248
+ # - violation of vehicle’s max_tasks or max_stops constraints
1249
+ # - violation of vehicle’s max_distance or max_travel_time constraints
1250
+ # - task unassigned due to zone constraints
1251
+ # - task unassigned due to depot constraints
1252
+ # - task unassigned due to load type incompatibility constraints
1253
+ # - task unassigned due to max time in vehicle constraint
1254
+ # - task unassigned as it is unprofitable
1255
+ # - task unassigned due to low outsourcing cost
1256
+ # - task unassigned due to infeasible conditions specified in relations attribute
1257
+ reason: nil,
1258
+ # Returns the type of the task that was unassigned. Will always belong to one of
1259
+ # job, pickup, or delivery.
1260
+ type: nil
1261
+ )
1262
+ end
1263
+
1264
+ sig do
1265
+ override.returns(
1266
+ {
1267
+ id: String,
1268
+ location: T::Array[Float],
1269
+ outsourcing_cost: Integer,
1270
+ reason: String,
1271
+ type: String
1272
+ }
1273
+ )
1274
+ end
1275
+ def to_hash
1276
+ end
1277
+ end
1278
+ end
1279
+
1280
+ # It indicates the overall status or result of the API request denoting whether
1281
+ # the operation was successful or did it encounter any errors.
1282
+ module Status
1283
+ extend Nextbillionai::Internal::Type::Enum
1284
+
1285
+ TaggedSymbol =
1286
+ T.type_alias do
1287
+ T.all(
1288
+ Symbol,
1289
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status
1290
+ )
1291
+ end
1292
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1293
+
1294
+ OK =
1295
+ T.let(
1296
+ :Ok,
1297
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::TaggedSymbol
1298
+ )
1299
+ ERROR =
1300
+ T.let(
1301
+ :Error,
1302
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::TaggedSymbol
1303
+ )
1304
+
1305
+ sig do
1306
+ override.returns(
1307
+ T::Array[
1308
+ Nextbillionai::Models::Optimization::V2RetrieveResultResponse::Status::TaggedSymbol
1309
+ ]
1310
+ )
1311
+ end
1312
+ def self.values
1313
+ end
1314
+ end
1315
+ end
1316
+ end
1317
+ end
1318
+ end