All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.maps.routeoptimization.v1.ShipmentOrBuilder Maven / Gradle / Ivy

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 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 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