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