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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +44 -0
- data/README.md +259 -0
- data/SECURITY.md +27 -0
- data/lib/nextbillionai/client.rb +168 -0
- data/lib/nextbillionai/errors.rb +214 -0
- data/lib/nextbillionai/file_part.rb +55 -0
- data/lib/nextbillionai/internal/transport/base_client.rb +573 -0
- data/lib/nextbillionai/internal/transport/pooled_net_requester.rb +209 -0
- data/lib/nextbillionai/internal/type/array_of.rb +167 -0
- data/lib/nextbillionai/internal/type/base_model.rb +539 -0
- data/lib/nextbillionai/internal/type/base_page.rb +55 -0
- data/lib/nextbillionai/internal/type/boolean.rb +77 -0
- data/lib/nextbillionai/internal/type/converter.rb +300 -0
- data/lib/nextbillionai/internal/type/enum.rb +156 -0
- data/lib/nextbillionai/internal/type/file_input.rb +108 -0
- data/lib/nextbillionai/internal/type/hash_of.rb +187 -0
- data/lib/nextbillionai/internal/type/request_parameters.rb +42 -0
- data/lib/nextbillionai/internal/type/union.rb +241 -0
- data/lib/nextbillionai/internal/type/unknown.rb +81 -0
- data/lib/nextbillionai/internal/util.rb +914 -0
- data/lib/nextbillionai/internal.rb +20 -0
- data/lib/nextbillionai/models/access.rb +27 -0
- data/lib/nextbillionai/models/address.rb +107 -0
- data/lib/nextbillionai/models/area_list_params.rb +26 -0
- data/lib/nextbillionai/models/area_list_response.rb +44 -0
- data/lib/nextbillionai/models/autocomplete_suggest_params.rb +99 -0
- data/lib/nextbillionai/models/autocomplete_suggest_response.rb +253 -0
- data/lib/nextbillionai/models/autosuggest_suggest_params.rb +99 -0
- data/lib/nextbillionai/models/autosuggest_suggest_response.rb +253 -0
- data/lib/nextbillionai/models/batch_create_params.rb +54 -0
- data/lib/nextbillionai/models/batch_create_response.rb +41 -0
- data/lib/nextbillionai/models/batch_retrieve_params.rb +35 -0
- data/lib/nextbillionai/models/batch_retrieve_response.rb +76 -0
- data/lib/nextbillionai/models/browse_search_params.rb +98 -0
- data/lib/nextbillionai/models/browse_search_response.rb +252 -0
- data/lib/nextbillionai/models/categories.rb +36 -0
- data/lib/nextbillionai/models/contact_object.rb +48 -0
- data/lib/nextbillionai/models/contacts.rb +47 -0
- data/lib/nextbillionai/models/direction_compute_route_params.rb +684 -0
- data/lib/nextbillionai/models/direction_compute_route_response.rb +629 -0
- data/lib/nextbillionai/models/discover_retrieve_params.rb +99 -0
- data/lib/nextbillionai/models/discover_retrieve_response.rb +253 -0
- data/lib/nextbillionai/models/distance_matrix/json_create_params.rb +16 -0
- data/lib/nextbillionai/models/distance_matrix/json_retrieve_params.rb +220 -0
- data/lib/nextbillionai/models/distance_matrix/json_retrieve_response.rb +82 -0
- data/lib/nextbillionai/models/fleetify/document_template_content_request.rb +189 -0
- data/lib/nextbillionai/models/fleetify/document_template_content_response.rb +168 -0
- data/lib/nextbillionai/models/fleetify/document_template_create_params.rb +50 -0
- data/lib/nextbillionai/models/fleetify/document_template_create_response.rb +79 -0
- data/lib/nextbillionai/models/fleetify/document_template_delete_params.rb +29 -0
- data/lib/nextbillionai/models/fleetify/document_template_delete_response.rb +32 -0
- data/lib/nextbillionai/models/fleetify/document_template_list_params.rb +28 -0
- data/lib/nextbillionai/models/fleetify/document_template_list_response.rb +85 -0
- data/lib/nextbillionai/models/fleetify/document_template_retrieve_params.rb +29 -0
- data/lib/nextbillionai/models/fleetify/document_template_retrieve_response.rb +80 -0
- data/lib/nextbillionai/models/fleetify/document_template_update_params.rb +50 -0
- data/lib/nextbillionai/models/fleetify/document_template_update_response.rb +78 -0
- data/lib/nextbillionai/models/fleetify/route_create_params.rb +276 -0
- data/lib/nextbillionai/models/fleetify/route_create_response.rb +196 -0
- data/lib/nextbillionai/models/fleetify/route_redispatch_params.rb +139 -0
- data/lib/nextbillionai/models/fleetify/route_redispatch_response.rb +432 -0
- data/lib/nextbillionai/models/fleetify/routes/document_submission.rb +12 -0
- data/lib/nextbillionai/models/fleetify/routes/route_step_completion_mode.rb +31 -0
- data/lib/nextbillionai/models/fleetify/routes/route_step_geofence_config.rb +53 -0
- data/lib/nextbillionai/models/fleetify/routes/route_steps_request.rb +174 -0
- data/lib/nextbillionai/models/fleetify/routes/route_steps_response.rb +273 -0
- data/lib/nextbillionai/models/fleetify/routes/step_complete_params.rb +69 -0
- data/lib/nextbillionai/models/fleetify/routes/step_create_params.rb +193 -0
- data/lib/nextbillionai/models/fleetify/routes/step_create_response.rb +40 -0
- data/lib/nextbillionai/models/fleetify/routes/step_delete_params.rb +37 -0
- data/lib/nextbillionai/models/fleetify/routes/step_delete_response.rb +33 -0
- data/lib/nextbillionai/models/fleetify/routes/step_update_params.rb +195 -0
- data/lib/nextbillionai/models/fleetify/routes/step_update_response.rb +40 -0
- data/lib/nextbillionai/models/fleetify/routing_response.rb +86 -0
- data/lib/nextbillionai/models/geocode_batch_create_params.rb +112 -0
- data/lib/nextbillionai/models/geocode_batch_create_response.rb +139 -0
- data/lib/nextbillionai/models/geocode_retrieve_params.rb +99 -0
- data/lib/nextbillionai/models/geocode_retrieve_response.rb +253 -0
- data/lib/nextbillionai/models/geocode_structured_retrieve_params.rb +132 -0
- data/lib/nextbillionai/models/geocode_structured_retrieve_response.rb +254 -0
- data/lib/nextbillionai/models/geofence/batch_create_params.rb +40 -0
- data/lib/nextbillionai/models/geofence/batch_create_response.rb +45 -0
- data/lib/nextbillionai/models/geofence/batch_delete_params.rb +37 -0
- data/lib/nextbillionai/models/geofence/batch_list_params.rb +36 -0
- data/lib/nextbillionai/models/geofence/batch_list_response.rb +47 -0
- data/lib/nextbillionai/models/geofence/console_preview_params.rb +16 -0
- data/lib/nextbillionai/models/geofence/console_preview_response.rb +41 -0
- data/lib/nextbillionai/models/geofence/console_search_params.rb +24 -0
- data/lib/nextbillionai/models/geofence/console_search_response.rb +62 -0
- data/lib/nextbillionai/models/geofence/polygon_geojson.rb +34 -0
- data/lib/nextbillionai/models/geofence.rb +202 -0
- data/lib/nextbillionai/models/geofence_contains_params.rb +56 -0
- data/lib/nextbillionai/models/geofence_contains_response.rb +99 -0
- data/lib/nextbillionai/models/geofence_create_params.rb +26 -0
- data/lib/nextbillionai/models/geofence_create_response.rb +49 -0
- data/lib/nextbillionai/models/geofence_delete_params.rb +26 -0
- data/lib/nextbillionai/models/geofence_entity_create.rb +328 -0
- data/lib/nextbillionai/models/geofence_list_params.rb +58 -0
- data/lib/nextbillionai/models/geofence_list_response.rb +52 -0
- data/lib/nextbillionai/models/geofence_retrieve_params.rb +26 -0
- data/lib/nextbillionai/models/geofence_retrieve_response.rb +41 -0
- data/lib/nextbillionai/models/geofence_update_params.rb +322 -0
- data/lib/nextbillionai/models/isochrone_compute_params.rb +153 -0
- data/lib/nextbillionai/models/isochrone_compute_response.rb +187 -0
- data/lib/nextbillionai/models/lookup_by_id_params.rb +35 -0
- data/lib/nextbillionai/models/lookup_by_id_response.rb +94 -0
- data/lib/nextbillionai/models/map_create_segment_params.rb +14 -0
- data/lib/nextbillionai/models/map_view.rb +43 -0
- data/lib/nextbillionai/models/mdm_create_distance_matrix_params.rb +385 -0
- data/lib/nextbillionai/models/mdm_create_distance_matrix_response.rb +50 -0
- data/lib/nextbillionai/models/mdm_get_distance_matrix_status_params.rb +35 -0
- data/lib/nextbillionai/models/mdm_get_distance_matrix_status_response.rb +64 -0
- data/lib/nextbillionai/models/multigeocode/place_create_params.rb +276 -0
- data/lib/nextbillionai/models/multigeocode/place_create_response.rb +24 -0
- data/lib/nextbillionai/models/multigeocode/place_delete_params.rb +28 -0
- data/lib/nextbillionai/models/multigeocode/place_delete_response.rb +31 -0
- data/lib/nextbillionai/models/multigeocode/place_item.rb +154 -0
- data/lib/nextbillionai/models/multigeocode/place_retrieve_params.rb +28 -0
- data/lib/nextbillionai/models/multigeocode/place_retrieve_response.rb +107 -0
- data/lib/nextbillionai/models/multigeocode/place_update_params.rb +118 -0
- data/lib/nextbillionai/models/multigeocode/place_update_response.rb +31 -0
- data/lib/nextbillionai/models/multigeocode_search_params.rb +135 -0
- data/lib/nextbillionai/models/multigeocode_search_response.rb +117 -0
- data/lib/nextbillionai/models/navigation_retrieve_route_params.rb +328 -0
- data/lib/nextbillionai/models/navigation_retrieve_route_response.rb +875 -0
- data/lib/nextbillionai/models/optimization/driver_assignment_assign_params.rb +679 -0
- data/lib/nextbillionai/models/optimization/driver_assignment_assign_response.rb +307 -0
- data/lib/nextbillionai/models/optimization/job.rb +460 -0
- data/lib/nextbillionai/models/optimization/location.rb +28 -0
- data/lib/nextbillionai/models/optimization/shipment.rb +589 -0
- data/lib/nextbillionai/models/optimization/v2_retrieve_result_params.rb +37 -0
- data/lib/nextbillionai/models/optimization/v2_retrieve_result_response.rb +743 -0
- data/lib/nextbillionai/models/optimization/v2_submit_params.rb +1841 -0
- data/lib/nextbillionai/models/optimization/vehicle.rb +92 -0
- data/lib/nextbillionai/models/optimization_compute_params.rb +212 -0
- data/lib/nextbillionai/models/optimization_compute_response.rb +347 -0
- data/lib/nextbillionai/models/optimization_re_optimize_params.rb +217 -0
- data/lib/nextbillionai/models/position.rb +26 -0
- data/lib/nextbillionai/models/post_response.rb +48 -0
- data/lib/nextbillionai/models/postalcode_retrieve_coordinates_params.rb +108 -0
- data/lib/nextbillionai/models/postalcode_retrieve_coordinates_response.rb +305 -0
- data/lib/nextbillionai/models/restriction_create_params.rb +51 -0
- data/lib/nextbillionai/models/restriction_delete_params.rb +26 -0
- data/lib/nextbillionai/models/restriction_delete_response.rb +25 -0
- data/lib/nextbillionai/models/restriction_list_by_bbox_params.rb +197 -0
- data/lib/nextbillionai/models/restriction_list_by_bbox_response.rb +9 -0
- data/lib/nextbillionai/models/restriction_list_params.rb +197 -0
- data/lib/nextbillionai/models/restriction_list_response.rb +62 -0
- data/lib/nextbillionai/models/restriction_retrieve_params.rb +34 -0
- data/lib/nextbillionai/models/restriction_set_state_params.rb +50 -0
- data/lib/nextbillionai/models/restriction_update_params.rb +37 -0
- data/lib/nextbillionai/models/restrictions_item_list_params.rb +123 -0
- data/lib/nextbillionai/models/restrictions_item_list_response.rb +171 -0
- data/lib/nextbillionai/models/revgeocode_retrieve_params.rb +77 -0
- data/lib/nextbillionai/models/revgeocode_retrieve_response.rb +253 -0
- data/lib/nextbillionai/models/rich_group_request.rb +292 -0
- data/lib/nextbillionai/models/rich_group_response.rb +249 -0
- data/lib/nextbillionai/models/route_report_create_params.rb +62 -0
- data/lib/nextbillionai/models/route_report_create_response.rb +452 -0
- data/lib/nextbillionai/models/skynet/asset/event_list_params.rb +96 -0
- data/lib/nextbillionai/models/skynet/asset/event_list_response.rb +361 -0
- data/lib/nextbillionai/models/skynet/asset/location_get_last_params.rb +48 -0
- data/lib/nextbillionai/models/skynet/asset/location_get_last_response.rb +65 -0
- data/lib/nextbillionai/models/skynet/asset/location_list_params.rb +130 -0
- data/lib/nextbillionai/models/skynet/asset/location_list_response.rb +242 -0
- data/lib/nextbillionai/models/skynet/asset/track_location.rb +124 -0
- data/lib/nextbillionai/models/skynet/asset_bind_params.rb +40 -0
- data/lib/nextbillionai/models/skynet/asset_create_params.rb +116 -0
- data/lib/nextbillionai/models/skynet/asset_create_response.rb +59 -0
- data/lib/nextbillionai/models/skynet/asset_delete_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/asset_details.rb +223 -0
- data/lib/nextbillionai/models/skynet/asset_list_params.rb +120 -0
- data/lib/nextbillionai/models/skynet/asset_list_response.rb +67 -0
- data/lib/nextbillionai/models/skynet/asset_retrieve_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/asset_retrieve_response.rb +55 -0
- data/lib/nextbillionai/models/skynet/asset_track_params.rb +184 -0
- data/lib/nextbillionai/models/skynet/asset_update_attributes_params.rb +48 -0
- data/lib/nextbillionai/models/skynet/asset_update_params.rb +104 -0
- data/lib/nextbillionai/models/skynet/config_retrieve_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/config_retrieve_response.rb +71 -0
- data/lib/nextbillionai/models/skynet/config_test_webhook_params.rb +28 -0
- data/lib/nextbillionai/models/skynet/config_test_webhook_response.rb +28 -0
- data/lib/nextbillionai/models/skynet/config_update_params.rb +55 -0
- data/lib/nextbillionai/models/skynet/meta_data.rb +10 -0
- data/lib/nextbillionai/models/skynet/metadata.rb +10 -0
- data/lib/nextbillionai/models/skynet/monitor.rb +291 -0
- data/lib/nextbillionai/models/skynet/monitor_create_params.rb +418 -0
- data/lib/nextbillionai/models/skynet/monitor_create_response.rb +55 -0
- data/lib/nextbillionai/models/skynet/monitor_delete_params.rb +28 -0
- data/lib/nextbillionai/models/skynet/monitor_list_params.rb +89 -0
- data/lib/nextbillionai/models/skynet/monitor_list_response.rb +68 -0
- data/lib/nextbillionai/models/skynet/monitor_retrieve_params.rb +28 -0
- data/lib/nextbillionai/models/skynet/monitor_retrieve_response.rb +54 -0
- data/lib/nextbillionai/models/skynet/monitor_update_params.rb +360 -0
- data/lib/nextbillionai/models/skynet/namespaced_apikey_create_params.rb +39 -0
- data/lib/nextbillionai/models/skynet/namespaced_apikey_create_response.rb +101 -0
- data/lib/nextbillionai/models/skynet/namespaced_apikey_delete_params.rb +50 -0
- data/lib/nextbillionai/models/skynet/namespaced_apikey_delete_response.rb +35 -0
- data/lib/nextbillionai/models/skynet/pagination.rb +50 -0
- data/lib/nextbillionai/models/skynet/search/polygon_create_params.rb +295 -0
- data/lib/nextbillionai/models/skynet/search/polygon_get_params.rb +190 -0
- data/lib/nextbillionai/models/skynet/search_around_params.rb +186 -0
- data/lib/nextbillionai/models/skynet/search_bound_params.rb +180 -0
- data/lib/nextbillionai/models/skynet/search_response.rb +207 -0
- data/lib/nextbillionai/models/skynet/simple_resp.rb +33 -0
- data/lib/nextbillionai/models/skynet/trip_delete_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/trip_end_params.rb +54 -0
- data/lib/nextbillionai/models/skynet/trip_get_summary_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/trip_get_summary_response.rb +226 -0
- data/lib/nextbillionai/models/skynet/trip_retrieve_params.rb +46 -0
- data/lib/nextbillionai/models/skynet/trip_retrieve_response.rb +188 -0
- data/lib/nextbillionai/models/skynet/trip_start_params.rb +154 -0
- data/lib/nextbillionai/models/skynet/trip_start_response.rb +57 -0
- data/lib/nextbillionai/models/skynet/trip_stop.rb +40 -0
- data/lib/nextbillionai/models/skynet/trip_update_params.rb +148 -0
- data/lib/nextbillionai/models/skynet_subscribe_params.rb +91 -0
- data/lib/nextbillionai/models/skynet_subscribe_response.rb +46 -0
- data/lib/nextbillionai/models/snap_to_road_snap_params.rb +247 -0
- data/lib/nextbillionai/models/snap_to_road_snap_response.rb +272 -0
- data/lib/nextbillionai/models.rb +158 -0
- data/lib/nextbillionai/request_options.rb +78 -0
- data/lib/nextbillionai/resources/areas.rb +39 -0
- data/lib/nextbillionai/resources/autocomplete.rb +49 -0
- data/lib/nextbillionai/resources/autosuggest.rb +49 -0
- data/lib/nextbillionai/resources/batch.rb +70 -0
- data/lib/nextbillionai/resources/browse.rb +49 -0
- data/lib/nextbillionai/resources/directions.rb +89 -0
- data/lib/nextbillionai/resources/discover.rb +49 -0
- data/lib/nextbillionai/resources/distance_matrix/json.rb +79 -0
- data/lib/nextbillionai/resources/distance_matrix.rb +18 -0
- data/lib/nextbillionai/resources/fleetify/document_templates.rb +163 -0
- data/lib/nextbillionai/resources/fleetify/routes/steps.rb +202 -0
- data/lib/nextbillionai/resources/fleetify/routes.rb +92 -0
- data/lib/nextbillionai/resources/fleetify.rb +22 -0
- data/lib/nextbillionai/resources/geocode.rb +127 -0
- data/lib/nextbillionai/resources/geofence/batch.rb +101 -0
- data/lib/nextbillionai/resources/geofence/console.rb +77 -0
- data/lib/nextbillionai/resources/geofence.rb +224 -0
- data/lib/nextbillionai/resources/isochrone.rb +59 -0
- data/lib/nextbillionai/resources/lookup.rb +41 -0
- data/lib/nextbillionai/resources/map.rb +32 -0
- data/lib/nextbillionai/resources/mdm.rb +100 -0
- data/lib/nextbillionai/resources/multigeocode/place.rb +165 -0
- data/lib/nextbillionai/resources/multigeocode.rb +70 -0
- data/lib/nextbillionai/resources/navigation.rb +72 -0
- data/lib/nextbillionai/resources/optimization/driver_assignment.rb +53 -0
- data/lib/nextbillionai/resources/optimization/v2.rb +100 -0
- data/lib/nextbillionai/resources/optimization.rb +110 -0
- data/lib/nextbillionai/resources/postalcode.rb +49 -0
- data/lib/nextbillionai/resources/restrictions.rb +325 -0
- data/lib/nextbillionai/resources/restrictions_items.rb +44 -0
- data/lib/nextbillionai/resources/revgeocode.rb +45 -0
- data/lib/nextbillionai/resources/route_report.rb +45 -0
- data/lib/nextbillionai/resources/skynet/asset/event.rb +57 -0
- data/lib/nextbillionai/resources/skynet/asset/location.rb +88 -0
- data/lib/nextbillionai/resources/skynet/asset.rb +303 -0
- data/lib/nextbillionai/resources/skynet/config.rb +99 -0
- data/lib/nextbillionai/resources/skynet/monitor.rb +206 -0
- data/lib/nextbillionai/resources/skynet/namespaced_apikeys.rb +72 -0
- data/lib/nextbillionai/resources/skynet/search/polygon.rb +106 -0
- data/lib/nextbillionai/resources/skynet/search.rb +114 -0
- data/lib/nextbillionai/resources/skynet/trip.rb +220 -0
- data/lib/nextbillionai/resources/skynet.rb +67 -0
- data/lib/nextbillionai/resources/snap_to_roads.rb +62 -0
- data/lib/nextbillionai/version.rb +5 -0
- data/lib/nextbillionai.rb +294 -0
- data/manifest.yaml +15 -0
- data/rbi/nextbillionai/client.rbi +121 -0
- data/rbi/nextbillionai/errors.rbi +178 -0
- data/rbi/nextbillionai/file_part.rbi +37 -0
- data/rbi/nextbillionai/internal/transport/base_client.rbi +301 -0
- data/rbi/nextbillionai/internal/transport/pooled_net_requester.rbi +80 -0
- data/rbi/nextbillionai/internal/type/array_of.rbi +104 -0
- data/rbi/nextbillionai/internal/type/base_model.rbi +310 -0
- data/rbi/nextbillionai/internal/type/base_page.rbi +43 -0
- data/rbi/nextbillionai/internal/type/boolean.rbi +58 -0
- data/rbi/nextbillionai/internal/type/converter.rbi +167 -0
- data/rbi/nextbillionai/internal/type/enum.rbi +82 -0
- data/rbi/nextbillionai/internal/type/file_input.rbi +59 -0
- data/rbi/nextbillionai/internal/type/hash_of.rbi +104 -0
- data/rbi/nextbillionai/internal/type/request_parameters.rbi +31 -0
- data/rbi/nextbillionai/internal/type/union.rbi +121 -0
- data/rbi/nextbillionai/internal/type/unknown.rbi +58 -0
- data/rbi/nextbillionai/internal/util.rbi +487 -0
- data/rbi/nextbillionai/internal.rbi +18 -0
- data/rbi/nextbillionai/models/access.rbi +41 -0
- data/rbi/nextbillionai/models/address.rbi +163 -0
- data/rbi/nextbillionai/models/area_list_params.rbi +42 -0
- data/rbi/nextbillionai/models/area_list_response.rbi +84 -0
- data/rbi/nextbillionai/models/autocomplete_suggest_params.rbi +166 -0
- data/rbi/nextbillionai/models/autocomplete_suggest_response.rbi +539 -0
- data/rbi/nextbillionai/models/autosuggest_suggest_params.rbi +166 -0
- data/rbi/nextbillionai/models/autosuggest_suggest_response.rbi +539 -0
- data/rbi/nextbillionai/models/batch_create_params.rbi +103 -0
- data/rbi/nextbillionai/models/batch_create_response.rbi +67 -0
- data/rbi/nextbillionai/models/batch_retrieve_params.rbi +58 -0
- data/rbi/nextbillionai/models/batch_retrieve_response.rbi +152 -0
- data/rbi/nextbillionai/models/browse_search_params.rbi +167 -0
- data/rbi/nextbillionai/models/browse_search_response.rbi +530 -0
- data/rbi/nextbillionai/models/categories.rbi +54 -0
- data/rbi/nextbillionai/models/contact_object.rbi +98 -0
- data/rbi/nextbillionai/models/contacts.rbi +87 -0
- data/rbi/nextbillionai/models/direction_compute_route_params.rbi +1442 -0
- data/rbi/nextbillionai/models/direction_compute_route_response.rbi +1364 -0
- data/rbi/nextbillionai/models/discover_retrieve_params.rbi +166 -0
- data/rbi/nextbillionai/models/discover_retrieve_response.rbi +539 -0
- data/rbi/nextbillionai/models/distance_matrix/json_create_params.rbi +34 -0
- data/rbi/nextbillionai/models/distance_matrix/json_retrieve_params.rbi +439 -0
- data/rbi/nextbillionai/models/distance_matrix/json_retrieve_response.rbi +202 -0
- data/rbi/nextbillionai/models/fleetify/document_template_content_request.rbi +379 -0
- data/rbi/nextbillionai/models/fleetify/document_template_content_response.rbi +330 -0
- data/rbi/nextbillionai/models/fleetify/document_template_create_params.rbi +80 -0
- data/rbi/nextbillionai/models/fleetify/document_template_create_response.rbi +168 -0
- data/rbi/nextbillionai/models/fleetify/document_template_delete_params.rbi +47 -0
- data/rbi/nextbillionai/models/fleetify/document_template_delete_response.rbi +46 -0
- data/rbi/nextbillionai/models/fleetify/document_template_list_params.rbi +47 -0
- data/rbi/nextbillionai/models/fleetify/document_template_list_response.rbi +185 -0
- data/rbi/nextbillionai/models/fleetify/document_template_retrieve_params.rbi +47 -0
- data/rbi/nextbillionai/models/fleetify/document_template_retrieve_response.rbi +170 -0
- data/rbi/nextbillionai/models/fleetify/document_template_update_params.rbi +95 -0
- data/rbi/nextbillionai/models/fleetify/document_template_update_response.rbi +166 -0
- data/rbi/nextbillionai/models/fleetify/route_create_params.rbi +595 -0
- data/rbi/nextbillionai/models/fleetify/route_create_response.rbi +360 -0
- data/rbi/nextbillionai/models/fleetify/route_redispatch_params.rbi +307 -0
- data/rbi/nextbillionai/models/fleetify/route_redispatch_response.rbi +810 -0
- data/rbi/nextbillionai/models/fleetify/routes/document_submission.rbi +12 -0
- data/rbi/nextbillionai/models/fleetify/routes/route_step_completion_mode.rbi +59 -0
- data/rbi/nextbillionai/models/fleetify/routes/route_step_geofence_config.rbi +111 -0
- data/rbi/nextbillionai/models/fleetify/routes/route_steps_request.rbi +362 -0
- data/rbi/nextbillionai/models/fleetify/routes/route_steps_response.rbi +538 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_complete_params.rbi +107 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_create_params.rbi +384 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_create_response.rbi +77 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_delete_params.rbi +58 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_delete_response.rbi +50 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_update_params.rbi +393 -0
- data/rbi/nextbillionai/models/fleetify/routes/step_update_response.rbi +77 -0
- data/rbi/nextbillionai/models/fleetify/routing_response.rbi +136 -0
- data/rbi/nextbillionai/models/geocode_batch_create_params.rbi +191 -0
- data/rbi/nextbillionai/models/geocode_batch_create_response.rbi +268 -0
- data/rbi/nextbillionai/models/geocode_retrieve_params.rbi +166 -0
- data/rbi/nextbillionai/models/geocode_retrieve_response.rbi +539 -0
- data/rbi/nextbillionai/models/geocode_structured_retrieve_params.rbi +207 -0
- data/rbi/nextbillionai/models/geocode_structured_retrieve_response.rbi +543 -0
- data/rbi/nextbillionai/models/geofence/batch_create_params.rbi +69 -0
- data/rbi/nextbillionai/models/geofence/batch_create_response.rbi +97 -0
- data/rbi/nextbillionai/models/geofence/batch_delete_params.rbi +63 -0
- data/rbi/nextbillionai/models/geofence/batch_list_params.rbi +58 -0
- data/rbi/nextbillionai/models/geofence/batch_list_response.rbi +96 -0
- data/rbi/nextbillionai/models/geofence/console_preview_params.rbi +34 -0
- data/rbi/nextbillionai/models/geofence/console_preview_response.rbi +104 -0
- data/rbi/nextbillionai/models/geofence/console_search_params.rbi +45 -0
- data/rbi/nextbillionai/models/geofence/console_search_response.rbi +138 -0
- data/rbi/nextbillionai/models/geofence/polygon_geojson.rbi +56 -0
- data/rbi/nextbillionai/models/geofence.rbi +326 -0
- data/rbi/nextbillionai/models/geofence_contains_params.rbi +90 -0
- data/rbi/nextbillionai/models/geofence_contains_response.rbi +255 -0
- data/rbi/nextbillionai/models/geofence_create_params.rbi +45 -0
- data/rbi/nextbillionai/models/geofence_create_response.rbi +97 -0
- data/rbi/nextbillionai/models/geofence_delete_params.rbi +45 -0
- data/rbi/nextbillionai/models/geofence_entity_create.rbi +603 -0
- data/rbi/nextbillionai/models/geofence_list_params.rbi +97 -0
- data/rbi/nextbillionai/models/geofence_list_response.rbi +111 -0
- data/rbi/nextbillionai/models/geofence_retrieve_params.rbi +45 -0
- data/rbi/nextbillionai/models/geofence_retrieve_response.rbi +96 -0
- data/rbi/nextbillionai/models/geofence_update_params.rbi +601 -0
- data/rbi/nextbillionai/models/isochrone_compute_params.rbi +248 -0
- data/rbi/nextbillionai/models/isochrone_compute_response.rbi +369 -0
- data/rbi/nextbillionai/models/lookup_by_id_params.rbi +58 -0
- data/rbi/nextbillionai/models/lookup_by_id_response.rbi +174 -0
- data/rbi/nextbillionai/models/map_create_segment_params.rbi +32 -0
- data/rbi/nextbillionai/models/map_view.rbi +70 -0
- data/rbi/nextbillionai/models/mdm_create_distance_matrix_params.rbi +868 -0
- data/rbi/nextbillionai/models/mdm_create_distance_matrix_response.rbi +88 -0
- data/rbi/nextbillionai/models/mdm_get_distance_matrix_status_params.rbi +58 -0
- data/rbi/nextbillionai/models/mdm_get_distance_matrix_status_response.rbi +141 -0
- data/rbi/nextbillionai/models/multigeocode/place_create_params.rbi +518 -0
- data/rbi/nextbillionai/models/multigeocode/place_create_response.rbi +39 -0
- data/rbi/nextbillionai/models/multigeocode/place_delete_params.rbi +47 -0
- data/rbi/nextbillionai/models/multigeocode/place_delete_response.rbi +46 -0
- data/rbi/nextbillionai/models/multigeocode/place_item.rbi +255 -0
- data/rbi/nextbillionai/models/multigeocode/place_retrieve_params.rbi +47 -0
- data/rbi/nextbillionai/models/multigeocode/place_retrieve_response.rbi +226 -0
- data/rbi/nextbillionai/models/multigeocode/place_update_params.rbi +245 -0
- data/rbi/nextbillionai/models/multigeocode/place_update_response.rbi +46 -0
- data/rbi/nextbillionai/models/multigeocode_search_params.rbi +205 -0
- data/rbi/nextbillionai/models/multigeocode_search_response.rbi +277 -0
- data/rbi/nextbillionai/models/navigation_retrieve_route_params.rbi +692 -0
- data/rbi/nextbillionai/models/navigation_retrieve_route_response.rbi +1894 -0
- data/rbi/nextbillionai/models/optimization/driver_assignment_assign_params.rbi +1306 -0
- data/rbi/nextbillionai/models/optimization/driver_assignment_assign_response.rbi +720 -0
- data/rbi/nextbillionai/models/optimization/job.rbi +798 -0
- data/rbi/nextbillionai/models/optimization/location.rbi +39 -0
- data/rbi/nextbillionai/models/optimization/shipment.rbi +1030 -0
- data/rbi/nextbillionai/models/optimization/v2_retrieve_result_params.rbi +60 -0
- data/rbi/nextbillionai/models/optimization/v2_retrieve_result_response.rbi +1318 -0
- data/rbi/nextbillionai/models/optimization/v2_submit_params.rbi +3695 -0
- data/rbi/nextbillionai/models/optimization/vehicle.rbi +168 -0
- data/rbi/nextbillionai/models/optimization_compute_params.rbi +453 -0
- data/rbi/nextbillionai/models/optimization_compute_response.rbi +885 -0
- data/rbi/nextbillionai/models/optimization_re_optimize_params.rbi +439 -0
- data/rbi/nextbillionai/models/position.rbi +40 -0
- data/rbi/nextbillionai/models/post_response.rbi +81 -0
- data/rbi/nextbillionai/models/postalcode_retrieve_coordinates_params.rbi +211 -0
- data/rbi/nextbillionai/models/postalcode_retrieve_coordinates_response.rbi +661 -0
- data/rbi/nextbillionai/models/restriction_create_params.rbi +119 -0
- data/rbi/nextbillionai/models/restriction_delete_params.rbi +45 -0
- data/rbi/nextbillionai/models/restriction_delete_response.rbi +42 -0
- data/rbi/nextbillionai/models/restriction_list_by_bbox_params.rbi +447 -0
- data/rbi/nextbillionai/models/restriction_list_by_bbox_response.rbi +13 -0
- data/rbi/nextbillionai/models/restriction_list_params.rbi +414 -0
- data/rbi/nextbillionai/models/restriction_list_response.rbi +120 -0
- data/rbi/nextbillionai/models/restriction_retrieve_params.rbi +59 -0
- data/rbi/nextbillionai/models/restriction_set_state_params.rbi +99 -0
- data/rbi/nextbillionai/models/restriction_update_params.rbi +65 -0
- data/rbi/nextbillionai/models/restrictions_item_list_params.rbi +325 -0
- data/rbi/nextbillionai/models/restrictions_item_list_response.rbi +436 -0
- data/rbi/nextbillionai/models/revgeocode_retrieve_params.rbi +132 -0
- data/rbi/nextbillionai/models/revgeocode_retrieve_response.rbi +539 -0
- data/rbi/nextbillionai/models/rich_group_request.rbi +507 -0
- data/rbi/nextbillionai/models/rich_group_response.rbi +464 -0
- data/rbi/nextbillionai/models/route_report_create_params.rbi +121 -0
- data/rbi/nextbillionai/models/route_report_create_response.rbi +982 -0
- data/rbi/nextbillionai/models/skynet/asset/event_list_params.rbi +177 -0
- data/rbi/nextbillionai/models/skynet/asset/event_list_response.rbi +721 -0
- data/rbi/nextbillionai/models/skynet/asset/location_get_last_params.rbi +106 -0
- data/rbi/nextbillionai/models/skynet/asset/location_get_last_response.rbi +136 -0
- data/rbi/nextbillionai/models/skynet/asset/location_list_params.rbi +265 -0
- data/rbi/nextbillionai/models/skynet/asset/location_list_response.rbi +503 -0
- data/rbi/nextbillionai/models/skynet/asset/track_location.rbi +209 -0
- data/rbi/nextbillionai/models/skynet/asset_bind_params.rbi +66 -0
- data/rbi/nextbillionai/models/skynet/asset_create_params.rbi +208 -0
- data/rbi/nextbillionai/models/skynet/asset_create_response.rbi +114 -0
- data/rbi/nextbillionai/models/skynet/asset_delete_params.rbi +100 -0
- data/rbi/nextbillionai/models/skynet/asset_details.rbi +387 -0
- data/rbi/nextbillionai/models/skynet/asset_list_params.rbi +213 -0
- data/rbi/nextbillionai/models/skynet/asset_list_response.rbi +140 -0
- data/rbi/nextbillionai/models/skynet/asset_retrieve_params.rbi +101 -0
- data/rbi/nextbillionai/models/skynet/asset_retrieve_response.rbi +122 -0
- data/rbi/nextbillionai/models/skynet/asset_track_params.rbi +329 -0
- data/rbi/nextbillionai/models/skynet/asset_update_attributes_params.rbi +82 -0
- data/rbi/nextbillionai/models/skynet/asset_update_params.rbi +189 -0
- data/rbi/nextbillionai/models/skynet/config_retrieve_params.rbi +104 -0
- data/rbi/nextbillionai/models/skynet/config_retrieve_response.rbi +163 -0
- data/rbi/nextbillionai/models/skynet/config_test_webhook_params.rbi +47 -0
- data/rbi/nextbillionai/models/skynet/config_test_webhook_response.rbi +47 -0
- data/rbi/nextbillionai/models/skynet/config_update_params.rbi +114 -0
- data/rbi/nextbillionai/models/skynet/meta_data.rbi +9 -0
- data/rbi/nextbillionai/models/skynet/metadata.rbi +9 -0
- data/rbi/nextbillionai/models/skynet/monitor.rbi +568 -0
- data/rbi/nextbillionai/models/skynet/monitor_create_params.rbi +792 -0
- data/rbi/nextbillionai/models/skynet/monitor_create_response.rbi +114 -0
- data/rbi/nextbillionai/models/skynet/monitor_delete_params.rbi +47 -0
- data/rbi/nextbillionai/models/skynet/monitor_list_params.rbi +166 -0
- data/rbi/nextbillionai/models/skynet/monitor_list_response.rbi +143 -0
- data/rbi/nextbillionai/models/skynet/monitor_retrieve_params.rbi +47 -0
- data/rbi/nextbillionai/models/skynet/monitor_retrieve_response.rbi +119 -0
- data/rbi/nextbillionai/models/skynet/monitor_update_params.rbi +690 -0
- data/rbi/nextbillionai/models/skynet/namespaced_apikey_create_params.rbi +64 -0
- data/rbi/nextbillionai/models/skynet/namespaced_apikey_create_response.rbi +182 -0
- data/rbi/nextbillionai/models/skynet/namespaced_apikey_delete_params.rbi +78 -0
- data/rbi/nextbillionai/models/skynet/namespaced_apikey_delete_response.rbi +52 -0
- data/rbi/nextbillionai/models/skynet/pagination.rbi +84 -0
- data/rbi/nextbillionai/models/skynet/search/polygon_create_params.rbi +583 -0
- data/rbi/nextbillionai/models/skynet/search/polygon_get_params.rbi +358 -0
- data/rbi/nextbillionai/models/skynet/search_around_params.rbi +346 -0
- data/rbi/nextbillionai/models/skynet/search_bound_params.rbi +341 -0
- data/rbi/nextbillionai/models/skynet/search_response.rbi +390 -0
- data/rbi/nextbillionai/models/skynet/simple_resp.rbi +52 -0
- data/rbi/nextbillionai/models/skynet/trip_delete_params.rbi +99 -0
- data/rbi/nextbillionai/models/skynet/trip_end_params.rbi +104 -0
- data/rbi/nextbillionai/models/skynet/trip_get_summary_params.rbi +104 -0
- data/rbi/nextbillionai/models/skynet/trip_get_summary_response.rbi +414 -0
- data/rbi/nextbillionai/models/skynet/trip_retrieve_params.rbi +101 -0
- data/rbi/nextbillionai/models/skynet/trip_retrieve_response.rbi +354 -0
- data/rbi/nextbillionai/models/skynet/trip_start_params.rbi +279 -0
- data/rbi/nextbillionai/models/skynet/trip_start_response.rbi +112 -0
- data/rbi/nextbillionai/models/skynet/trip_stop.rbi +69 -0
- data/rbi/nextbillionai/models/skynet/trip_update_params.rbi +274 -0
- data/rbi/nextbillionai/models/skynet_subscribe_params.rbi +170 -0
- data/rbi/nextbillionai/models/skynet_subscribe_response.rbi +75 -0
- data/rbi/nextbillionai/models/snap_to_road_snap_params.rbi +492 -0
- data/rbi/nextbillionai/models/snap_to_road_snap_response.rbi +546 -0
- data/rbi/nextbillionai/models.rbi +125 -0
- data/rbi/nextbillionai/request_options.rbi +59 -0
- data/rbi/nextbillionai/resources/areas.rbi +27 -0
- data/rbi/nextbillionai/resources/autocomplete.rbi +75 -0
- data/rbi/nextbillionai/resources/autosuggest.rbi +75 -0
- data/rbi/nextbillionai/resources/batch.rbi +50 -0
- data/rbi/nextbillionai/resources/browse.rbi +74 -0
- data/rbi/nextbillionai/resources/directions.rbi +320 -0
- data/rbi/nextbillionai/resources/discover.rbi +75 -0
- data/rbi/nextbillionai/resources/distance_matrix/json.rbi +129 -0
- data/rbi/nextbillionai/resources/distance_matrix.rbi +15 -0
- data/rbi/nextbillionai/resources/fleetify/document_templates.rbi +130 -0
- data/rbi/nextbillionai/resources/fleetify/routes/steps.rbi +270 -0
- data/rbi/nextbillionai/resources/fleetify/routes.rbi +114 -0
- data/rbi/nextbillionai/resources/fleetify.rbi +18 -0
- data/rbi/nextbillionai/resources/geocode.rbi +164 -0
- data/rbi/nextbillionai/resources/geofence/batch.rbi +70 -0
- data/rbi/nextbillionai/resources/geofence/console.rbi +89 -0
- data/rbi/nextbillionai/resources/geofence.rbi +249 -0
- data/rbi/nextbillionai/resources/isochrone.rbi +89 -0
- data/rbi/nextbillionai/resources/lookup.rbi +31 -0
- data/rbi/nextbillionai/resources/map.rbi +19 -0
- data/rbi/nextbillionai/resources/mdm.rbi +182 -0
- data/rbi/nextbillionai/resources/multigeocode/place.rbi +155 -0
- data/rbi/nextbillionai/resources/multigeocode.rbi +73 -0
- data/rbi/nextbillionai/resources/navigation.rbi +152 -0
- data/rbi/nextbillionai/resources/optimization/driver_assignment.rbi +54 -0
- data/rbi/nextbillionai/resources/optimization/v2.rbi +217 -0
- data/rbi/nextbillionai/resources/optimization.rbi +165 -0
- data/rbi/nextbillionai/resources/postalcode.rbi +54 -0
- data/rbi/nextbillionai/resources/restrictions.rbi +487 -0
- data/rbi/nextbillionai/resources/restrictions_items.rbi +46 -0
- data/rbi/nextbillionai/resources/revgeocode.rbi +63 -0
- data/rbi/nextbillionai/resources/route_report.rbi +41 -0
- data/rbi/nextbillionai/resources/skynet/asset/event.rbi +64 -0
- data/rbi/nextbillionai/resources/skynet/asset/location.rbi +106 -0
- data/rbi/nextbillionai/resources/skynet/asset.rbi +336 -0
- data/rbi/nextbillionai/resources/skynet/config.rbi +71 -0
- data/rbi/nextbillionai/resources/skynet/monitor.rbi +305 -0
- data/rbi/nextbillionai/resources/skynet/namespaced_apikeys.rbi +66 -0
- data/rbi/nextbillionai/resources/skynet/search/polygon.rbi +175 -0
- data/rbi/nextbillionai/resources/skynet/search.rbi +191 -0
- data/rbi/nextbillionai/resources/skynet/trip.rbi +210 -0
- data/rbi/nextbillionai/resources/skynet.rbi +60 -0
- data/rbi/nextbillionai/resources/snap_to_roads.rbi +103 -0
- data/rbi/nextbillionai/version.rbi +5 -0
- data/sig/nextbillionai/client.rbs +74 -0
- data/sig/nextbillionai/errors.rbs +110 -0
- data/sig/nextbillionai/file_part.rbs +21 -0
- data/sig/nextbillionai/internal/transport/base_client.rbs +131 -0
- data/sig/nextbillionai/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/nextbillionai/internal/type/array_of.rbs +48 -0
- data/sig/nextbillionai/internal/type/base_model.rbs +104 -0
- data/sig/nextbillionai/internal/type/base_page.rbs +24 -0
- data/sig/nextbillionai/internal/type/boolean.rbs +26 -0
- data/sig/nextbillionai/internal/type/converter.rbs +62 -0
- data/sig/nextbillionai/internal/type/enum.rbs +32 -0
- data/sig/nextbillionai/internal/type/file_input.rbs +25 -0
- data/sig/nextbillionai/internal/type/hash_of.rbs +48 -0
- data/sig/nextbillionai/internal/type/request_parameters.rbs +19 -0
- data/sig/nextbillionai/internal/type/union.rbs +52 -0
- data/sig/nextbillionai/internal/type/unknown.rbs +26 -0
- data/sig/nextbillionai/internal/util.rbs +185 -0
- data/sig/nextbillionai/internal.rbs +10 -0
- data/sig/nextbillionai/models/access.rbs +19 -0
- data/sig/nextbillionai/models/address.rbs +92 -0
- data/sig/nextbillionai/models/area_list_params.rbs +23 -0
- data/sig/nextbillionai/models/area_list_response.rbs +43 -0
- data/sig/nextbillionai/models/autocomplete_suggest_params.rbs +59 -0
- data/sig/nextbillionai/models/autocomplete_suggest_response.rbs +236 -0
- data/sig/nextbillionai/models/autosuggest_suggest_params.rbs +59 -0
- data/sig/nextbillionai/models/autosuggest_suggest_response.rbs +236 -0
- data/sig/nextbillionai/models/batch_create_params.rbs +47 -0
- data/sig/nextbillionai/models/batch_create_response.rbs +24 -0
- data/sig/nextbillionai/models/batch_retrieve_params.rbs +28 -0
- data/sig/nextbillionai/models/batch_retrieve_response.rbs +61 -0
- data/sig/nextbillionai/models/browse_search_params.rbs +61 -0
- data/sig/nextbillionai/models/browse_search_response.rbs +234 -0
- data/sig/nextbillionai/models/categories.rbs +23 -0
- data/sig/nextbillionai/models/contact_object.rbs +50 -0
- data/sig/nextbillionai/models/contacts.rbs +69 -0
- data/sig/nextbillionai/models/direction_compute_route_params.rbs +391 -0
- data/sig/nextbillionai/models/direction_compute_route_response.rbs +554 -0
- data/sig/nextbillionai/models/discover_retrieve_params.rbs +59 -0
- data/sig/nextbillionai/models/discover_retrieve_response.rbs +234 -0
- data/sig/nextbillionai/models/distance_matrix/json_create_params.rbs +17 -0
- data/sig/nextbillionai/models/distance_matrix/json_retrieve_params.rbs +114 -0
- data/sig/nextbillionai/models/distance_matrix/json_retrieve_response.rbs +77 -0
- data/sig/nextbillionai/models/fleetify/document_template_content_request.rbs +148 -0
- data/sig/nextbillionai/models/fleetify/document_template_content_response.rbs +135 -0
- data/sig/nextbillionai/models/fleetify/document_template_create_params.rbs +38 -0
- data/sig/nextbillionai/models/fleetify/document_template_create_response.rbs +75 -0
- data/sig/nextbillionai/models/fleetify/document_template_delete_params.rbs +25 -0
- data/sig/nextbillionai/models/fleetify/document_template_delete_response.rbs +21 -0
- data/sig/nextbillionai/models/fleetify/document_template_list_params.rbs +25 -0
- data/sig/nextbillionai/models/fleetify/document_template_list_response.rbs +75 -0
- data/sig/nextbillionai/models/fleetify/document_template_retrieve_params.rbs +25 -0
- data/sig/nextbillionai/models/fleetify/document_template_retrieve_response.rbs +75 -0
- data/sig/nextbillionai/models/fleetify/document_template_update_params.rbs +44 -0
- data/sig/nextbillionai/models/fleetify/document_template_update_response.rbs +75 -0
- data/sig/nextbillionai/models/fleetify/route_create_params.rbs +199 -0
- data/sig/nextbillionai/models/fleetify/route_create_response.rbs +159 -0
- data/sig/nextbillionai/models/fleetify/route_redispatch_params.rbs +118 -0
- data/sig/nextbillionai/models/fleetify/route_redispatch_response.rbs +359 -0
- data/sig/nextbillionai/models/fleetify/routes/document_submission.rbs +9 -0
- data/sig/nextbillionai/models/fleetify/routes/route_step_completion_mode.rbs +22 -0
- data/sig/nextbillionai/models/fleetify/routes/route_step_geofence_config.rbs +47 -0
- data/sig/nextbillionai/models/fleetify/routes/route_steps_request.rbs +134 -0
- data/sig/nextbillionai/models/fleetify/routes/route_steps_response.rbs +223 -0
- data/sig/nextbillionai/models/fleetify/routes/step_complete_params.rbs +56 -0
- data/sig/nextbillionai/models/fleetify/routes/step_create_params.rbs +148 -0
- data/sig/nextbillionai/models/fleetify/routes/step_create_response.rbs +42 -0
- data/sig/nextbillionai/models/fleetify/routes/step_delete_params.rbs +32 -0
- data/sig/nextbillionai/models/fleetify/routes/step_delete_response.rbs +23 -0
- data/sig/nextbillionai/models/fleetify/routes/step_update_params.rbs +159 -0
- data/sig/nextbillionai/models/fleetify/routes/step_update_response.rbs +42 -0
- data/sig/nextbillionai/models/fleetify/routing_response.rbs +66 -0
- data/sig/nextbillionai/models/geocode_batch_create_params.rbs +70 -0
- data/sig/nextbillionai/models/geocode_batch_create_response.rbs +128 -0
- data/sig/nextbillionai/models/geocode_retrieve_params.rbs +59 -0
- data/sig/nextbillionai/models/geocode_retrieve_response.rbs +234 -0
- data/sig/nextbillionai/models/geocode_structured_retrieve_params.rbs +94 -0
- data/sig/nextbillionai/models/geocode_structured_retrieve_response.rbs +236 -0
- data/sig/nextbillionai/models/geofence/batch_create_params.rbs +34 -0
- data/sig/nextbillionai/models/geofence/batch_create_response.rbs +45 -0
- data/sig/nextbillionai/models/geofence/batch_delete_params.rbs +32 -0
- data/sig/nextbillionai/models/geofence/batch_list_params.rbs +30 -0
- data/sig/nextbillionai/models/geofence/batch_list_response.rbs +37 -0
- data/sig/nextbillionai/models/geofence/console_preview_params.rbs +17 -0
- data/sig/nextbillionai/models/geofence/console_preview_response.rbs +49 -0
- data/sig/nextbillionai/models/geofence/console_search_params.rbs +25 -0
- data/sig/nextbillionai/models/geofence/console_search_response.rbs +56 -0
- data/sig/nextbillionai/models/geofence/polygon_geojson.rbs +25 -0
- data/sig/nextbillionai/models/geofence.rbs +161 -0
- data/sig/nextbillionai/models/geofence_contains_params.rbs +40 -0
- data/sig/nextbillionai/models/geofence_contains_response.rbs +105 -0
- data/sig/nextbillionai/models/geofence_create_params.rbs +25 -0
- data/sig/nextbillionai/models/geofence_create_response.rbs +43 -0
- data/sig/nextbillionai/models/geofence_delete_params.rbs +23 -0
- data/sig/nextbillionai/models/geofence_entity_create.rbs +216 -0
- data/sig/nextbillionai/models/geofence_list_params.rbs +42 -0
- data/sig/nextbillionai/models/geofence_list_response.rbs +61 -0
- data/sig/nextbillionai/models/geofence_retrieve_params.rbs +23 -0
- data/sig/nextbillionai/models/geofence_retrieve_response.rbs +45 -0
- data/sig/nextbillionai/models/geofence_update_params.rbs +227 -0
- data/sig/nextbillionai/models/isochrone_compute_params.rbs +96 -0
- data/sig/nextbillionai/models/isochrone_compute_response.rbs +159 -0
- data/sig/nextbillionai/models/lookup_by_id_params.rbs +28 -0
- data/sig/nextbillionai/models/lookup_by_id_response.rbs +94 -0
- data/sig/nextbillionai/models/map_create_segment_params.rbs +15 -0
- data/sig/nextbillionai/models/map_view.rbs +37 -0
- data/sig/nextbillionai/models/mdm_create_distance_matrix_params.rbs +270 -0
- data/sig/nextbillionai/models/mdm_create_distance_matrix_response.rbs +43 -0
- data/sig/nextbillionai/models/mdm_get_distance_matrix_status_params.rbs +28 -0
- data/sig/nextbillionai/models/mdm_get_distance_matrix_status_response.rbs +57 -0
- data/sig/nextbillionai/models/multigeocode/place_create_params.rbs +226 -0
- data/sig/nextbillionai/models/multigeocode/place_create_response.rbs +17 -0
- data/sig/nextbillionai/models/multigeocode/place_delete_params.rbs +25 -0
- data/sig/nextbillionai/models/multigeocode/place_delete_response.rbs +21 -0
- data/sig/nextbillionai/models/multigeocode/place_item.rbs +133 -0
- data/sig/nextbillionai/models/multigeocode/place_retrieve_params.rbs +25 -0
- data/sig/nextbillionai/models/multigeocode/place_retrieve_response.rbs +95 -0
- data/sig/nextbillionai/models/multigeocode/place_update_params.rbs +99 -0
- data/sig/nextbillionai/models/multigeocode/place_update_response.rbs +21 -0
- data/sig/nextbillionai/models/multigeocode_search_params.rbs +104 -0
- data/sig/nextbillionai/models/multigeocode_search_response.rbs +114 -0
- data/sig/nextbillionai/models/navigation_retrieve_route_params.rbs +206 -0
- data/sig/nextbillionai/models/navigation_retrieve_route_response.rbs +812 -0
- data/sig/nextbillionai/models/optimization/driver_assignment_assign_params.rbs +412 -0
- data/sig/nextbillionai/models/optimization/driver_assignment_assign_response.rbs +281 -0
- data/sig/nextbillionai/models/optimization/job.rbs +225 -0
- data/sig/nextbillionai/models/optimization/location.rbs +17 -0
- data/sig/nextbillionai/models/optimization/shipment.rbs +313 -0
- data/sig/nextbillionai/models/optimization/v2_retrieve_result_params.rbs +30 -0
- data/sig/nextbillionai/models/optimization/v2_retrieve_result_response.rbs +555 -0
- data/sig/nextbillionai/models/optimization/v2_submit_params.rbs +1138 -0
- data/sig/nextbillionai/models/optimization/vehicle.rbs +66 -0
- data/sig/nextbillionai/models/optimization_compute_params.rbs +146 -0
- data/sig/nextbillionai/models/optimization_compute_response.rbs +386 -0
- data/sig/nextbillionai/models/optimization_re_optimize_params.rbs +176 -0
- data/sig/nextbillionai/models/position.rbs +19 -0
- data/sig/nextbillionai/models/post_response.rbs +38 -0
- data/sig/nextbillionai/models/postalcode_retrieve_coordinates_params.rbs +84 -0
- data/sig/nextbillionai/models/postalcode_retrieve_coordinates_response.rbs +260 -0
- data/sig/nextbillionai/models/restriction_create_params.rbs +48 -0
- data/sig/nextbillionai/models/restriction_delete_params.rbs +23 -0
- data/sig/nextbillionai/models/restriction_delete_response.rbs +19 -0
- data/sig/nextbillionai/models/restriction_list_by_bbox_params.rbs +162 -0
- data/sig/nextbillionai/models/restriction_list_by_bbox_response.rbs +8 -0
- data/sig/nextbillionai/models/restriction_list_params.rbs +164 -0
- data/sig/nextbillionai/models/restriction_list_response.rbs +57 -0
- data/sig/nextbillionai/models/restriction_retrieve_params.rbs +30 -0
- data/sig/nextbillionai/models/restriction_set_state_params.rbs +43 -0
- data/sig/nextbillionai/models/restriction_update_params.rbs +32 -0
- data/sig/nextbillionai/models/restrictions_item_list_params.rbs +145 -0
- data/sig/nextbillionai/models/restrictions_item_list_response.rbs +166 -0
- data/sig/nextbillionai/models/revgeocode_retrieve_params.rbs +40 -0
- data/sig/nextbillionai/models/revgeocode_retrieve_response.rbs +236 -0
- data/sig/nextbillionai/models/rich_group_request.rbs +207 -0
- data/sig/nextbillionai/models/rich_group_response.rbs +207 -0
- data/sig/nextbillionai/models/route_report_create_params.rbs +47 -0
- data/sig/nextbillionai/models/route_report_create_response.rbs +408 -0
- data/sig/nextbillionai/models/skynet/asset/event_list_params.rbs +84 -0
- data/sig/nextbillionai/models/skynet/asset/event_list_response.rbs +303 -0
- data/sig/nextbillionai/models/skynet/asset/location_get_last_params.rbs +49 -0
- data/sig/nextbillionai/models/skynet/asset/location_get_last_response.rbs +60 -0
- data/sig/nextbillionai/models/skynet/asset/location_list_params.rbs +105 -0
- data/sig/nextbillionai/models/skynet/asset/location_list_response.rbs +216 -0
- data/sig/nextbillionai/models/skynet/asset/track_location.rbs +100 -0
- data/sig/nextbillionai/models/skynet/asset_bind_params.rbs +30 -0
- data/sig/nextbillionai/models/skynet/asset_create_params.rbs +89 -0
- data/sig/nextbillionai/models/skynet/asset_create_response.rbs +52 -0
- data/sig/nextbillionai/models/skynet/asset_delete_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/asset_details.rbs +175 -0
- data/sig/nextbillionai/models/skynet/asset_list_params.rbs +89 -0
- data/sig/nextbillionai/models/skynet/asset_list_response.rbs +70 -0
- data/sig/nextbillionai/models/skynet/asset_retrieve_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/asset_retrieve_response.rbs +54 -0
- data/sig/nextbillionai/models/skynet/asset_track_params.rbs +140 -0
- data/sig/nextbillionai/models/skynet/asset_update_attributes_params.rbs +30 -0
- data/sig/nextbillionai/models/skynet/asset_update_params.rbs +82 -0
- data/sig/nextbillionai/models/skynet/config_retrieve_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/config_retrieve_response.rbs +73 -0
- data/sig/nextbillionai/models/skynet/config_test_webhook_params.rbs +25 -0
- data/sig/nextbillionai/models/skynet/config_test_webhook_response.rbs +17 -0
- data/sig/nextbillionai/models/skynet/config_update_params.rbs +54 -0
- data/sig/nextbillionai/models/skynet/meta_data.rbs +7 -0
- data/sig/nextbillionai/models/skynet/metadata.rbs +7 -0
- data/sig/nextbillionai/models/skynet/monitor.rbs +220 -0
- data/sig/nextbillionai/models/skynet/monitor_create_params.rbs +226 -0
- data/sig/nextbillionai/models/skynet/monitor_create_response.rbs +52 -0
- data/sig/nextbillionai/models/skynet/monitor_delete_params.rbs +25 -0
- data/sig/nextbillionai/models/skynet/monitor_list_params.rbs +75 -0
- data/sig/nextbillionai/models/skynet/monitor_list_response.rbs +70 -0
- data/sig/nextbillionai/models/skynet/monitor_retrieve_params.rbs +25 -0
- data/sig/nextbillionai/models/skynet/monitor_retrieve_response.rbs +56 -0
- data/sig/nextbillionai/models/skynet/monitor_update_params.rbs +206 -0
- data/sig/nextbillionai/models/skynet/namespaced_apikey_create_params.rbs +30 -0
- data/sig/nextbillionai/models/skynet/namespaced_apikey_create_response.rbs +94 -0
- data/sig/nextbillionai/models/skynet/namespaced_apikey_delete_params.rbs +34 -0
- data/sig/nextbillionai/models/skynet/namespaced_apikey_delete_response.rbs +21 -0
- data/sig/nextbillionai/models/skynet/pagination.rbs +40 -0
- data/sig/nextbillionai/models/skynet/search/polygon_create_params.rbs +193 -0
- data/sig/nextbillionai/models/skynet/search/polygon_get_params.rbs +125 -0
- data/sig/nextbillionai/models/skynet/search_around_params.rbs +128 -0
- data/sig/nextbillionai/models/skynet/search_bound_params.rbs +123 -0
- data/sig/nextbillionai/models/skynet/search_response.rbs +185 -0
- data/sig/nextbillionai/models/skynet/simple_resp.rbs +21 -0
- data/sig/nextbillionai/models/skynet/trip_delete_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/trip_end_params.rbs +52 -0
- data/sig/nextbillionai/models/skynet/trip_get_summary_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/trip_get_summary_response.rbs +198 -0
- data/sig/nextbillionai/models/skynet/trip_retrieve_params.rbs +47 -0
- data/sig/nextbillionai/models/skynet/trip_retrieve_response.rbs +168 -0
- data/sig/nextbillionai/models/skynet/trip_start_params.rbs +120 -0
- data/sig/nextbillionai/models/skynet/trip_start_response.rbs +52 -0
- data/sig/nextbillionai/models/skynet/trip_stop.rbs +29 -0
- data/sig/nextbillionai/models/skynet/trip_update_params.rbs +113 -0
- data/sig/nextbillionai/models/skynet_subscribe_params.rbs +64 -0
- data/sig/nextbillionai/models/skynet_subscribe_response.rbs +38 -0
- data/sig/nextbillionai/models/snap_to_road_snap_params.rbs +173 -0
- data/sig/nextbillionai/models/snap_to_road_snap_response.rbs +215 -0
- data/sig/nextbillionai/models.rbs +115 -0
- data/sig/nextbillionai/request_options.rbs +36 -0
- data/sig/nextbillionai/resources/areas.rbs +12 -0
- data/sig/nextbillionai/resources/autocomplete.rbs +17 -0
- data/sig/nextbillionai/resources/autosuggest.rbs +17 -0
- data/sig/nextbillionai/resources/batch.rbs +19 -0
- data/sig/nextbillionai/resources/browse.rbs +17 -0
- data/sig/nextbillionai/resources/directions.rbs +37 -0
- data/sig/nextbillionai/resources/discover.rbs +17 -0
- data/sig/nextbillionai/resources/distance_matrix/json.rbs +23 -0
- data/sig/nextbillionai/resources/distance_matrix.rbs +9 -0
- data/sig/nextbillionai/resources/fleetify/document_templates.rbs +41 -0
- data/sig/nextbillionai/resources/fleetify/routes/steps.rbs +61 -0
- data/sig/nextbillionai/resources/fleetify/routes.rbs +30 -0
- data/sig/nextbillionai/resources/fleetify.rbs +11 -0
- data/sig/nextbillionai/resources/geocode.rbs +38 -0
- data/sig/nextbillionai/resources/geofence/batch.rbs +27 -0
- data/sig/nextbillionai/resources/geofence/console.rbs +26 -0
- data/sig/nextbillionai/resources/geofence.rbs +65 -0
- data/sig/nextbillionai/resources/isochrone.rbs +21 -0
- data/sig/nextbillionai/resources/lookup.rbs +13 -0
- data/sig/nextbillionai/resources/map.rbs +9 -0
- data/sig/nextbillionai/resources/mdm.rbs +34 -0
- data/sig/nextbillionai/resources/multigeocode/place.rbs +39 -0
- data/sig/nextbillionai/resources/multigeocode.rbs +24 -0
- data/sig/nextbillionai/resources/navigation.rbs +26 -0
- data/sig/nextbillionai/resources/optimization/driver_assignment.rbs +18 -0
- data/sig/nextbillionai/resources/optimization/v2.rbs +35 -0
- data/sig/nextbillionai/resources/optimization.rbs +34 -0
- data/sig/nextbillionai/resources/postalcode.rbs +16 -0
- data/sig/nextbillionai/resources/restrictions.rbs +107 -0
- data/sig/nextbillionai/resources/restrictions_items.rbs +21 -0
- data/sig/nextbillionai/resources/revgeocode.rbs +15 -0
- data/sig/nextbillionai/resources/route_report.rbs +14 -0
- data/sig/nextbillionai/resources/skynet/asset/event.rbs +23 -0
- data/sig/nextbillionai/resources/skynet/asset/location.rbs +31 -0
- data/sig/nextbillionai/resources/skynet/asset.rbs +86 -0
- data/sig/nextbillionai/resources/skynet/config.rbs +27 -0
- data/sig/nextbillionai/resources/skynet/monitor.rbs +64 -0
- data/sig/nextbillionai/resources/skynet/namespaced_apikeys.rbs +22 -0
- data/sig/nextbillionai/resources/skynet/search/polygon.rbs +38 -0
- data/sig/nextbillionai/resources/skynet/search.rbs +42 -0
- data/sig/nextbillionai/resources/skynet/trip.rbs +63 -0
- data/sig/nextbillionai/resources/skynet.rbs +26 -0
- data/sig/nextbillionai/resources/snap_to_roads.rbs +22 -0
- data/sig/nextbillionai/version.rbs +3 -0
- 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
|