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,798 @@
1
+ # typed: strong
2
+
3
+ module Nextbillionai
4
+ module Models
5
+ module Optimization
6
+ class Job < Nextbillionai::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Nextbillionai::Optimization::Job,
11
+ Nextbillionai::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Provide an unique ID for the job. The IDs are case-sensitive.
16
+ sig { returns(String) }
17
+ attr_accessor :id
18
+
19
+ # An integer denoting the index (in the location array) of the location
20
+ # coordinates where the job needs to be performed. The valid range of values is
21
+ # \[0, length of location array).
22
+ #
23
+ # Please note the location_index is mandatory when using the jobs object.
24
+ sig { returns(Integer) }
25
+ attr_accessor :location_index
26
+
27
+ # In case the job involves a delivery step, use this attribute to describe
28
+ # delivery quantity. This attribute supports multidimensional quantities, to
29
+ # support delivering quantities of different units/dimensions. It is recommended
30
+ # to keep the dimensions of quantity for pickup/delivery consistent when defining
31
+ # them in jobs and vehicles (in capacity attribute).
32
+ #
33
+ # Please note that the quantity of delivery will be added to the assigned
34
+ # vehicle’s initial load.
35
+ #
36
+ # In case depots are being added, the delivery configured here can be fulfilled by
37
+ # vehicles starting from specific depots. Refer to depot_ids and
38
+ # vehicles.start_depot_ids to know more.
39
+ sig { returns(T.nilable(T::Array[Integer])) }
40
+ attr_reader :delivery
41
+
42
+ sig { params(delivery: T::Array[Integer]).void }
43
+ attr_writer :delivery
44
+
45
+ # Specify the depots which can be used to fulfil this job. In case of a pickup
46
+ # job, the assigned vehicle will deliver the goods to the depot specified here, at
47
+ # the end of its trip. Conversely, in case of delivery jobs, the vehicle will load
48
+ # the goods from the depot specified here, before starting the trip.
49
+ #
50
+ # **Note:**
51
+ #
52
+ # - If multiple IDs are provided for this field then any of the given depots can
53
+ # be used to fulfil the job.
54
+ # - If this field is not provided then the given job can be fulfilled by any
55
+ # vehicle (subject to other constraints configured in the input).
56
+ # - If the job does not have any delivery or pick-up step configured then depots
57
+ # configuration will not have any impact on the given job.
58
+ sig { returns(T.nilable(T::Array[String])) }
59
+ attr_reader :depot_ids
60
+
61
+ sig { params(depot_ids: T::Array[String]).void }
62
+ attr_writer :depot_ids
63
+
64
+ # Add a custom description for the job.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :description
67
+
68
+ sig { params(description: String).void }
69
+ attr_writer :description
70
+
71
+ # Specify whether the job route should follow LIFO (last in, first out). Use this
72
+ # parameter when pickup or delivery jobs are involved and the loading or unloading
73
+ # sequence of cargo is important. The default is false.
74
+ sig { returns(T.nilable(T::Boolean)) }
75
+ attr_reader :follow_lifo_order
76
+
77
+ sig { params(follow_lifo_order: T::Boolean).void }
78
+ attr_writer :follow_lifo_order
79
+
80
+ # Use this parameter to specify the type of loads which are incompatible with the
81
+ # job’s load type. Once this property is configured, the job can only be serviced
82
+ # by a vehicle which has not serviced any other task with an incompatible
83
+ # load_types . Add multiple load types to indicate all the types which are
84
+ # incompatible for this job. The incompatible load type considerations are ignored
85
+ # for the first task of the route.
86
+ #
87
+ # For example, an input value of \[“groceries”, “food”\] means that current job’s
88
+ # load is incompatible with both groceries and food type of loads. Consequently,
89
+ # the optimizer will not assign this job to a vehicle which has served any task
90
+ # with load_types as either groceries or food.
91
+ #
92
+ # Note:
93
+ #
94
+ # - This parameter is effective only when a pickup / delivery is configured for
95
+ # the job.
96
+ # - If the job is part of any relations then, configured incompatible_load_types
97
+ # might be ignored.
98
+ sig { returns(T.nilable(T::Array[String])) }
99
+ attr_reader :incompatible_load_types
100
+
101
+ sig { params(incompatible_load_types: T::Array[String]).void }
102
+ attr_writer :incompatible_load_types
103
+
104
+ # Specify a joint order group ID that this job is associated with. Tasks having
105
+ # the same joint order group ID are treated as a single unit: either all tasks in
106
+ # the group are assigned, or none are. Users can add tasks of both jobs and
107
+ # shipments types to a single joint order group by using the same unique ID.
108
+ # Please note that:
109
+ #
110
+ # - Each job in a single joint order group will be fulfilled by a unique vehicle.
111
+ # - Jobs belonging to a joint order group can be served in any sequence.
112
+ # - Joint order settings will not be effective if \solution\ or \relations\
113
+ # attributes are also provided in the input request.
114
+ sig { returns(T.nilable(Integer)) }
115
+ attr_reader :joint_order
116
+
117
+ sig { params(joint_order: Integer).void }
118
+ attr_writer :joint_order
119
+
120
+ # Use this parameter to specify the type of loads for the given job. Once this
121
+ # property is configured, the job can not be served by a vehicle which has
122
+ # serviced any task whose load is incompatible with any of theload_types provided
123
+ # in this input. The load type considerations are ignored for the first task of
124
+ # the route.
125
+ #
126
+ # For example, an input value of \[“groceries”, “food”\] means that job’s load
127
+ # characteristics belong to either one or both types. Consequently, the optimizer
128
+ # will assign this job to a vehicle which has served other tasks whose
129
+ # incompatible_load_types do not contain either groceries or food.
130
+ #
131
+ # Note:
132
+ #
133
+ # - This parameter is effective only when a pickup / delivery is configured for
134
+ # the job.
135
+ # - If the job is part of any relations then, load_types might be ignored.
136
+ sig { returns(T.nilable(T::Array[String])) }
137
+ attr_reader :load_types
138
+
139
+ sig { params(load_types: T::Array[String]).void }
140
+ attr_writer :load_types
141
+
142
+ # It determines the allowable delay, in seconds, to begin a job after its
143
+ # designated time window has concluded. Please note that this parameter would
144
+ # override the constraint.max_visit_lateness (global) if both are specified.
145
+ sig { returns(T.nilable(Integer)) }
146
+ attr_reader :max_visit_lateness
147
+
148
+ sig { params(max_visit_lateness: Integer).void }
149
+ attr_writer :max_visit_lateness
150
+
151
+ # Specify any custom data that should be attached along with job fulfilment
152
+ # details in the steps attribute of the optimized solution. Users can leverage
153
+ # this property to provide additional details/context when sharing information
154
+ # about the job with integrated systems (TMS, Fleet Management, Driver dispatch
155
+ # etc).
156
+ #
157
+ # Please note that the metadata content must always be specified in akey : value
158
+ # pair format, where the “key” is always a string.
159
+ sig { returns(T.nilable(T.anything)) }
160
+ attr_reader :metadata
161
+
162
+ sig { params(metadata: T.anything).void }
163
+ attr_writer :metadata
164
+
165
+ # Specify the cost of keeping this job unassigned, namely, the cost of outsourcing
166
+ # the job. When provided, the optimizer weighs the cost of assigning the job
167
+ # against the cost of keeping it unassigned and chooses a solution with lower
168
+ # cost. In the solution, the outsourcing_cost of unassigned jobs is added to the
169
+ # total cost of the solution.
170
+ #
171
+ # If the outsourcing_cost is not provided, which is to say that the job can not be
172
+ # outsourced, then the optimizer tries to fulfill the job irrespective of the cost
173
+ # incurred, subject to other constraints.
174
+ #
175
+ # Please note that revenue and outsourcing_cost can not be specified
176
+ # simultaneously for a job. Also, the outsourcing_cost would override the priority
177
+ # settings of the job.
178
+ sig { returns(T.nilable(Integer)) }
179
+ attr_reader :outsourcing_cost
180
+
181
+ sig { params(outsourcing_cost: Integer).void }
182
+ attr_writer :outsourcing_cost
183
+
184
+ # In case the job involves a pickup step, use this attribute to describe pickup
185
+ # quantity. This attribute supports multidimensional quantities, to support
186
+ # picking up quantities of different units/dimensions. It is recommended to keep
187
+ # the dimensions of quantity for pickup/delivery consistent when defining them in
188
+ # jobs and vehicles (in capacity attribute).
189
+ #
190
+ # Please note that the vehicle will continue to carry the picked-up quantity until
191
+ # its last stop.
192
+ #
193
+ # In case depots are being added, the pickup configured here can be fulfilled by
194
+ # vehicles ending at specific depots. Refer to depot_ids and
195
+ # vehicles.end_depot_ids to know more.
196
+ sig { returns(T.nilable(T::Array[Integer])) }
197
+ attr_reader :pickup
198
+
199
+ sig { params(pickup: T::Array[Integer]).void }
200
+ attr_writer :pickup
201
+
202
+ # Specify the priority of this job. The valid values are in the range of \[0,
203
+ # 100\]. Default value is 0.
204
+ #
205
+ # Please note that setting a priority will only decide whether this job will be
206
+ # assigned or not, but has nothing to do with the sequence of job fulfilment.
207
+ sig { returns(T.nilable(Integer)) }
208
+ attr_reader :priority
209
+
210
+ sig { params(priority: Integer).void }
211
+ attr_writer :priority
212
+
213
+ # Specify the revenue earned by completing this job. The optimizer uses the
214
+ # revenue input to identify the potential profit earned by fulfilling this job
215
+ # after taking into account the costs incurred to do so. Theoptions.objective and
216
+ # vehicles.costs input are taken into account to identify the costs of fulfilling
217
+ # the job.
218
+ #
219
+ # In general, the optimizer will prefer fulfilling the tasks with higher profits
220
+ # over the tasks with lower profits, should it need to reject some tasks in order
221
+ # to honor other constraints. In case the profit from fulfilling a job is
222
+ # negative, it will remain unassigned whatsoever.
223
+ sig { returns(T.nilable(Integer)) }
224
+ attr_reader :revenue
225
+
226
+ sig { params(revenue: Integer).void }
227
+ attr_writer :revenue
228
+
229
+ # Use this parameter to prioritize completing a task relative to certain other
230
+ # tasks. A task configured with a sequence_order of 2 will be done after the task
231
+ # with sequence_order of 1, but before the task with sequence_order of 3. Valid
232
+ # range of values for this input is \[0,100\].
233
+ #
234
+ # Please note that:
235
+ #
236
+ # - Only the tasks within the same route are compared and ordered as per their
237
+ # sequence_order.
238
+ # - Tasks without a sequence_order are not involved in the comparison.
239
+ # - Following is the precedence of sequence_order when used along side some of the
240
+ # other constraints:
241
+ #
242
+ # - relations are prioritized over sequence_order comparisons.
243
+ # - sequence_order will override order_grouping configurations.
244
+ sig { returns(T.nilable(Integer)) }
245
+ attr_reader :sequence_order
246
+
247
+ sig { params(sequence_order: Integer).void }
248
+ attr_writer :sequence_order
249
+
250
+ # Use this attribute to define the time duration, in seconds, needed to complete
251
+ # the job. Default value is 0.
252
+ sig { returns(T.nilable(Integer)) }
253
+ attr_reader :service
254
+
255
+ sig { params(service: Integer).void }
256
+ attr_writer :service
257
+
258
+ # Specify the job set-up duration, in seconds. setup is the one-time effort needed
259
+ # apart from working on the original task - for example, effort to record some
260
+ # information for compliance, or effort to set-up the equipment, or perform any
261
+ # other action for completing all steps required to fulfil the job.
262
+ #
263
+ # Please note that setup time is applied only once for a given task location.
264
+ # setup time, unlike service time, is not repeated in case there are multiple
265
+ # tasks at the same location.
266
+ sig { returns(T.nilable(Integer)) }
267
+ attr_reader :setup
268
+
269
+ sig { params(setup: Integer).void }
270
+ attr_writer :setup
271
+
272
+ # Define the skills needed to complete the job. This attribute supports
273
+ # multidimensional skills allowing users to add multiple skills.
274
+ #
275
+ # Read more about the behavior of this attribute in the
276
+ # [Multi-Dimensional Parameters](#multi-dimensional-parameters) section.
277
+ sig { returns(T.nilable(T::Array[Integer])) }
278
+ attr_reader :skills
279
+
280
+ sig { params(skills: T::Array[Integer]).void }
281
+ attr_writer :skills
282
+
283
+ # Define time periods within which this job should be started. The time periods
284
+ # should be expressed as a UNIX timestamp in seconds.
285
+ #
286
+ # Please note that the time periods should not overlap with each other and should
287
+ # always follow the format of \[start_timestamp, end_timestamp\].
288
+ sig { returns(T.nilable(T::Array[T::Array[Integer]])) }
289
+ attr_reader :time_windows
290
+
291
+ sig { params(time_windows: T::Array[T::Array[Integer]]).void }
292
+ attr_writer :time_windows
293
+
294
+ # Specify the dimensions and alignment configurations for the cargo associated
295
+ # with the task. These inputs will be used to arrange the items into the loading
296
+ # compartment of the vehicle to utilize the three-dimensional space. If a job
297
+ # consists of several different items, each with its own dimensions, please
298
+ # specify the final characteristics for the task: total height, total length,
299
+ # total width.
300
+ #
301
+ # Please note that vehicles which contain the volume input, will only be
302
+ # considered for arranging such items.
303
+ sig { returns(T.nilable(Nextbillionai::Optimization::Job::Volume)) }
304
+ attr_reader :volume
305
+
306
+ sig do
307
+ params(volume: Nextbillionai::Optimization::Job::Volume::OrHash).void
308
+ end
309
+ attr_writer :volume
310
+
311
+ # An array of integers specifying the IDs of the zone(s) that this job belongs to.
312
+ # The job can be fulfilled by all vehicles which are allowed to complete tasks in
313
+ # the zone(s) assigned to this job. Please note following points about job zones:
314
+ #
315
+ # - If zone IDs are provided for any one of the jobs, then all other jobs should
316
+ # also be specified with zone IDs. Zone IDs provided here will override any zone
317
+ # geometries provided in the zones attribute and these IDs will be used for
318
+ # allocating appropriate vehicles.
319
+ # - Jobs can be auto-allocated to zones if this parameter is not specified while
320
+ # the zone geometries (either zones.geometry or zones.geofence_id) are provided.
321
+ # - Jobs not falling in any zones can be fulfilled by only those vehicles which
322
+ # are allowed to take up tasks outside zones as well. Refer to vehicles
323
+ # attribute for more information.
324
+ sig { returns(T.nilable(T::Array[Integer])) }
325
+ attr_reader :zones
326
+
327
+ sig { params(zones: T::Array[Integer]).void }
328
+ attr_writer :zones
329
+
330
+ sig do
331
+ params(
332
+ id: String,
333
+ location_index: Integer,
334
+ delivery: T::Array[Integer],
335
+ depot_ids: T::Array[String],
336
+ description: String,
337
+ follow_lifo_order: T::Boolean,
338
+ incompatible_load_types: T::Array[String],
339
+ joint_order: Integer,
340
+ load_types: T::Array[String],
341
+ max_visit_lateness: Integer,
342
+ metadata: T.anything,
343
+ outsourcing_cost: Integer,
344
+ pickup: T::Array[Integer],
345
+ priority: Integer,
346
+ revenue: Integer,
347
+ sequence_order: Integer,
348
+ service: Integer,
349
+ setup: Integer,
350
+ skills: T::Array[Integer],
351
+ time_windows: T::Array[T::Array[Integer]],
352
+ volume: Nextbillionai::Optimization::Job::Volume::OrHash,
353
+ zones: T::Array[Integer]
354
+ ).returns(T.attached_class)
355
+ end
356
+ def self.new(
357
+ # Provide an unique ID for the job. The IDs are case-sensitive.
358
+ id:,
359
+ # An integer denoting the index (in the location array) of the location
360
+ # coordinates where the job needs to be performed. The valid range of values is
361
+ # \[0, length of location array).
362
+ #
363
+ # Please note the location_index is mandatory when using the jobs object.
364
+ location_index:,
365
+ # In case the job involves a delivery step, use this attribute to describe
366
+ # delivery quantity. This attribute supports multidimensional quantities, to
367
+ # support delivering quantities of different units/dimensions. It is recommended
368
+ # to keep the dimensions of quantity for pickup/delivery consistent when defining
369
+ # them in jobs and vehicles (in capacity attribute).
370
+ #
371
+ # Please note that the quantity of delivery will be added to the assigned
372
+ # vehicle’s initial load.
373
+ #
374
+ # In case depots are being added, the delivery configured here can be fulfilled by
375
+ # vehicles starting from specific depots. Refer to depot_ids and
376
+ # vehicles.start_depot_ids to know more.
377
+ delivery: nil,
378
+ # Specify the depots which can be used to fulfil this job. In case of a pickup
379
+ # job, the assigned vehicle will deliver the goods to the depot specified here, at
380
+ # the end of its trip. Conversely, in case of delivery jobs, the vehicle will load
381
+ # the goods from the depot specified here, before starting the trip.
382
+ #
383
+ # **Note:**
384
+ #
385
+ # - If multiple IDs are provided for this field then any of the given depots can
386
+ # be used to fulfil the job.
387
+ # - If this field is not provided then the given job can be fulfilled by any
388
+ # vehicle (subject to other constraints configured in the input).
389
+ # - If the job does not have any delivery or pick-up step configured then depots
390
+ # configuration will not have any impact on the given job.
391
+ depot_ids: nil,
392
+ # Add a custom description for the job.
393
+ description: nil,
394
+ # Specify whether the job route should follow LIFO (last in, first out). Use this
395
+ # parameter when pickup or delivery jobs are involved and the loading or unloading
396
+ # sequence of cargo is important. The default is false.
397
+ follow_lifo_order: nil,
398
+ # Use this parameter to specify the type of loads which are incompatible with the
399
+ # job’s load type. Once this property is configured, the job can only be serviced
400
+ # by a vehicle which has not serviced any other task with an incompatible
401
+ # load_types . Add multiple load types to indicate all the types which are
402
+ # incompatible for this job. The incompatible load type considerations are ignored
403
+ # for the first task of the route.
404
+ #
405
+ # For example, an input value of \[“groceries”, “food”\] means that current job’s
406
+ # load is incompatible with both groceries and food type of loads. Consequently,
407
+ # the optimizer will not assign this job to a vehicle which has served any task
408
+ # with load_types as either groceries or food.
409
+ #
410
+ # Note:
411
+ #
412
+ # - This parameter is effective only when a pickup / delivery is configured for
413
+ # the job.
414
+ # - If the job is part of any relations then, configured incompatible_load_types
415
+ # might be ignored.
416
+ incompatible_load_types: nil,
417
+ # Specify a joint order group ID that this job is associated with. Tasks having
418
+ # the same joint order group ID are treated as a single unit: either all tasks in
419
+ # the group are assigned, or none are. Users can add tasks of both jobs and
420
+ # shipments types to a single joint order group by using the same unique ID.
421
+ # Please note that:
422
+ #
423
+ # - Each job in a single joint order group will be fulfilled by a unique vehicle.
424
+ # - Jobs belonging to a joint order group can be served in any sequence.
425
+ # - Joint order settings will not be effective if \solution\ or \relations\
426
+ # attributes are also provided in the input request.
427
+ joint_order: nil,
428
+ # Use this parameter to specify the type of loads for the given job. Once this
429
+ # property is configured, the job can not be served by a vehicle which has
430
+ # serviced any task whose load is incompatible with any of theload_types provided
431
+ # in this input. The load type considerations are ignored for the first task of
432
+ # the route.
433
+ #
434
+ # For example, an input value of \[“groceries”, “food”\] means that job’s load
435
+ # characteristics belong to either one or both types. Consequently, the optimizer
436
+ # will assign this job to a vehicle which has served other tasks whose
437
+ # incompatible_load_types do not contain either groceries or food.
438
+ #
439
+ # Note:
440
+ #
441
+ # - This parameter is effective only when a pickup / delivery is configured for
442
+ # the job.
443
+ # - If the job is part of any relations then, load_types might be ignored.
444
+ load_types: nil,
445
+ # It determines the allowable delay, in seconds, to begin a job after its
446
+ # designated time window has concluded. Please note that this parameter would
447
+ # override the constraint.max_visit_lateness (global) if both are specified.
448
+ max_visit_lateness: nil,
449
+ # Specify any custom data that should be attached along with job fulfilment
450
+ # details in the steps attribute of the optimized solution. Users can leverage
451
+ # this property to provide additional details/context when sharing information
452
+ # about the job with integrated systems (TMS, Fleet Management, Driver dispatch
453
+ # etc).
454
+ #
455
+ # Please note that the metadata content must always be specified in akey : value
456
+ # pair format, where the “key” is always a string.
457
+ metadata: nil,
458
+ # Specify the cost of keeping this job unassigned, namely, the cost of outsourcing
459
+ # the job. When provided, the optimizer weighs the cost of assigning the job
460
+ # against the cost of keeping it unassigned and chooses a solution with lower
461
+ # cost. In the solution, the outsourcing_cost of unassigned jobs is added to the
462
+ # total cost of the solution.
463
+ #
464
+ # If the outsourcing_cost is not provided, which is to say that the job can not be
465
+ # outsourced, then the optimizer tries to fulfill the job irrespective of the cost
466
+ # incurred, subject to other constraints.
467
+ #
468
+ # Please note that revenue and outsourcing_cost can not be specified
469
+ # simultaneously for a job. Also, the outsourcing_cost would override the priority
470
+ # settings of the job.
471
+ outsourcing_cost: nil,
472
+ # In case the job involves a pickup step, use this attribute to describe pickup
473
+ # quantity. This attribute supports multidimensional quantities, to support
474
+ # picking up quantities of different units/dimensions. It is recommended to keep
475
+ # the dimensions of quantity for pickup/delivery consistent when defining them in
476
+ # jobs and vehicles (in capacity attribute).
477
+ #
478
+ # Please note that the vehicle will continue to carry the picked-up quantity until
479
+ # its last stop.
480
+ #
481
+ # In case depots are being added, the pickup configured here can be fulfilled by
482
+ # vehicles ending at specific depots. Refer to depot_ids and
483
+ # vehicles.end_depot_ids to know more.
484
+ pickup: nil,
485
+ # Specify the priority of this job. The valid values are in the range of \[0,
486
+ # 100\]. Default value is 0.
487
+ #
488
+ # Please note that setting a priority will only decide whether this job will be
489
+ # assigned or not, but has nothing to do with the sequence of job fulfilment.
490
+ priority: nil,
491
+ # Specify the revenue earned by completing this job. The optimizer uses the
492
+ # revenue input to identify the potential profit earned by fulfilling this job
493
+ # after taking into account the costs incurred to do so. Theoptions.objective and
494
+ # vehicles.costs input are taken into account to identify the costs of fulfilling
495
+ # the job.
496
+ #
497
+ # In general, the optimizer will prefer fulfilling the tasks with higher profits
498
+ # over the tasks with lower profits, should it need to reject some tasks in order
499
+ # to honor other constraints. In case the profit from fulfilling a job is
500
+ # negative, it will remain unassigned whatsoever.
501
+ revenue: nil,
502
+ # Use this parameter to prioritize completing a task relative to certain other
503
+ # tasks. A task configured with a sequence_order of 2 will be done after the task
504
+ # with sequence_order of 1, but before the task with sequence_order of 3. Valid
505
+ # range of values for this input is \[0,100\].
506
+ #
507
+ # Please note that:
508
+ #
509
+ # - Only the tasks within the same route are compared and ordered as per their
510
+ # sequence_order.
511
+ # - Tasks without a sequence_order are not involved in the comparison.
512
+ # - Following is the precedence of sequence_order when used along side some of the
513
+ # other constraints:
514
+ #
515
+ # - relations are prioritized over sequence_order comparisons.
516
+ # - sequence_order will override order_grouping configurations.
517
+ sequence_order: nil,
518
+ # Use this attribute to define the time duration, in seconds, needed to complete
519
+ # the job. Default value is 0.
520
+ service: nil,
521
+ # Specify the job set-up duration, in seconds. setup is the one-time effort needed
522
+ # apart from working on the original task - for example, effort to record some
523
+ # information for compliance, or effort to set-up the equipment, or perform any
524
+ # other action for completing all steps required to fulfil the job.
525
+ #
526
+ # Please note that setup time is applied only once for a given task location.
527
+ # setup time, unlike service time, is not repeated in case there are multiple
528
+ # tasks at the same location.
529
+ setup: nil,
530
+ # Define the skills needed to complete the job. This attribute supports
531
+ # multidimensional skills allowing users to add multiple skills.
532
+ #
533
+ # Read more about the behavior of this attribute in the
534
+ # [Multi-Dimensional Parameters](#multi-dimensional-parameters) section.
535
+ skills: nil,
536
+ # Define time periods within which this job should be started. The time periods
537
+ # should be expressed as a UNIX timestamp in seconds.
538
+ #
539
+ # Please note that the time periods should not overlap with each other and should
540
+ # always follow the format of \[start_timestamp, end_timestamp\].
541
+ time_windows: nil,
542
+ # Specify the dimensions and alignment configurations for the cargo associated
543
+ # with the task. These inputs will be used to arrange the items into the loading
544
+ # compartment of the vehicle to utilize the three-dimensional space. If a job
545
+ # consists of several different items, each with its own dimensions, please
546
+ # specify the final characteristics for the task: total height, total length,
547
+ # total width.
548
+ #
549
+ # Please note that vehicles which contain the volume input, will only be
550
+ # considered for arranging such items.
551
+ volume: nil,
552
+ # An array of integers specifying the IDs of the zone(s) that this job belongs to.
553
+ # The job can be fulfilled by all vehicles which are allowed to complete tasks in
554
+ # the zone(s) assigned to this job. Please note following points about job zones:
555
+ #
556
+ # - If zone IDs are provided for any one of the jobs, then all other jobs should
557
+ # also be specified with zone IDs. Zone IDs provided here will override any zone
558
+ # geometries provided in the zones attribute and these IDs will be used for
559
+ # allocating appropriate vehicles.
560
+ # - Jobs can be auto-allocated to zones if this parameter is not specified while
561
+ # the zone geometries (either zones.geometry or zones.geofence_id) are provided.
562
+ # - Jobs not falling in any zones can be fulfilled by only those vehicles which
563
+ # are allowed to take up tasks outside zones as well. Refer to vehicles
564
+ # attribute for more information.
565
+ zones: nil
566
+ )
567
+ end
568
+
569
+ sig do
570
+ override.returns(
571
+ {
572
+ id: String,
573
+ location_index: Integer,
574
+ delivery: T::Array[Integer],
575
+ depot_ids: T::Array[String],
576
+ description: String,
577
+ follow_lifo_order: T::Boolean,
578
+ incompatible_load_types: T::Array[String],
579
+ joint_order: Integer,
580
+ load_types: T::Array[String],
581
+ max_visit_lateness: Integer,
582
+ metadata: T.anything,
583
+ outsourcing_cost: Integer,
584
+ pickup: T::Array[Integer],
585
+ priority: Integer,
586
+ revenue: Integer,
587
+ sequence_order: Integer,
588
+ service: Integer,
589
+ setup: Integer,
590
+ skills: T::Array[Integer],
591
+ time_windows: T::Array[T::Array[Integer]],
592
+ volume: Nextbillionai::Optimization::Job::Volume,
593
+ zones: T::Array[Integer]
594
+ }
595
+ )
596
+ end
597
+ def to_hash
598
+ end
599
+
600
+ class Volume < Nextbillionai::Internal::Type::BaseModel
601
+ OrHash =
602
+ T.type_alias do
603
+ T.any(
604
+ Nextbillionai::Optimization::Job::Volume,
605
+ Nextbillionai::Internal::AnyHash
606
+ )
607
+ end
608
+
609
+ # Refers to the orientation of the cargo in the loading compartment. It supports
610
+ # the following values:
611
+ #
612
+ # - **" "** : A blank space to indicate that the dimension check for the cargo
613
+ # should be skipped. This is also the default value.
614
+ # - **strict :** In this orientation, the cargo must fit within the vehicle’s
615
+ # dimensions exactly as is—no rotation is allowed. All dimensions of the cargo
616
+ # must be less than or equal to the corresponding dimensions of the vehicle. If
617
+ # any dimension exceeds that of the vehicle, the cargo cannot be loaded.
618
+ # - **parallel :** With parallel orientation, the cargo can be rotated around any
619
+ # one of the axes to help it fit into the loading compartment. For example, if
620
+ # the cargo is wider than the vehicle, it can still be loaded by rotating it
621
+ # around the vertical axis (so the width aligns with the vehicle’s depth) or the
622
+ # horizontal axis (so the width aligns with the vehicle’s height). Using this
623
+ # orientation, even a cargo whose one dimension is larger than the corresponding
624
+ # dimension of the vehicle but smaller than other dimensions, can also be
625
+ # loaded.
626
+ # - **fixed_bottom :** In this orientation, the cargo can only be rotated around
627
+ # the vertical axis, meaning its base stays fixed and it cannot be tilted or
628
+ # turned over. The height of the cargo remains aligned with the vehicle’s height
629
+ # and cannot be adjusted. As a result, if the cargo’s height exceeds the
630
+ # vehicle’s available height, it cannot be loaded into the compartment.
631
+ sig do
632
+ returns(
633
+ T.nilable(
634
+ Nextbillionai::Optimization::Job::Volume::Alignment::OrSymbol
635
+ )
636
+ )
637
+ end
638
+ attr_reader :alignment
639
+
640
+ sig do
641
+ params(
642
+ alignment:
643
+ Nextbillionai::Optimization::Job::Volume::Alignment::OrSymbol
644
+ ).void
645
+ end
646
+ attr_writer :alignment
647
+
648
+ # Cargo length, in meters.
649
+ sig { returns(T.nilable(Float)) }
650
+ attr_reader :depth
651
+
652
+ sig { params(depth: Float).void }
653
+ attr_writer :depth
654
+
655
+ # Cargo height, in meters.
656
+ sig { returns(T.nilable(Float)) }
657
+ attr_reader :height
658
+
659
+ sig { params(height: Float).void }
660
+ attr_writer :height
661
+
662
+ # Cargo width, in meters.
663
+ sig { returns(T.nilable(Float)) }
664
+ attr_reader :width
665
+
666
+ sig { params(width: Float).void }
667
+ attr_writer :width
668
+
669
+ # Specify the dimensions and alignment configurations for the cargo associated
670
+ # with the task. These inputs will be used to arrange the items into the loading
671
+ # compartment of the vehicle to utilize the three-dimensional space. If a job
672
+ # consists of several different items, each with its own dimensions, please
673
+ # specify the final characteristics for the task: total height, total length,
674
+ # total width.
675
+ #
676
+ # Please note that vehicles which contain the volume input, will only be
677
+ # considered for arranging such items.
678
+ sig do
679
+ params(
680
+ alignment:
681
+ Nextbillionai::Optimization::Job::Volume::Alignment::OrSymbol,
682
+ depth: Float,
683
+ height: Float,
684
+ width: Float
685
+ ).returns(T.attached_class)
686
+ end
687
+ def self.new(
688
+ # Refers to the orientation of the cargo in the loading compartment. It supports
689
+ # the following values:
690
+ #
691
+ # - **" "** : A blank space to indicate that the dimension check for the cargo
692
+ # should be skipped. This is also the default value.
693
+ # - **strict :** In this orientation, the cargo must fit within the vehicle’s
694
+ # dimensions exactly as is—no rotation is allowed. All dimensions of the cargo
695
+ # must be less than or equal to the corresponding dimensions of the vehicle. If
696
+ # any dimension exceeds that of the vehicle, the cargo cannot be loaded.
697
+ # - **parallel :** With parallel orientation, the cargo can be rotated around any
698
+ # one of the axes to help it fit into the loading compartment. For example, if
699
+ # the cargo is wider than the vehicle, it can still be loaded by rotating it
700
+ # around the vertical axis (so the width aligns with the vehicle’s depth) or the
701
+ # horizontal axis (so the width aligns with the vehicle’s height). Using this
702
+ # orientation, even a cargo whose one dimension is larger than the corresponding
703
+ # dimension of the vehicle but smaller than other dimensions, can also be
704
+ # loaded.
705
+ # - **fixed_bottom :** In this orientation, the cargo can only be rotated around
706
+ # the vertical axis, meaning its base stays fixed and it cannot be tilted or
707
+ # turned over. The height of the cargo remains aligned with the vehicle’s height
708
+ # and cannot be adjusted. As a result, if the cargo’s height exceeds the
709
+ # vehicle’s available height, it cannot be loaded into the compartment.
710
+ alignment: nil,
711
+ # Cargo length, in meters.
712
+ depth: nil,
713
+ # Cargo height, in meters.
714
+ height: nil,
715
+ # Cargo width, in meters.
716
+ width: nil
717
+ )
718
+ end
719
+
720
+ sig do
721
+ override.returns(
722
+ {
723
+ alignment:
724
+ Nextbillionai::Optimization::Job::Volume::Alignment::OrSymbol,
725
+ depth: Float,
726
+ height: Float,
727
+ width: Float
728
+ }
729
+ )
730
+ end
731
+ def to_hash
732
+ end
733
+
734
+ # Refers to the orientation of the cargo in the loading compartment. It supports
735
+ # the following values:
736
+ #
737
+ # - **" "** : A blank space to indicate that the dimension check for the cargo
738
+ # should be skipped. This is also the default value.
739
+ # - **strict :** In this orientation, the cargo must fit within the vehicle’s
740
+ # dimensions exactly as is—no rotation is allowed. All dimensions of the cargo
741
+ # must be less than or equal to the corresponding dimensions of the vehicle. If
742
+ # any dimension exceeds that of the vehicle, the cargo cannot be loaded.
743
+ # - **parallel :** With parallel orientation, the cargo can be rotated around any
744
+ # one of the axes to help it fit into the loading compartment. For example, if
745
+ # the cargo is wider than the vehicle, it can still be loaded by rotating it
746
+ # around the vertical axis (so the width aligns with the vehicle’s depth) or the
747
+ # horizontal axis (so the width aligns with the vehicle’s height). Using this
748
+ # orientation, even a cargo whose one dimension is larger than the corresponding
749
+ # dimension of the vehicle but smaller than other dimensions, can also be
750
+ # loaded.
751
+ # - **fixed_bottom :** In this orientation, the cargo can only be rotated around
752
+ # the vertical axis, meaning its base stays fixed and it cannot be tilted or
753
+ # turned over. The height of the cargo remains aligned with the vehicle’s height
754
+ # and cannot be adjusted. As a result, if the cargo’s height exceeds the
755
+ # vehicle’s available height, it cannot be loaded into the compartment.
756
+ module Alignment
757
+ extend Nextbillionai::Internal::Type::Enum
758
+
759
+ TaggedSymbol =
760
+ T.type_alias do
761
+ T.all(
762
+ Symbol,
763
+ Nextbillionai::Optimization::Job::Volume::Alignment
764
+ )
765
+ end
766
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
767
+
768
+ STRICT =
769
+ T.let(
770
+ :strict,
771
+ Nextbillionai::Optimization::Job::Volume::Alignment::TaggedSymbol
772
+ )
773
+ PARALLEL =
774
+ T.let(
775
+ :parallel,
776
+ Nextbillionai::Optimization::Job::Volume::Alignment::TaggedSymbol
777
+ )
778
+ FIXED_BOTTOM =
779
+ T.let(
780
+ :fixed_bottom,
781
+ Nextbillionai::Optimization::Job::Volume::Alignment::TaggedSymbol
782
+ )
783
+
784
+ sig do
785
+ override.returns(
786
+ T::Array[
787
+ Nextbillionai::Optimization::Job::Volume::Alignment::TaggedSymbol
788
+ ]
789
+ )
790
+ end
791
+ def self.values
792
+ end
793
+ end
794
+ end
795
+ end
796
+ end
797
+ end
798
+ end