proto_docs/google/cloud/optimization/v1/fleet_routing.rb in google-cloud-optimization-v1-0.2.0 vs proto_docs/google/cloud/optimization/v1/fleet_routing.rb in google-cloud-optimization-v1-0.2.1

- old
+ new

@@ -44,11 +44,11 @@ # @!attribute [rw] solving_mode # @return [::Google::Cloud::Optimization::V1::OptimizeToursRequest::SolvingMode] # By default, the solving mode is `DEFAULT_SOLVE` (0). # @!attribute [rw] max_validation_errors # @return [::Integer] - # Truncates the number of validation errors returned. Those errors are + # Truncates the number of validation errors returned. These errors are # typically attached to an INVALID_ARGUMENT error payload as a BadRequest # error detail (https://cloud.google.com/apis/design/errors#error_details), # unless solving_mode=VALIDATE_ONLY: see the # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#validation_errors OptimizeToursResponse.validation_errors} # field. @@ -77,12 +77,13 @@ # a shipment may be performed. # * for all routes, times are increasing (i.e., `vehicle_start_time # <= visits[0].start_time <= visits[1].start_time ... # <= vehicle_end_time`). # * a shipment may only be performed on a vehicle that is allowed. A - # vehicle is allowed if {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices} is empty or - # its `vehicle_index` is included in + # vehicle is allowed if + # {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices} + # is empty or its `vehicle_index` is included in # {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices}. # # If the injected solution is not feasible, a validation error is not # necessarily returned and an error indicating infeasibility may be returned # instead. @@ -116,20 +117,31 @@ # regardless of whether the related shipments or vehicles are ignored. # @!attribute [rw] interpret_injected_solutions_using_labels # @return [::Boolean] # If true: # - # * uses {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label} instead of `vehicle_index` to + # * uses + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label} + # instead of `vehicle_index` to # match routes in an injected solution with vehicles in the request; - # reuses the mapping of original {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} to new - # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} to update + # reuses the mapping of original + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} + # to new + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} + # to update # {::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation#vehicle_indices ConstraintRelaxation.vehicle_indices} # if non-empty, but the mapping must be unambiguous (i.e., multiple # `ShipmentRoute`s must not share the same original `vehicle_index`). - # * uses {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label} instead of `shipment_index` + # * uses + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label} + # instead of `shipment_index` # to match visits in an injected solution with shipments in the request; - # * uses {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} instead of {::Google::Cloud::Optimization::V1::SkippedShipment#index SkippedShipment.index} to + # * uses + # {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} + # instead of + # {::Google::Cloud::Optimization::V1::SkippedShipment#index SkippedShipment.index} + # to # match skipped shipments in the injected solution with request # shipments. # # This interpretation applies to the `injected_first_solution_routes`, # `injected_solution_constraint`, and `refresh_details_routes` fields. @@ -138,43 +150,50 @@ # vehicles have been removed from or added to the request. # # If true, labels in the following categories must appear at most once in # their category: # - # * {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} in the request; - # * {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label} in the request; + # * {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} in the + # request; + # * {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label} in the + # request; # * {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label} in the injected solution; # * {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} and {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label} in # the injected solution (except pickup/delivery visit pairs, whose # `shipment_label` must appear twice). # # If a `vehicle_label` in the injected solution does not correspond to a # request vehicle, the corresponding route is removed from the solution # along with its visits. If a `shipment_label` in the injected solution does # not correspond to a request shipment, the corresponding visit is removed - # from the solution. If a {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} in the injected solution - # does not correspond to a request shipment, the `SkippedShipment` is removed - # from the solution. + # from the solution. If a + # {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} + # in the injected solution does not correspond to a request shipment, the + # `SkippedShipment` is removed from the solution. # # Removing route visits or entire routes from an injected solution may # have an effect on the implied constraints, which may lead to change in # solution, validation errors, or infeasibility. # - # NOTE: The caller must ensure that each {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} - # (resp. {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}) uniquely identifies a vehicle (resp. shipment) - # entity used across the two relevant requests: the past request that - # produced the `OptimizeToursResponse` used in the injected solution and the - # current request that includes the injected solution. The uniqueness checks - # described above are not enough to guarantee this requirement. + # NOTE: The caller must ensure that each + # {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} (resp. + # {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}) uniquely + # identifies a vehicle (resp. shipment) entity used across the two relevant + # requests: the past request that produced the `OptimizeToursResponse` used + # in the injected solution and the current request that includes the injected + # solution. The uniqueness checks described above are not enough to guarantee + # this requirement. # @!attribute [rw] consider_road_traffic # @return [::Boolean] # Consider traffic estimation in calculating `ShipmentRoute` fields # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#travel_duration Transition.travel_duration}, # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#start_time Visit.start_time}, # and `vehicle_end_time`; in setting the - # {::Google::Cloud::Optimization::V1::ShipmentRoute#has_traffic_infeasibilities ShipmentRoute.has_traffic_infeasibilities} field, and in calculating the - # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#total_cost OptimizeToursResponse.total_cost} field. + # {::Google::Cloud::Optimization::V1::ShipmentRoute#has_traffic_infeasibilities ShipmentRoute.has_traffic_infeasibilities} + # field, and in calculating the + # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#total_cost OptimizeToursResponse.total_cost} + # field. # @!attribute [rw] populate_polylines # @return [::Boolean] # If true, polylines will be populated in response `ShipmentRoute`s. # @!attribute [rw] populate_transition_polylines # @return [::Boolean] @@ -203,22 +222,25 @@ # @return [::String] # Label that may be used to identify this request, reported back in the # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#request_label OptimizeToursResponse.request_label}. # @!attribute [rw] populate_travel_step_polylines # @return [::Boolean] - # Deprecated: Use [OptimizeToursRequest.populate_transition_polylines][] instead. - # If true, polylines will be populated in response - # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}. Note that in this case, the polylines will - # also be populated in the deprecated `travel_steps`. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#populate_transition_polylines OptimizeToursRequest.populate_transition_polylines} + # instead. If true, polylines will be populated in response + # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}. + # Note that in this case, the polylines will also be populated in the + # deprecated `travel_steps`. class OptimizeToursRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Defines how the solver should handle the request. In all modes but # `VALIDATE_ONLY`, if the request is invalid, you will receive an - # `INVALID_REQUEST` error. See {::Google::Cloud::Optimization::V1::OptimizeToursRequest#max_validation_errors max_validation_errors} to cap the number of - # errors returned. + # `INVALID_REQUEST` error. See + # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#max_validation_errors max_validation_errors} + # to cap the number of errors returned. module SolvingMode # Solve the model. DEFAULT_SOLVE = 0 # Only validates the model without solving it: populates as many @@ -257,54 +279,61 @@ # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentRoute>] # Routes computed for each vehicle; the i-th route corresponds to the i-th # vehicle in the model. # @!attribute [rw] request_label # @return [::String] - # Copy of the {::Google::Cloud::Optimization::V1::OptimizeToursRequest#label OptimizeToursRequest.label}, if a label was specified in the - # request. + # Copy of the + # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#label OptimizeToursRequest.label}, + # if a label was specified in the request. # @!attribute [rw] skipped_shipments # @return [::Array<::Google::Cloud::Optimization::V1::SkippedShipment>] # The list of all shipments skipped. # @!attribute [rw] validation_errors # @return [::Array<::Google::Cloud::Optimization::V1::OptimizeToursValidationError>] # List of all the validation errors that we were able to detect # independently. See the "MULTIPLE ERRORS" explanation for the - # {::Google::Cloud::Optimization::V1::OptimizeToursValidationError OptimizeToursValidationError} message. + # {::Google::Cloud::Optimization::V1::OptimizeToursValidationError OptimizeToursValidationError} + # message. # @!attribute [rw] metrics # @return [::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics] # Duration, distance and usage metrics for this solution. # @!attribute [rw] total_cost # @return [::Float] - # Deprecated: Use [Metrics.total_cost][] instead. - # Total cost of the solution. This takes into account all costs: costs per - # per hour and travel hour, fixed vehicle costs, unperformed shipment penalty - # costs, global duration cost, etc. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#total_cost Metrics.total_cost} + # instead. Total cost of the solution. This takes into account all costs: + # costs per per hour and travel hour, fixed vehicle costs, unperformed + # shipment penalty costs, global duration cost, etc. class OptimizeToursResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Overall metrics, aggregated over all routes. # @!attribute [rw] aggregated_route_metrics # @return [::Google::Cloud::Optimization::V1::AggregatedMetrics] # Aggregated over the routes. Each metric is the sum (or max, for loads) - # over all {::Google::Cloud::Optimization::V1::ShipmentRoute#metrics ShipmentRoute.metrics} fields of the same name. + # over all + # {::Google::Cloud::Optimization::V1::ShipmentRoute#metrics ShipmentRoute.metrics} + # fields of the same name. # @!attribute [rw] skipped_mandatory_shipment_count # @return [::Integer] # Number of mandatory shipments skipped. # @!attribute [rw] used_vehicle_count # @return [::Integer] # Number of vehicles used. Note: if a vehicle route is empty and - # {::Google::Cloud::Optimization::V1::Vehicle#used_if_route_is_empty Vehicle.used_if_route_is_empty} is true, the vehicle is considered - # used. + # {::Google::Cloud::Optimization::V1::Vehicle#used_if_route_is_empty Vehicle.used_if_route_is_empty} + # is true, the vehicle is considered used. # @!attribute [rw] earliest_vehicle_start_time # @return [::Google::Protobuf::Timestamp] # The earliest start time for a used vehicle, computed as the minimum over - # all used vehicles of {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}. + # all used vehicles of + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}. # @!attribute [rw] latest_vehicle_end_time # @return [::Google::Protobuf::Timestamp] # The latest end time for a used vehicle, computed as the maximum over all - # used vehicles of {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time}. + # used vehicles of + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time}. # @!attribute [rw] costs # @return [::Google::Protobuf::Map{::String => ::Float}] # Cost of the solution, broken down by cost-related request fields. # The keys are proto paths, relative to the input OptimizeToursRequest, # e.g. "model.shipments.pickups.cost", and the values are the total cost @@ -344,12 +373,12 @@ # Format: `projects/{project-id}/locations/{location-id}`. # # If no location is specified, a region will be chosen automatically. # @!attribute [rw] model_configs # @return [::Array<::Google::Cloud::Optimization::V1::BatchOptimizeToursRequest::AsyncModelConfig>] - # Required. Input/Output information each purchase model, such as file paths and data - # formats. + # Required. Input/Output information each purchase model, such as file paths + # and data formats. class BatchOptimizeToursRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Information for solving one optimization model asynchronously. @@ -428,11 +457,12 @@ # @return [::Float] # The "global duration" of the overall plan is the difference between the # earliest effective start time and the latest effective end time of # all vehicles. Users can assign a cost per hour to that quantity to try # and optimize for earliest job completion, for example. This cost must be in - # the same unit as {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}. + # the same unit as + # {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}. # @!attribute [rw] duration_distance_matrices # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::DurationDistanceMatrix>] # Specifies duration and distance matrices used in the model. If this field # is empty, Google Maps or geodesic distances will be used instead, depending # on the value of the `use_geodesic_distances` field. If it is not empty, @@ -567,21 +597,23 @@ # @!attribute [rw] break_rules # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule>] # Deprecated: No longer used. # Set of break rules used in the model. # Each vehicle specifies the `BreakRule` that applies to it via the - # {::Google::Cloud::Optimization::V1::Vehicle#break_rule_indices Vehicle.break_rule_indices} field (which must be a singleton). + # {::Google::Cloud::Optimization::V1::Vehicle#break_rule_indices Vehicle.break_rule_indices} + # field (which must be a singleton). class ShipmentModel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Specifies a duration and distance matrix from visit and vehicle start # locations to visit and vehicle end locations. # @!attribute [rw] rows # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::DurationDistanceMatrix::Row>] # Specifies the rows of the duration and distance matrix. It must have as - # many elements as {::Google::Cloud::Optimization::V1::ShipmentModel#duration_distance_matrix_src_tags ShipmentModel.duration_distance_matrix_src_tags}. + # many elements as + # {::Google::Cloud::Optimization::V1::ShipmentModel#duration_distance_matrix_src_tags ShipmentModel.duration_distance_matrix_src_tags}. # @!attribute [rw] vehicle_start_tag # @return [::String] # Tag defining to which vehicles this duration and distance matrix applies. # If empty, this applies to all vehicles, and there can only be a single # matrix. @@ -639,22 +671,23 @@ class PrecedenceRule include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Deprecated: Use top level [BreakRule][] instead. + # Deprecated: Use top level + # {::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule BreakRule} instead. # Rules to generate time breaks for a vehicle (e.g. lunch # breaks). A break is a contiguous period of time during which the vehicle # remains idle at its current position and cannot perform any visit. A break # may occur: # # * during the travel between two visits (which includes the time right # before or right after a visit, but not in the middle of a visit), in - # which case it extends the corresponding transit time between the visits, - # * or before the vehicle start (the vehicle may not start in the middle of + # which case it extends the corresponding transit time between the visits + # * before the vehicle start (the vehicle may not start in the middle of # a break), in which case it does not affect the vehicle start time. - # * or after the vehicle end (ditto, with the vehicle end time). + # * after the vehicle end (ditto, with the vehicle end time). # @!attribute [rw] break_requests # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule::BreakRequest>] # Sequence of breaks. See the `BreakRequest` message. # @!attribute [rw] frequency_constraints # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule::FrequencyConstraint>] @@ -720,12 +753,12 @@ # @return [::Google::Protobuf::Duration] # Required. Minimum break duration for this constraint. Nonnegative. # See description of `FrequencyConstraint`. # @!attribute [rw] max_inter_break_duration # @return [::Google::Protobuf::Duration] - # Required. Maximum allowed span of any interval of time in the route that does not - # include at least partially a break of `duration >= + # Required. Maximum allowed span of any interval of time in the route + # that does not include at least partially a break of `duration >= # min_break_duration`. Must be positive. class FrequencyConstraint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end @@ -844,11 +877,12 @@ # pickup/deliveries belonging to the same shipment share the same # `shipment_type`. # @!attribute [rw] label # @return [::String] # Specifies a label for this shipment. This label is reported in the response - # in the `shipment_label` of the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}. + # in the `shipment_label` of the corresponding + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}. # @!attribute [rw] ignore # @return [::Boolean] # If true, skip this shipment, but don't apply a `penalty_cost`. # # Ignoring a shipment results in a validation error when there are any @@ -858,11 +892,13 @@ # 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. # @!attribute [rw] demands # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [Shipment.load_demands][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} + # instead. class Shipment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Request for a visit which can be done by a vehicle: it has a geo-location @@ -923,12 +959,14 @@ # shipment. This cost must be in the same unit as `Shipment.penalty_cost` # and must not be negative. # @!attribute [rw] load_demands # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Optimization::V1::Shipment::Load}] # Load demands of this visit request. This is just like - # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} field, except that it only applies to this - # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest VisitRequest} instead of the whole {::Google::Cloud::Optimization::V1::Shipment Shipment}. + # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} + # field, except that it only applies to this + # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest VisitRequest} + # instead of the whole {::Google::Cloud::Optimization::V1::Shipment Shipment}. # The demands listed here are added to the demands listed in # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands}. # @!attribute [rw] visit_types # @return [::Array<::String>] # Specifies the types of the visit. This may be used to allocate additional @@ -937,14 +975,17 @@ # # A type can only appear once. # @!attribute [rw] label # @return [::String] # Specifies a label for this `VisitRequest`. This label is reported in the - # response as `visit_label` in the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}. + # response as `visit_label` in the corresponding + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}. # @!attribute [rw] demands # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [VisitRequest.load_demands][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest#load_demands VisitRequest.load_demands} + # instead. class VisitRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key @@ -957,11 +998,12 @@ end end # When performing a visit, a predefined amount may be added to the vehicle # load if it's a pickup, or subtracted if it's a delivery. This message - # defines such amount. See {::Google::Cloud::Optimization::V1::Shipment#load_demands load_demands}. + # defines such amount. See + # {::Google::Cloud::Optimization::V1::Shipment#load_demands load_demands}. # @!attribute [rw] amount # @return [::Integer] # The amount by which the load of the vehicle performing the corresponding # visit will vary. Since it is an integer, users are advised to choose an # appropriate unit to avoid loss of precision. Must be ≥ 0. @@ -1174,17 +1216,19 @@ # in additional latency. # @!attribute [rw] cost_per_traveled_hour # @return [::Float] # Cost per traveled hour of the vehicle route. This cost is applied only to # travel time taken by the route (i.e., that reported in - # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}), and excludes waiting time and visit time. + # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}), + # and excludes waiting time and visit time. # @!attribute [rw] cost_per_kilometer # @return [::Float] # Cost per kilometer of the vehicle route. This cost is applied to the - # distance reported in the {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} and does not apply - # to any distance implicitly traveled from the `arrival_location` to the - # `departure_location` of a single `VisitRequest`. + # distance reported in the + # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} + # and does not apply to any distance implicitly traveled from the + # `arrival_location` to the `departure_location` of a single `VisitRequest`. # @!attribute [rw] fixed_cost # @return [::Float] # Fixed cost applied if this vehicle is used to handle a shipment. # @!attribute [rw] used_if_route_is_empty # @return [::Boolean] @@ -1231,11 +1275,12 @@ # Describes the break schedule to be enforced on this vehicle. # If empty, no breaks will be scheduled for this vehicle. # @!attribute [rw] label # @return [::String] # Specifies a label for this vehicle. This label is reported in the response - # as the `vehicle_label` of the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}. + # as the `vehicle_label` of the corresponding + # {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}. # @!attribute [rw] ignore # @return [::Boolean] # If true, `used_if_route_is_empty` must be false, and this vehicle will # remain unused. # @@ -1251,41 +1296,53 @@ # the allowed vehicles are ignored, it is skipped in the response. # @!attribute [rw] break_rule_indices # @return [::Array<::Integer>] # Deprecated: No longer used. # Indices in the `break_rule` field in the source - # [ShipmentModel][]. They correspond to break rules enforced on the vehicle. + # {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}. They + # correspond to break rules enforced on the vehicle. # - # # As of 2018/03, at most one rule index per vehicle can be specified. # @!attribute [rw] capacities # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [Vehicle.load_limits][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits} + # instead. # @!attribute [rw] start_load_intervals # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantityInterval>] - # Deprecated: Use [Vehicle.LoadLimit.start_load_interval][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#start_load_interval Vehicle.LoadLimit.start_load_interval} + # instead. # @!attribute [rw] end_load_intervals # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantityInterval>] - # Deprecated: Use [Vehicle.LoadLimit.end_load_interval][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#end_load_interval Vehicle.LoadLimit.end_load_interval} + # instead. class Vehicle include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Defines a load limit applying to a vehicle, e.g. "this truck may only - # carry up to 3500 kg". See {::Google::Cloud::Optimization::V1::Vehicle#load_limits load_limits}. + # carry up to 3500 kg". See + # {::Google::Cloud::Optimization::V1::Vehicle#load_limits load_limits}. # @!attribute [rw] max_load # @return [::Integer] # The maximum acceptable amount of load. # @!attribute [rw] soft_max_load # @return [::Integer] - # A soft limit of the load. See {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}. + # A soft limit of the load. See + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}. # @!attribute [rw] cost_per_unit_above_soft_max # @return [::Float] - # If the load ever exceeds {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load} along this vehicle's route, - # the following cost penalty applies (only once per vehicle): - # (load - {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load}) * {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}. All costs - # add up and must be in the same unit as {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}. + # If the load ever exceeds + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load} + # along this vehicle's route, the following cost penalty applies (only once + # per vehicle): (load - + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load}) + # * {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}. All costs + # add up and must be in the same unit as + # {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}. # @!attribute [rw] start_load_interval # @return [::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval] # The acceptable load interval of the vehicle at the start of the route. # @!attribute [rw] end_load_interval # @return [::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval] @@ -1296,16 +1353,22 @@ # Interval of acceptable load amounts. # @!attribute [rw] min # @return [::Integer] # A minimum acceptable load. Must be ≥ 0. - # If they're both specified, {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must be ≤ {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}. + # If they're both specified, + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must + # be ≤ + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}. # @!attribute [rw] max # @return [::Integer] # A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum # load is unrestricted by this message. - # If they're both specified, {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must be ≤ {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}. + # If they're both specified, + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must + # be ≤ + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}. class Interval include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end @@ -1425,12 +1488,15 @@ # a cost proportional to how long before soft_start_time the event occurs. The # soft time window upper bound, `soft_end_time`, expresses a preference for the # event to happen at or before `soft_end_time` by incurring a cost proportional # to how long after `soft_end_time` the event occurs. `start_time`, `end_time`, # `soft_start_time` and `soft_end_time` should be within the global time limits - # (see {::Google::Cloud::Optimization::V1::ShipmentModel#global_start_time ShipmentModel.global_start_time} and - # {::Google::Cloud::Optimization::V1::ShipmentModel#global_end_time ShipmentModel.global_end_time}) and should respect: + # (see + # {::Google::Cloud::Optimization::V1::ShipmentModel#global_start_time ShipmentModel.global_start_time} + # and + # {::Google::Cloud::Optimization::V1::ShipmentModel#global_end_time ShipmentModel.global_end_time}) + # and should respect: # ``` # 0 <= `start_time` <= `soft_start_time` <= `end_time` and # 0 <= `start_time` <= `soft_end_time` <= `end_time`. # ``` # @!attribute [rw] start_time @@ -1476,21 +1542,25 @@ class TimeWindow include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Deprecated: Use [Shipment.Load][], [Vehicle.LoadLimit][] and [ShipmentRoute.VehicleLoad][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval Vehicle.LoadLimit.Interval} + # instead. # @!attribute [rw] type # @return [::String] # @!attribute [rw] value # @return [::Integer] class CapacityQuantity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Deprecated: Use [Vehicle.LoadLimit.Interval][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval Vehicle.LoadLimit.Interval} + # instead. # @!attribute [rw] type # @return [::String] # @!attribute [rw] min_value # @return [::Integer] # @!attribute [rw] max_value @@ -1517,12 +1587,12 @@ # # If defined soft_max_meters must be less than max_meters and must be # nonnegative. # @!attribute [rw] cost_per_kilometer_above_soft_max # @return [::Float] - # Cost per kilometer incurred if `soft_max_meters` limit is violated. The - # additional cost is 0 if the distance is under the limit, otherwise the + # Cost per kilometer incurred if distance is above `soft_max_meters` limit. + # The additional cost is 0 if the distance is under the limit, otherwise the # formula used to compute the cost is the following: # ``` # (distance_meters - soft_max_meters) / 1000.0 * # cost_per_kilometer_above_soft_max. # ``` @@ -1551,12 +1621,13 @@ # non-empty. # @!attribute [rw] dst_tag # @return [::String] # A destination visit or vehicle end matches iff its # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest#tags VisitRequest.tags} - # or {::Google::Cloud::Optimization::V1::Vehicle#end_tags Vehicle.end_tags} either contains `dst_tag` or does not contain - # `excluded_dst_tag` (depending on which of these two fields is non-empty). + # or {::Google::Cloud::Optimization::V1::Vehicle#end_tags Vehicle.end_tags} either + # contains `dst_tag` or does not contain `excluded_dst_tag` (depending on + # which of these two fields is non-empty). # @!attribute [rw] excluded_dst_tag # @return [::String] # See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be # non-empty. # @!attribute [rw] cost @@ -1566,11 +1637,12 @@ # top of all other existing costs. # @!attribute [rw] cost_per_kilometer # @return [::Float] # Specifies a cost per kilometer applied to the distance traveled while # performing this transition. It adds up to any - # {::Google::Cloud::Optimization::V1::Vehicle#cost_per_kilometer Vehicle.cost_per_kilometer} specified on vehicles. + # {::Google::Cloud::Optimization::V1::Vehicle#cost_per_kilometer Vehicle.cost_per_kilometer} + # specified on vehicles. # @!attribute [rw] distance_limit # @return [::Google::Cloud::Optimization::V1::DistanceLimit] # Specifies a limit on the distance traveled while performing this # transition. # @@ -1700,12 +1772,12 @@ # @return [::Google::Protobuf::Duration] # Required. Minimum break duration for this constraint. Nonnegative. # See description of `FrequencyConstraint`. # @!attribute [rw] max_inter_break_duration # @return [::Google::Protobuf::Duration] - # Required. Maximum allowed span of any interval of time in the route that does not - # include at least partially a break of `duration >= + # Required. Maximum allowed span of any interval of time in the route that + # does not include at least partially a break of `duration >= # min_break_duration`. Must be positive. class FrequencyConstraint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end @@ -1825,12 +1897,14 @@ # are predicted using traffic-based travel duration estimates. There may be # insufficient time to complete traffic-adjusted travel, delays, and breaks # between visits, before the first visit, or after the last visit, while # still satisfying the visit and vehicle time windows. For example, # - # ```start_time(previous_visit) + duration(previous_visit) + - # travel_duration(previous_visit, next_visit) > start_time(next_visit)``` + # ``` + # start_time(previous_visit) + duration(previous_visit) + + # travel_duration(previous_visit, next_visit) > start_time(next_visit) + # ``` # # Arrival at next_visit will likely happen later than its current # time window due the increased estimate of travel time # `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break # may be forced to overlap with a visit due to an increase in travel time @@ -1847,12 +1921,16 @@ # The `breaks` sequence represents time intervals, each starting at the # corresponding `start_time` and lasting `duration` seconds. # @!attribute [rw] metrics # @return [::Google::Cloud::Optimization::V1::AggregatedMetrics] # Duration, distance and load metrics for this route. The fields of - # {::Google::Cloud::Optimization::V1::AggregatedMetrics AggregatedMetrics} are summed over all {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} or - # {::Google::Cloud::Optimization::V1::ShipmentRoute#visits ShipmentRoute.visits}, depending on the context. + # {::Google::Cloud::Optimization::V1::AggregatedMetrics AggregatedMetrics} are + # summed over all + # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} + # or + # {::Google::Cloud::Optimization::V1::ShipmentRoute#visits ShipmentRoute.visits}, + # depending on the context. # @!attribute [rw] route_costs # @return [::Google::Protobuf::Map{::String => ::Float}] # Cost of the route, broken down by cost-related request fields. # The keys are proto paths, relative to the input OptimizeToursRequest, e.g. # "model.shipments.pickups.cost", and the values are the total cost @@ -1864,40 +1942,46 @@ # @!attribute [rw] route_total_cost # @return [::Float] # Total cost of the route. The sum of all costs in the cost map. # @!attribute [rw] end_loads # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [ShipmentRoute.Transition.loads][] instead. - # Vehicle loads upon arrival at its end location, for each - # type specified in {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities}, + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads} + # instead. Vehicle loads upon arrival at its end location, for each type + # specified in + # {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities}, # `start_load_intervals`, `end_load_intervals` or demands. Exception: we omit # loads for quantity types unconstrained by intervals and that don't have any # non-zero demand on the route. # @!attribute [rw] travel_steps # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentRoute::TravelStep>] - # Deprecated: Use [ShipmentRoute.Transition][] instead. - # Ordered list of travel steps for the route. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} + # instead. Ordered list of travel steps for the route. # @!attribute [rw] vehicle_detour # @return [::Google::Protobuf::Duration] # Deprecated: No longer used. # This field will only be populated at the - # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit} level. - # Extra detour time due to the shipments visited on the route. + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit} + # level. # + # This field is the extra detour time due to the shipments visited on the + # route. + # # It is equal to `vehicle_end_time` - `vehicle_start_time` - travel duration # from the vehicle's start_location to its `end_location`. # @!attribute [rw] delay_before_vehicle_end # @return [::Google::Cloud::Optimization::V1::ShipmentRoute::Delay] - # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. - # Delay occurring before the vehicle end. See + # Deprecated: Delay occurring before the vehicle end. See # {::Google::Cloud::Optimization::V1::TransitionAttributes#delay TransitionAttributes.delay}. class ShipmentRoute include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. - # Time interval spent on the route resulting from a + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#delay_duration ShipmentRoute.Transition.delay_duration} + # instead. Time interval spent on the route resulting from a # {::Google::Cloud::Optimization::V1::TransitionAttributes#delay TransitionAttributes.delay}. # @!attribute [rw] start_time # @return [::Google::Protobuf::Timestamp] # Start of the delay. # @!attribute [rw] duration @@ -1910,11 +1994,12 @@ # A visit performed during a route. This visit corresponds to a pickup or a # delivery of a `Shipment`. # @!attribute [rw] shipment_index # @return [::Integer] - # Index of the `shipments` field in the source {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}. + # Index of the `shipments` field in the source + # {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}. # @!attribute [rw] is_pickup # @return [::Boolean] # If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it # corresponds to a delivery. # @!attribute [rw] visit_request_index @@ -1959,23 +2044,29 @@ # Copy of the corresponding # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest#label VisitRequest.label}, # if specified in the `VisitRequest`. # @!attribute [rw] arrival_loads # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [ShipmentRoute.Transition.loads][] instead. - # Vehicle loads upon arrival at the visit location, for each - # type specified in {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities}, `start_load_intervals`, - # `end_load_intervals` or `demands`. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads} + # instead. Vehicle loads upon arrival at the visit location, for each type + # specified in + # {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities}, + # `start_load_intervals`, `end_load_intervals` or `demands`. # # Exception: we omit loads for quantity types unconstrained by intervals # and that don't have any non-zero demand on the route. # @!attribute [rw] delay_before_start # @return [::Google::Cloud::Optimization::V1::ShipmentRoute::Delay] - # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#delay_duration ShipmentRoute.Transition.delay_duration} + # instead. Delay occurring before the visit starts. # @!attribute [rw] demands # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [Visit.load_demands][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#load_demands Visit.load_demands} + # instead. class Visit include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key @@ -2044,20 +2135,25 @@ # [google.cloud.optimization.v1.OptimizeToursRequest.populate_transition_polylines] # is set to true. # @!attribute [rw] vehicle_loads # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Optimization::V1::ShipmentRoute::VehicleLoad}] # Vehicle loads during this transition, for each type that either appears - # in this vehicle's {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits}, or that have non-zero - # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} on some shipment performed on this route. + # in this vehicle's + # {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits}, + # or that have non-zero + # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} + # on some shipment performed on this route. # # The loads during the first transition are the starting loads of the # vehicle route. Then, after each visit, the visit's `load_demands` are # either added or subtracted to get the next transition's loads, depending # on whether the visit was a pickup or a delivery. # @!attribute [rw] loads # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>] - # Deprecated: Use [Transition.vehicle_loads][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads} + # instead. class Transition include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key @@ -2069,15 +2165,17 @@ extend ::Google::Protobuf::MessageExts::ClassMethods end end # Reports the actual load of the vehicle at some point along the route, - # for a given type (see {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}). + # for a given type (see + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}). # @!attribute [rw] amount # @return [::Integer] # The amount of load on the vehicle, for the given type. The unit of load - # is usually indicated by the type. See {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}. + # is usually indicated by the type. See + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}. class VehicleLoad include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end @@ -2103,14 +2201,15 @@ class Break include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Deprecated: Use [ShipmentRoute.transitions][] instead. - # Travel between each visit, along the route: from the - # vehicle's `start_location` to the first visit's `arrival_location`, then - # from the first visit's `departure_location` to the second visit's + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition ShipmentRoute.Transition} + # instead. Travel between each visit along the route: from the vehicle's + # `start_location` to the first visit's `arrival_location`, then from the + # first visit's `departure_location` to the second visit's # `arrival_location`, and so on until the vehicle's `end_location`. This # accounts only for the actual travel between visits, not counting the # waiting time, the time spent performing a visit, nor the distance covered # during a visit. # @@ -2161,12 +2260,13 @@ # @return [::Integer] # The index corresponds to the index of the shipment in the source # `ShipmentModel`. # @!attribute [rw] label # @return [::String] - # Copy of the corresponding {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}, if specified in the - # `Shipment`. + # Copy of the corresponding + # {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}, if specified + # in the `Shipment`. # @!attribute [rw] reasons # @return [::Array<::Google::Cloud::Optimization::V1::SkippedShipment::Reason>] # A list of reasons that explain why the shipment was skipped. See comment # above `Reason`. class SkippedShipment @@ -2260,11 +2360,13 @@ VEHICLE_NOT_ALLOWED = 7 end end end - # Aggregated metrics for {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute} (resp. for {::Google::Cloud::Optimization::V1::OptimizeToursResponse OptimizeToursResponse} + # Aggregated metrics for + # {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute} (resp. for + # {::Google::Cloud::Optimization::V1::OptimizeToursResponse OptimizeToursResponse} # over all {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition Transition} # and/or {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit Visit} (resp. over # all {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}) elements. # @!attribute [rw] performed_shipment_count # @return [::Integer] @@ -2286,11 +2388,13 @@ # @return [::Google::Protobuf::Duration] # Total visit duration for a route or a solution. # @!attribute [rw] total_duration # @return [::Google::Protobuf::Duration] # The total duration should be equal to the sum of all durations above. - # For routes, it also corresponds to {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time} - + # For routes, it also corresponds to + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time} + # - # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}. # @!attribute [rw] travel_distance_meters # @return [::Float] # Total travel distance for a route or a solution. # @!attribute [rw] max_loads @@ -2301,14 +2405,22 @@ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads} # (resp. # {::Google::Cloud::Optimization::V1::AggregatedMetrics#max_loads ShipmentRoute.metrics.max_loads}. # @!attribute [rw] costs # @return [::Google::Protobuf::Map{::String => ::Float}] - # Deprecated: Use [ShipmentRoute.route_costs][] and [OptimizeToursResponse.Metrics.costs][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute#route_costs ShipmentRoute.route_costs} + # and + # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#costs OptimizeToursResponse.Metrics.costs} + # instead. # @!attribute [rw] total_cost # @return [::Float] - # Deprecated: Use [ShipmentRoute.route_total_cost][] and [OptimizeToursResponse.Metrics.total_cost][] instead. + # Deprecated: Use + # {::Google::Cloud::Optimization::V1::ShipmentRoute#route_total_cost ShipmentRoute.route_total_cost} + # and + # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#total_cost OptimizeToursResponse.Metrics.total_cost} + # instead. class AggregatedMetrics include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key @@ -2366,12 +2478,13 @@ # `constraint_relaxations`. There can be at most one default, i.e., at # most one constraint relaxation field is allowed empty # `vehicle_indices`. A vehicle index can only be listed once, even within # several `constraint_relaxations`. # - # A vehicle index is mapped the same as {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index}, if - # `interpret_injected_solutions_using_labels` is true (see `fields` + # A vehicle index is mapped the same as + # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index}, + # if `interpret_injected_solutions_using_labels` is true (see `fields` # comment). class ConstraintRelaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -2412,11 +2525,11 @@ # relaxation the time is fixed, unless the vehicle is empty. # @!attribute [rw] level # @return [::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation::Level] # The constraint relaxation level that applies when the conditions # at or after `threshold_time` AND at least `threshold_visit_count` are - # satified. + # satisfied. # @!attribute [rw] threshold_time # @return [::Google::Protobuf::Timestamp] # The time at or after which the relaxation `level` may be applied. # @!attribute [rw] threshold_visit_count # @return [::Integer] @@ -2430,19 +2543,19 @@ class Relaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Expresses the different constraint relaxation levels, which are - # applied for a visit and those that follow when it satifies the + # applied for a visit and those that follow when it satisfies the # threshold conditions. # # The enumeration below is in order of increasing relaxation. module Level # Implicit default relaxation level: no constraints are relaxed, # i.e., all visits are fully constrained. # - # This value must not be explicly used in `level`. + # This value must not be explicitly used in `level`. LEVEL_UNSPECIFIED = 0 # Visit start times and vehicle start/end times will be relaxed, but # each visit remains bound to the same vehicle and the visit sequence # must be observed: no visit can be inserted between them or before @@ -2508,17 +2621,24 @@ # * REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217; # * INJECTED_SOLUTION_ERROR = 20; # * INJECTED_SOLUTION_MISSING_LABEL = 2000; # * INJECTED_SOLUTION_DUPLICATE_LABEL = 2001; # * INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002; + # * INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003; + # * INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004; + # * INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005; + # * INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006; + # * INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008; # * SHIPMENT_MODEL_ERROR = 22; # * SHIPMENT_MODEL_TOO_LARGE = 2200; # * SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201; # * SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202; # * SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203; # * SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204; # * SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205; + # * SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206; + # * SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207; # * INDEX_ERROR = 24; # * TAG_ERROR = 26; # * TIME_WINDOW_ERROR = 28; # * TIME_WINDOW_INVALID_START_TIME = 2800; # * TIME_WINDOW_INVALID_END_TIME = 2801; @@ -2596,13 +2716,16 @@ # * DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813; # * DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814; # * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION # = 3815; # * SHIPMENT_ERROR = 40; + # * SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014; # * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000; # * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION # = 4001; + # * SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015; + # * SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016; # * SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002; # * SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003; # * SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004; # * SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005; # * SHIPMENT_INVALID_PENALTY_COST = 4006; @@ -2611,11 +2734,10 @@ # * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009; # * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010; # * SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011; # * SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012; # * SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013; - # * SHIPMENT_DETOUR_WITHOUT_PICKUP_AND_DELIVERY = 4014; # * VEHICLE_ERROR = 42; # * VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200; # * VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201; # * VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202; # * VEHICLE_EMPTY_START_TAG = 4203; @@ -2635,10 +2757,13 @@ # * VEHICLE_INVALID_COST_PER_KILOMETER = 4217; # * VEHICLE_INVALID_COST_PER_HOUR = 4218; # * VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219; # * VEHICLE_INVALID_FIXED_COST = 4220; # * VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221; + # * VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS + # = 4223; + # * VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224; # * VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222; # * VISIT_REQUEST_ERROR = 44; # * VISIT_REQUEST_EMPTY_TAG = 4400; # * VISIT_REQUEST_DUPLICATE_TAG = 4401; # * VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404; @@ -2687,12 +2812,9 @@ # * VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403; # * VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404; # * DURATION_SECONDS_MATRIX_ERROR = 56; # * DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600; # * DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601; - # * GRAPH_ARC_ERROR = 58; - # * GRAPH_ARC_DURATION_NEGATIVE_OR_NAN = 5800; - # * GRAPH_ARC_DURATION_EXCEEDS_GLOBAL_DURATION = 5801; # @!attribute [rw] display_name # @return [::String] # The error display name. # @!attribute [rw] fields # @return [::Array<::Google::Cloud::Optimization::V1::OptimizeToursValidationError::FieldReference>]