com.google.maps.routeoptimization.v1.ShipmentOrBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proto-google-maps-routeoptimization-v1 Show documentation
Show all versions of proto-google-maps-routeoptimization-v1 Show documentation
Proto library for google-maps-routeoptimization
The newest version!
/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/maps/routeoptimization/v1/route_optimization_service.proto
// Protobuf Java Version: 3.25.5
package com.google.maps.routeoptimization.v1;
public interface ShipmentOrBuilder
extends
// @@protoc_insertion_point(interface_extends:google.maps.routeoptimization.v1.Shipment)
com.google.protobuf.MessageOrBuilder {
/**
*
*
*
* The user-defined display name of the shipment.
* It can be up to 63 characters long and may use UTF-8 characters.
*
*
* string display_name = 16;
*
* @return The displayName.
*/
java.lang.String getDisplayName();
/**
*
*
*
* The user-defined display name of the shipment.
* It can be up to 63 characters long and may use UTF-8 characters.
*
*
* string display_name = 16;
*
* @return The bytes for displayName.
*/
com.google.protobuf.ByteString getDisplayNameBytes();
/**
*
*
*
* Set of pickup alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the deliveries.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
*/
java.util.List getPickupsList();
/**
*
*
*
* Set of pickup alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the deliveries.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
*/
com.google.maps.routeoptimization.v1.Shipment.VisitRequest getPickups(int index);
/**
*
*
*
* Set of pickup alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the deliveries.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
*/
int getPickupsCount();
/**
*
*
*
* Set of pickup alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the deliveries.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
*/
java.util.List extends com.google.maps.routeoptimization.v1.Shipment.VisitRequestOrBuilder>
getPickupsOrBuilderList();
/**
*
*
*
* Set of pickup alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the deliveries.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
*/
com.google.maps.routeoptimization.v1.Shipment.VisitRequestOrBuilder getPickupsOrBuilder(
int index);
/**
*
*
*
* Set of delivery alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the pickups.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
*/
java.util.List getDeliveriesList();
/**
*
*
*
* Set of delivery alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the pickups.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
*/
com.google.maps.routeoptimization.v1.Shipment.VisitRequest getDeliveries(int index);
/**
*
*
*
* Set of delivery alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the pickups.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
*/
int getDeliveriesCount();
/**
*
*
*
* Set of delivery alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the pickups.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
*/
java.util.List extends com.google.maps.routeoptimization.v1.Shipment.VisitRequestOrBuilder>
getDeliveriesOrBuilderList();
/**
*
*
*
* Set of delivery alternatives associated to the shipment. If not specified,
* the vehicle only needs to visit a location corresponding to the pickups.
*
*
* repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
*/
com.google.maps.routeoptimization.v1.Shipment.VisitRequestOrBuilder getDeliveriesOrBuilder(
int index);
/**
*
*
*
* Load demands of the shipment (for example weight, volume, number of
* pallets etc). The keys in the map should be identifiers describing the type
* of the corresponding load, ideally also including the units.
* For example: "weight_kg", "volume_gallons", "pallet_count", etc.
* If a given key does not appear in the map, the corresponding load is
* considered as null.
*
*
* map<string, .google.maps.routeoptimization.v1.Shipment.Load> load_demands = 14;
*
*/
int getLoadDemandsCount();
/**
*
*
*
* Load demands of the shipment (for example weight, volume, number of
* pallets etc). The keys in the map should be identifiers describing the type
* of the corresponding load, ideally also including the units.
* For example: "weight_kg", "volume_gallons", "pallet_count", etc.
* If a given key does not appear in the map, the corresponding load is
* considered as null.
*
*
* map<string, .google.maps.routeoptimization.v1.Shipment.Load> load_demands = 14;
*
*/
boolean containsLoadDemands(java.lang.String key);
/** Use {@link #getLoadDemandsMap()} instead. */
@java.lang.Deprecated
java.util.Map
getLoadDemands();
/**
*
*
*
* Load demands of the shipment (for example weight, volume, number of
* pallets etc). The keys in the map should be identifiers describing the type
* of the corresponding load, ideally also including the units.
* For example: "weight_kg", "volume_gallons", "pallet_count", etc.
* If a given key does not appear in the map, the corresponding load is
* considered as null.
*
*
* map<string, .google.maps.routeoptimization.v1.Shipment.Load> load_demands = 14;
*
*/
java.util.Map
getLoadDemandsMap();
/**
*
*
*
* Load demands of the shipment (for example weight, volume, number of
* pallets etc). The keys in the map should be identifiers describing the type
* of the corresponding load, ideally also including the units.
* For example: "weight_kg", "volume_gallons", "pallet_count", etc.
* If a given key does not appear in the map, the corresponding load is
* considered as null.
*
*
* map<string, .google.maps.routeoptimization.v1.Shipment.Load> load_demands = 14;
*
*/
/* nullable */
com.google.maps.routeoptimization.v1.Shipment.Load getLoadDemandsOrDefault(
java.lang.String key,
/* nullable */
com.google.maps.routeoptimization.v1.Shipment.Load defaultValue);
/**
*
*
*
* Load demands of the shipment (for example weight, volume, number of
* pallets etc). The keys in the map should be identifiers describing the type
* of the corresponding load, ideally also including the units.
* For example: "weight_kg", "volume_gallons", "pallet_count", etc.
* If a given key does not appear in the map, the corresponding load is
* considered as null.
*
*
* map<string, .google.maps.routeoptimization.v1.Shipment.Load> load_demands = 14;
*
*/
com.google.maps.routeoptimization.v1.Shipment.Load getLoadDemandsOrThrow(java.lang.String key);
/**
*
*
*
* If the shipment is not completed, this penalty is added to the overall
* cost of the routes. A shipment is considered completed if one of its pickup
* and delivery alternatives is visited. The cost may be expressed in the
* same unit used for all other cost-related fields in the model and must be
* positive.
*
* *IMPORTANT*: If this penalty is not specified, it is considered infinite,
* i.e. the shipment must be completed.
*
*
* optional double penalty_cost = 4;
*
* @return Whether the penaltyCost field is set.
*/
boolean hasPenaltyCost();
/**
*
*
*
* If the shipment is not completed, this penalty is added to the overall
* cost of the routes. A shipment is considered completed if one of its pickup
* and delivery alternatives is visited. The cost may be expressed in the
* same unit used for all other cost-related fields in the model and must be
* positive.
*
* *IMPORTANT*: If this penalty is not specified, it is considered infinite,
* i.e. the shipment must be completed.
*
*
* optional double penalty_cost = 4;
*
* @return The penaltyCost.
*/
double getPenaltyCost();
/**
*
*
*
* The set of vehicles that may perform this shipment. If empty, all vehicles
* may perform it. Vehicles are given by their index in the `ShipmentModel`'s
* `vehicles` list.
*
*
* repeated int32 allowed_vehicle_indices = 5;
*
* @return A list containing the allowedVehicleIndices.
*/
java.util.List getAllowedVehicleIndicesList();
/**
*
*
*
* The set of vehicles that may perform this shipment. If empty, all vehicles
* may perform it. Vehicles are given by their index in the `ShipmentModel`'s
* `vehicles` list.
*
*
* repeated int32 allowed_vehicle_indices = 5;
*
* @return The count of allowedVehicleIndices.
*/
int getAllowedVehicleIndicesCount();
/**
*
*
*
* The set of vehicles that may perform this shipment. If empty, all vehicles
* may perform it. Vehicles are given by their index in the `ShipmentModel`'s
* `vehicles` list.
*
*
* repeated int32 allowed_vehicle_indices = 5;
*
* @param index The index of the element to return.
* @return The allowedVehicleIndices at the given index.
*/
int getAllowedVehicleIndices(int index);
/**
*
*
*
* Specifies the cost that is incurred when this shipment is delivered by each
* vehicle. If specified, it must have EITHER:
*
* * the same number of elements as `costs_per_vehicle_indices`.
* `costs_per_vehicle[i]` corresponds to vehicle
* `costs_per_vehicle_indices[i]` of the model.
* * the same number of elements as there are vehicles in the model. The
* i-th element corresponds to vehicle #i of the model.
*
* These costs must be in the same unit as `penalty_cost` and must not be
* negative. Leave this field empty, if there are no such costs.
*
*
* repeated double costs_per_vehicle = 6;
*
* @return A list containing the costsPerVehicle.
*/
java.util.List getCostsPerVehicleList();
/**
*
*
*
* Specifies the cost that is incurred when this shipment is delivered by each
* vehicle. If specified, it must have EITHER:
*
* * the same number of elements as `costs_per_vehicle_indices`.
* `costs_per_vehicle[i]` corresponds to vehicle
* `costs_per_vehicle_indices[i]` of the model.
* * the same number of elements as there are vehicles in the model. The
* i-th element corresponds to vehicle #i of the model.
*
* These costs must be in the same unit as `penalty_cost` and must not be
* negative. Leave this field empty, if there are no such costs.
*
*
* repeated double costs_per_vehicle = 6;
*
* @return The count of costsPerVehicle.
*/
int getCostsPerVehicleCount();
/**
*
*
*
* Specifies the cost that is incurred when this shipment is delivered by each
* vehicle. If specified, it must have EITHER:
*
* * the same number of elements as `costs_per_vehicle_indices`.
* `costs_per_vehicle[i]` corresponds to vehicle
* `costs_per_vehicle_indices[i]` of the model.
* * the same number of elements as there are vehicles in the model. The
* i-th element corresponds to vehicle #i of the model.
*
* These costs must be in the same unit as `penalty_cost` and must not be
* negative. Leave this field empty, if there are no such costs.
*
*
* repeated double costs_per_vehicle = 6;
*
* @param index The index of the element to return.
* @return The costsPerVehicle at the given index.
*/
double getCostsPerVehicle(int index);
/**
*
*
*
* Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
* it must have the same number of elements as `costs_per_vehicle`. A vehicle
* index may not be specified more than once. If a vehicle is excluded from
* `costs_per_vehicle_indices`, its cost is zero.
*
*
* repeated int32 costs_per_vehicle_indices = 7;
*
* @return A list containing the costsPerVehicleIndices.
*/
java.util.List getCostsPerVehicleIndicesList();
/**
*
*
*
* Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
* it must have the same number of elements as `costs_per_vehicle`. A vehicle
* index may not be specified more than once. If a vehicle is excluded from
* `costs_per_vehicle_indices`, its cost is zero.
*
*
* repeated int32 costs_per_vehicle_indices = 7;
*
* @return The count of costsPerVehicleIndices.
*/
int getCostsPerVehicleIndicesCount();
/**
*
*
*
* Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
* it must have the same number of elements as `costs_per_vehicle`. A vehicle
* index may not be specified more than once. If a vehicle is excluded from
* `costs_per_vehicle_indices`, its cost is zero.
*
*
* repeated int32 costs_per_vehicle_indices = 7;
*
* @param index The index of the element to return.
* @return The costsPerVehicleIndices at the given index.
*/
int getCostsPerVehicleIndices(int index);
/**
*
*
*
* Specifies the maximum relative detour time compared to the shortest path
* from pickup to delivery. If specified, it must be nonnegative, and the
* shipment must contain at least a pickup and a delivery.
*
* For example, let t be the shortest time taken to go from the selected
* pickup alternative directly to the selected delivery alternative. Then
* setting `pickup_to_delivery_relative_detour_limit` enforces:
*
* ```
* start_time(delivery) - start_time(pickup) <=
* std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
* ```
*
* If both relative and absolute limits are specified on the same shipment,
* the more constraining limit is used for each possible pickup/delivery pair.
* As of 2017/10, detours are only supported when travel durations do not
* depend on vehicles.
*
*
* optional double pickup_to_delivery_relative_detour_limit = 8;
*
* @return Whether the pickupToDeliveryRelativeDetourLimit field is set.
*/
boolean hasPickupToDeliveryRelativeDetourLimit();
/**
*
*
*
* Specifies the maximum relative detour time compared to the shortest path
* from pickup to delivery. If specified, it must be nonnegative, and the
* shipment must contain at least a pickup and a delivery.
*
* For example, let t be the shortest time taken to go from the selected
* pickup alternative directly to the selected delivery alternative. Then
* setting `pickup_to_delivery_relative_detour_limit` enforces:
*
* ```
* start_time(delivery) - start_time(pickup) <=
* std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
* ```
*
* If both relative and absolute limits are specified on the same shipment,
* the more constraining limit is used for each possible pickup/delivery pair.
* As of 2017/10, detours are only supported when travel durations do not
* depend on vehicles.
*
*
* optional double pickup_to_delivery_relative_detour_limit = 8;
*
* @return The pickupToDeliveryRelativeDetourLimit.
*/
double getPickupToDeliveryRelativeDetourLimit();
/**
*
*
*
* Specifies the maximum absolute detour time compared to the shortest path
* from pickup to delivery. If specified, it must be nonnegative, and the
* shipment must contain at least a pickup and a delivery.
*
* For example, let t be the shortest time taken to go from the selected
* pickup alternative directly to the selected delivery alternative. Then
* setting `pickup_to_delivery_absolute_detour_limit` enforces:
*
* ```
* start_time(delivery) - start_time(pickup) <=
* t + pickup_to_delivery_absolute_detour_limit
* ```
*
* If both relative and absolute limits are specified on the same shipment,
* the more constraining limit is used for each possible pickup/delivery pair.
* As of 2017/10, detours are only supported when travel durations do not
* depend on vehicles.
*
*
* .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
*
* @return Whether the pickupToDeliveryAbsoluteDetourLimit field is set.
*/
boolean hasPickupToDeliveryAbsoluteDetourLimit();
/**
*
*
*
* Specifies the maximum absolute detour time compared to the shortest path
* from pickup to delivery. If specified, it must be nonnegative, and the
* shipment must contain at least a pickup and a delivery.
*
* For example, let t be the shortest time taken to go from the selected
* pickup alternative directly to the selected delivery alternative. Then
* setting `pickup_to_delivery_absolute_detour_limit` enforces:
*
* ```
* start_time(delivery) - start_time(pickup) <=
* t + pickup_to_delivery_absolute_detour_limit
* ```
*
* If both relative and absolute limits are specified on the same shipment,
* the more constraining limit is used for each possible pickup/delivery pair.
* As of 2017/10, detours are only supported when travel durations do not
* depend on vehicles.
*
*
* .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
*
* @return The pickupToDeliveryAbsoluteDetourLimit.
*/
com.google.protobuf.Duration getPickupToDeliveryAbsoluteDetourLimit();
/**
*
*
*
* Specifies the maximum absolute detour time compared to the shortest path
* from pickup to delivery. If specified, it must be nonnegative, and the
* shipment must contain at least a pickup and a delivery.
*
* For example, let t be the shortest time taken to go from the selected
* pickup alternative directly to the selected delivery alternative. Then
* setting `pickup_to_delivery_absolute_detour_limit` enforces:
*
* ```
* start_time(delivery) - start_time(pickup) <=
* t + pickup_to_delivery_absolute_detour_limit
* ```
*
* If both relative and absolute limits are specified on the same shipment,
* the more constraining limit is used for each possible pickup/delivery pair.
* As of 2017/10, detours are only supported when travel durations do not
* depend on vehicles.
*
*
* .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
*/
com.google.protobuf.DurationOrBuilder getPickupToDeliveryAbsoluteDetourLimitOrBuilder();
/**
*
*
*
* Specifies the maximum duration from start of pickup to start of delivery of
* a shipment. If specified, it must be nonnegative, and the shipment must
* contain at least a pickup and a delivery. This does not depend on which
* alternatives are selected for pickup and delivery, nor on vehicle speed.
* This can be specified alongside maximum detour constraints: the solution
* will respect both specifications.
*
*
* .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
*
* @return Whether the pickupToDeliveryTimeLimit field is set.
*/
boolean hasPickupToDeliveryTimeLimit();
/**
*
*
*
* Specifies the maximum duration from start of pickup to start of delivery of
* a shipment. If specified, it must be nonnegative, and the shipment must
* contain at least a pickup and a delivery. This does not depend on which
* alternatives are selected for pickup and delivery, nor on vehicle speed.
* This can be specified alongside maximum detour constraints: the solution
* will respect both specifications.
*
*
* .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
*
* @return The pickupToDeliveryTimeLimit.
*/
com.google.protobuf.Duration getPickupToDeliveryTimeLimit();
/**
*
*
*
* Specifies the maximum duration from start of pickup to start of delivery of
* a shipment. If specified, it must be nonnegative, and the shipment must
* contain at least a pickup and a delivery. This does not depend on which
* alternatives are selected for pickup and delivery, nor on vehicle speed.
* This can be specified alongside maximum detour constraints: the solution
* will respect both specifications.
*
*
* .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
*/
com.google.protobuf.DurationOrBuilder getPickupToDeliveryTimeLimitOrBuilder();
/**
*
*
*
* Non-empty string specifying a "type" for this shipment.
* This feature can be used to define incompatibilities or requirements
* between `shipment_types` (see `shipment_type_incompatibilities` and
* `shipment_type_requirements` in `ShipmentModel`).
*
* Differs from `visit_types` which is specified for a single visit: All
* pickup/deliveries belonging to the same shipment share the same
* `shipment_type`.
*
*
* string shipment_type = 11;
*
* @return The shipmentType.
*/
java.lang.String getShipmentType();
/**
*
*
*
* Non-empty string specifying a "type" for this shipment.
* This feature can be used to define incompatibilities or requirements
* between `shipment_types` (see `shipment_type_incompatibilities` and
* `shipment_type_requirements` in `ShipmentModel`).
*
* Differs from `visit_types` which is specified for a single visit: All
* pickup/deliveries belonging to the same shipment share the same
* `shipment_type`.
*
*
* string shipment_type = 11;
*
* @return The bytes for shipmentType.
*/
com.google.protobuf.ByteString getShipmentTypeBytes();
/**
*
*
*
* Specifies a label for this shipment. This label is reported in the response
* in the `shipment_label` of the corresponding
* [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
*
*
* string label = 12;
*
* @return The label.
*/
java.lang.String getLabel();
/**
*
*
*
* Specifies a label for this shipment. This label is reported in the response
* in the `shipment_label` of the corresponding
* [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
*
*
* string label = 12;
*
* @return The bytes for label.
*/
com.google.protobuf.ByteString getLabelBytes();
/**
*
*
*
* If true, skip this shipment, but don't apply a `penalty_cost`.
*
* Ignoring a shipment results in a validation error when there are any
* `shipment_type_requirements` in the model.
*
* Ignoring a shipment that is performed in `injected_first_solution_routes`
* or `injected_solution_constraint` is permitted; the solver removes the
* related pickup/delivery visits from the performing route.
* `precedence_rules` that reference ignored shipments will also be ignored.
*
*
* bool ignore = 13;
*
* @return The ignore.
*/
boolean getIgnore();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy