google-cloud-optimization-v1 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,7 +46,7 @@ module Google
46
46
  # By default, the solving mode is `DEFAULT_SOLVE` (0).
47
47
  # @!attribute [rw] max_validation_errors
48
48
  # @return [::Integer]
49
- # Truncates the number of validation errors returned. Those errors are
49
+ # Truncates the number of validation errors returned. These errors are
50
50
  # typically attached to an INVALID_ARGUMENT error payload as a BadRequest
51
51
  # error detail (https://cloud.google.com/apis/design/errors#error_details),
52
52
  # unless solving_mode=VALIDATE_ONLY: see the
@@ -79,8 +79,9 @@ module Google
79
79
  # <= visits[0].start_time <= visits[1].start_time ...
80
80
  # <= vehicle_end_time`).
81
81
  # * a shipment may only be performed on a vehicle that is allowed. A
82
- # vehicle is allowed if {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices} is empty or
83
- # its `vehicle_index` is included in
82
+ # vehicle is allowed if
83
+ # {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices}
84
+ # is empty or its `vehicle_index` is included in
84
85
  # {::Google::Cloud::Optimization::V1::Shipment#allowed_vehicle_indices Shipment.allowed_vehicle_indices}.
85
86
  #
86
87
  # If the injected solution is not feasible, a validation error is not
@@ -118,16 +119,27 @@ module Google
118
119
  # @return [::Boolean]
119
120
  # If true:
120
121
  #
121
- # * uses {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label} instead of `vehicle_index` to
122
+ # * uses
123
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label}
124
+ # instead of `vehicle_index` to
122
125
  # match routes in an injected solution with vehicles in the request;
123
- # reuses the mapping of original {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} to new
124
- # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index} to update
126
+ # reuses the mapping of original
127
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index}
128
+ # to new
129
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index}
130
+ # to update
125
131
  # {::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation#vehicle_indices ConstraintRelaxation.vehicle_indices}
126
132
  # if non-empty, but the mapping must be unambiguous (i.e., multiple
127
133
  # `ShipmentRoute`s must not share the same original `vehicle_index`).
128
- # * uses {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label} instead of `shipment_index`
134
+ # * uses
135
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label}
136
+ # instead of `shipment_index`
129
137
  # to match visits in an injected solution with shipments in the request;
130
- # * uses {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} instead of {::Google::Cloud::Optimization::V1::SkippedShipment#index SkippedShipment.index} to
138
+ # * uses
139
+ # {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label}
140
+ # instead of
141
+ # {::Google::Cloud::Optimization::V1::SkippedShipment#index SkippedShipment.index}
142
+ # to
131
143
  # match skipped shipments in the injected solution with request
132
144
  # shipments.
133
145
  #
@@ -140,8 +152,10 @@ module Google
140
152
  # If true, labels in the following categories must appear at most once in
141
153
  # their category:
142
154
  #
143
- # * {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} in the request;
144
- # * {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label} in the request;
155
+ # * {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} in the
156
+ # request;
157
+ # * {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label} in the
158
+ # request;
145
159
  # * {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_label ShipmentRoute.vehicle_label} in the injected solution;
146
160
  # * {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} and {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#shipment_label ShipmentRoute.Visit.shipment_label} in
147
161
  # the injected solution (except pickup/delivery visit pairs, whose
@@ -151,28 +165,33 @@ module Google
151
165
  # request vehicle, the corresponding route is removed from the solution
152
166
  # along with its visits. If a `shipment_label` in the injected solution does
153
167
  # not correspond to a request shipment, the corresponding visit is removed
154
- # from the solution. If a {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label} in the injected solution
155
- # does not correspond to a request shipment, the `SkippedShipment` is removed
156
- # from the solution.
168
+ # from the solution. If a
169
+ # {::Google::Cloud::Optimization::V1::SkippedShipment#label SkippedShipment.label}
170
+ # in the injected solution does not correspond to a request shipment, the
171
+ # `SkippedShipment` is removed from the solution.
157
172
  #
158
173
  # Removing route visits or entire routes from an injected solution may
159
174
  # have an effect on the implied constraints, which may lead to change in
160
175
  # solution, validation errors, or infeasibility.
161
176
  #
162
- # NOTE: The caller must ensure that each {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label}
163
- # (resp. {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}) uniquely identifies a vehicle (resp. shipment)
164
- # entity used across the two relevant requests: the past request that
165
- # produced the `OptimizeToursResponse` used in the injected solution and the
166
- # current request that includes the injected solution. The uniqueness checks
167
- # described above are not enough to guarantee this requirement.
177
+ # NOTE: The caller must ensure that each
178
+ # {::Google::Cloud::Optimization::V1::Vehicle#label Vehicle.label} (resp.
179
+ # {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}) uniquely
180
+ # identifies a vehicle (resp. shipment) entity used across the two relevant
181
+ # requests: the past request that produced the `OptimizeToursResponse` used
182
+ # in the injected solution and the current request that includes the injected
183
+ # solution. The uniqueness checks described above are not enough to guarantee
184
+ # this requirement.
168
185
  # @!attribute [rw] consider_road_traffic
169
186
  # @return [::Boolean]
170
187
  # Consider traffic estimation in calculating `ShipmentRoute` fields
171
188
  # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#travel_duration Transition.travel_duration},
172
189
  # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#start_time Visit.start_time},
173
190
  # and `vehicle_end_time`; in setting the
174
- # {::Google::Cloud::Optimization::V1::ShipmentRoute#has_traffic_infeasibilities ShipmentRoute.has_traffic_infeasibilities} field, and in calculating the
175
- # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#total_cost OptimizeToursResponse.total_cost} field.
191
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#has_traffic_infeasibilities ShipmentRoute.has_traffic_infeasibilities}
192
+ # field, and in calculating the
193
+ # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#total_cost OptimizeToursResponse.total_cost}
194
+ # field.
176
195
  # @!attribute [rw] populate_polylines
177
196
  # @return [::Boolean]
178
197
  # If true, polylines will be populated in response `ShipmentRoute`s.
@@ -205,18 +224,21 @@ module Google
205
224
  # {::Google::Cloud::Optimization::V1::OptimizeToursResponse#request_label OptimizeToursResponse.request_label}.
206
225
  # @!attribute [rw] populate_travel_step_polylines
207
226
  # @return [::Boolean]
208
- # Deprecated: Use [OptimizeToursRequest.populate_transition_polylines][] instead.
209
- # If true, polylines will be populated in response
210
- # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}. Note that in this case, the polylines will
211
- # also be populated in the deprecated `travel_steps`.
227
+ # Deprecated: Use
228
+ # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#populate_transition_polylines OptimizeToursRequest.populate_transition_polylines}
229
+ # instead. If true, polylines will be populated in response
230
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}.
231
+ # Note that in this case, the polylines will also be populated in the
232
+ # deprecated `travel_steps`.
212
233
  class OptimizeToursRequest
213
234
  include ::Google::Protobuf::MessageExts
214
235
  extend ::Google::Protobuf::MessageExts::ClassMethods
215
236
 
216
237
  # Defines how the solver should handle the request. In all modes but
217
238
  # `VALIDATE_ONLY`, if the request is invalid, you will receive an
218
- # `INVALID_REQUEST` error. See {::Google::Cloud::Optimization::V1::OptimizeToursRequest#max_validation_errors max_validation_errors} to cap the number of
219
- # errors returned.
239
+ # `INVALID_REQUEST` error. See
240
+ # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#max_validation_errors max_validation_errors}
241
+ # to cap the number of errors returned.
220
242
  module SolvingMode
221
243
  # Solve the model.
222
244
  DEFAULT_SOLVE = 0
@@ -259,8 +281,9 @@ module Google
259
281
  # vehicle in the model.
260
282
  # @!attribute [rw] request_label
261
283
  # @return [::String]
262
- # Copy of the {::Google::Cloud::Optimization::V1::OptimizeToursRequest#label OptimizeToursRequest.label}, if a label was specified in the
263
- # request.
284
+ # Copy of the
285
+ # {::Google::Cloud::Optimization::V1::OptimizeToursRequest#label OptimizeToursRequest.label},
286
+ # if a label was specified in the request.
264
287
  # @!attribute [rw] skipped_shipments
265
288
  # @return [::Array<::Google::Cloud::Optimization::V1::SkippedShipment>]
266
289
  # The list of all shipments skipped.
@@ -268,16 +291,18 @@ module Google
268
291
  # @return [::Array<::Google::Cloud::Optimization::V1::OptimizeToursValidationError>]
269
292
  # List of all the validation errors that we were able to detect
270
293
  # independently. See the "MULTIPLE ERRORS" explanation for the
271
- # {::Google::Cloud::Optimization::V1::OptimizeToursValidationError OptimizeToursValidationError} message.
294
+ # {::Google::Cloud::Optimization::V1::OptimizeToursValidationError OptimizeToursValidationError}
295
+ # message.
272
296
  # @!attribute [rw] metrics
273
297
  # @return [::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics]
274
298
  # Duration, distance and usage metrics for this solution.
275
299
  # @!attribute [rw] total_cost
276
300
  # @return [::Float]
277
- # Deprecated: Use [Metrics.total_cost][] instead.
278
- # Total cost of the solution. This takes into account all costs: costs per
279
- # per hour and travel hour, fixed vehicle costs, unperformed shipment penalty
280
- # costs, global duration cost, etc.
301
+ # Deprecated: Use
302
+ # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#total_cost Metrics.total_cost}
303
+ # instead. Total cost of the solution. This takes into account all costs:
304
+ # costs per per hour and travel hour, fixed vehicle costs, unperformed
305
+ # shipment penalty costs, global duration cost, etc.
281
306
  class OptimizeToursResponse
282
307
  include ::Google::Protobuf::MessageExts
283
308
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -286,23 +311,27 @@ module Google
286
311
  # @!attribute [rw] aggregated_route_metrics
287
312
  # @return [::Google::Cloud::Optimization::V1::AggregatedMetrics]
288
313
  # Aggregated over the routes. Each metric is the sum (or max, for loads)
289
- # over all {::Google::Cloud::Optimization::V1::ShipmentRoute#metrics ShipmentRoute.metrics} fields of the same name.
314
+ # over all
315
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#metrics ShipmentRoute.metrics}
316
+ # fields of the same name.
290
317
  # @!attribute [rw] skipped_mandatory_shipment_count
291
318
  # @return [::Integer]
292
319
  # Number of mandatory shipments skipped.
293
320
  # @!attribute [rw] used_vehicle_count
294
321
  # @return [::Integer]
295
322
  # Number of vehicles used. Note: if a vehicle route is empty and
296
- # {::Google::Cloud::Optimization::V1::Vehicle#used_if_route_is_empty Vehicle.used_if_route_is_empty} is true, the vehicle is considered
297
- # used.
323
+ # {::Google::Cloud::Optimization::V1::Vehicle#used_if_route_is_empty Vehicle.used_if_route_is_empty}
324
+ # is true, the vehicle is considered used.
298
325
  # @!attribute [rw] earliest_vehicle_start_time
299
326
  # @return [::Google::Protobuf::Timestamp]
300
327
  # The earliest start time for a used vehicle, computed as the minimum over
301
- # all used vehicles of {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}.
328
+ # all used vehicles of
329
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}.
302
330
  # @!attribute [rw] latest_vehicle_end_time
303
331
  # @return [::Google::Protobuf::Timestamp]
304
332
  # The latest end time for a used vehicle, computed as the maximum over all
305
- # used vehicles of {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time}.
333
+ # used vehicles of
334
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time}.
306
335
  # @!attribute [rw] costs
307
336
  # @return [::Google::Protobuf::Map{::String => ::Float}]
308
337
  # Cost of the solution, broken down by cost-related request fields.
@@ -346,8 +375,8 @@ module Google
346
375
  # If no location is specified, a region will be chosen automatically.
347
376
  # @!attribute [rw] model_configs
348
377
  # @return [::Array<::Google::Cloud::Optimization::V1::BatchOptimizeToursRequest::AsyncModelConfig>]
349
- # Required. Input/Output information each purchase model, such as file paths and data
350
- # formats.
378
+ # Required. Input/Output information each purchase model, such as file paths
379
+ # and data formats.
351
380
  class BatchOptimizeToursRequest
352
381
  include ::Google::Protobuf::MessageExts
353
382
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -430,7 +459,8 @@ module Google
430
459
  # earliest effective start time and the latest effective end time of
431
460
  # all vehicles. Users can assign a cost per hour to that quantity to try
432
461
  # and optimize for earliest job completion, for example. This cost must be in
433
- # the same unit as {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}.
462
+ # the same unit as
463
+ # {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}.
434
464
  # @!attribute [rw] duration_distance_matrices
435
465
  # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::DurationDistanceMatrix>]
436
466
  # Specifies duration and distance matrices used in the model. If this field
@@ -569,7 +599,8 @@ module Google
569
599
  # Deprecated: No longer used.
570
600
  # Set of break rules used in the model.
571
601
  # Each vehicle specifies the `BreakRule` that applies to it via the
572
- # {::Google::Cloud::Optimization::V1::Vehicle#break_rule_indices Vehicle.break_rule_indices} field (which must be a singleton).
602
+ # {::Google::Cloud::Optimization::V1::Vehicle#break_rule_indices Vehicle.break_rule_indices}
603
+ # field (which must be a singleton).
573
604
  class ShipmentModel
574
605
  include ::Google::Protobuf::MessageExts
575
606
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -579,7 +610,8 @@ module Google
579
610
  # @!attribute [rw] rows
580
611
  # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::DurationDistanceMatrix::Row>]
581
612
  # Specifies the rows of the duration and distance matrix. It must have as
582
- # many elements as {::Google::Cloud::Optimization::V1::ShipmentModel#duration_distance_matrix_src_tags ShipmentModel.duration_distance_matrix_src_tags}.
613
+ # many elements as
614
+ # {::Google::Cloud::Optimization::V1::ShipmentModel#duration_distance_matrix_src_tags ShipmentModel.duration_distance_matrix_src_tags}.
583
615
  # @!attribute [rw] vehicle_start_tag
584
616
  # @return [::String]
585
617
  # Tag defining to which vehicles this duration and distance matrix applies.
@@ -641,7 +673,8 @@ module Google
641
673
  extend ::Google::Protobuf::MessageExts::ClassMethods
642
674
  end
643
675
 
644
- # Deprecated: Use top level [BreakRule][] instead.
676
+ # Deprecated: Use top level
677
+ # {::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule BreakRule} instead.
645
678
  # Rules to generate time breaks for a vehicle (e.g. lunch
646
679
  # breaks). A break is a contiguous period of time during which the vehicle
647
680
  # remains idle at its current position and cannot perform any visit. A break
@@ -649,10 +682,10 @@ module Google
649
682
  #
650
683
  # * during the travel between two visits (which includes the time right
651
684
  # before or right after a visit, but not in the middle of a visit), in
652
- # which case it extends the corresponding transit time between the visits,
653
- # * or before the vehicle start (the vehicle may not start in the middle of
685
+ # which case it extends the corresponding transit time between the visits
686
+ # * before the vehicle start (the vehicle may not start in the middle of
654
687
  # a break), in which case it does not affect the vehicle start time.
655
- # * or after the vehicle end (ditto, with the vehicle end time).
688
+ # * after the vehicle end (ditto, with the vehicle end time).
656
689
  # @!attribute [rw] break_requests
657
690
  # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentModel::BreakRule::BreakRequest>]
658
691
  # Sequence of breaks. See the `BreakRequest` message.
@@ -722,8 +755,8 @@ module Google
722
755
  # See description of `FrequencyConstraint`.
723
756
  # @!attribute [rw] max_inter_break_duration
724
757
  # @return [::Google::Protobuf::Duration]
725
- # Required. Maximum allowed span of any interval of time in the route that does not
726
- # include at least partially a break of `duration >=
758
+ # Required. Maximum allowed span of any interval of time in the route
759
+ # that does not include at least partially a break of `duration >=
727
760
  # min_break_duration`. Must be positive.
728
761
  class FrequencyConstraint
729
762
  include ::Google::Protobuf::MessageExts
@@ -846,7 +879,8 @@ module Google
846
879
  # @!attribute [rw] label
847
880
  # @return [::String]
848
881
  # Specifies a label for this shipment. This label is reported in the response
849
- # in the `shipment_label` of the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}.
882
+ # in the `shipment_label` of the corresponding
883
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}.
850
884
  # @!attribute [rw] ignore
851
885
  # @return [::Boolean]
852
886
  # If true, skip this shipment, but don't apply a `penalty_cost`.
@@ -860,7 +894,9 @@ module Google
860
894
  # `precedence_rules` that reference ignored shipments will also be ignored.
861
895
  # @!attribute [rw] demands
862
896
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
863
- # Deprecated: Use [Shipment.load_demands][] instead.
897
+ # Deprecated: Use
898
+ # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands}
899
+ # instead.
864
900
  class Shipment
865
901
  include ::Google::Protobuf::MessageExts
866
902
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -925,8 +961,10 @@ module Google
925
961
  # @!attribute [rw] load_demands
926
962
  # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Optimization::V1::Shipment::Load}]
927
963
  # Load demands of this visit request. This is just like
928
- # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} field, except that it only applies to this
929
- # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest VisitRequest} instead of the whole {::Google::Cloud::Optimization::V1::Shipment Shipment}.
964
+ # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands}
965
+ # field, except that it only applies to this
966
+ # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest VisitRequest}
967
+ # instead of the whole {::Google::Cloud::Optimization::V1::Shipment Shipment}.
930
968
  # The demands listed here are added to the demands listed in
931
969
  # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands}.
932
970
  # @!attribute [rw] visit_types
@@ -939,10 +977,13 @@ module Google
939
977
  # @!attribute [rw] label
940
978
  # @return [::String]
941
979
  # Specifies a label for this `VisitRequest`. This label is reported in the
942
- # response as `visit_label` in the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}.
980
+ # response as `visit_label` in the corresponding
981
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}.
943
982
  # @!attribute [rw] demands
944
983
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
945
- # Deprecated: Use [VisitRequest.load_demands][] instead.
984
+ # Deprecated: Use
985
+ # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest#load_demands VisitRequest.load_demands}
986
+ # instead.
946
987
  class VisitRequest
947
988
  include ::Google::Protobuf::MessageExts
948
989
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -959,7 +1000,8 @@ module Google
959
1000
 
960
1001
  # When performing a visit, a predefined amount may be added to the vehicle
961
1002
  # load if it's a pickup, or subtracted if it's a delivery. This message
962
- # defines such amount. See {::Google::Cloud::Optimization::V1::Shipment#load_demands load_demands}.
1003
+ # defines such amount. See
1004
+ # {::Google::Cloud::Optimization::V1::Shipment#load_demands load_demands}.
963
1005
  # @!attribute [rw] amount
964
1006
  # @return [::Integer]
965
1007
  # The amount by which the load of the vehicle performing the corresponding
@@ -1176,13 +1218,15 @@ module Google
1176
1218
  # @return [::Float]
1177
1219
  # Cost per traveled hour of the vehicle route. This cost is applied only to
1178
1220
  # travel time taken by the route (i.e., that reported in
1179
- # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}), and excludes waiting time and visit time.
1221
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}),
1222
+ # and excludes waiting time and visit time.
1180
1223
  # @!attribute [rw] cost_per_kilometer
1181
1224
  # @return [::Float]
1182
1225
  # Cost per kilometer of the vehicle route. This cost is applied to the
1183
- # distance reported in the {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} and does not apply
1184
- # to any distance implicitly traveled from the `arrival_location` to the
1185
- # `departure_location` of a single `VisitRequest`.
1226
+ # distance reported in the
1227
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}
1228
+ # and does not apply to any distance implicitly traveled from the
1229
+ # `arrival_location` to the `departure_location` of a single `VisitRequest`.
1186
1230
  # @!attribute [rw] fixed_cost
1187
1231
  # @return [::Float]
1188
1232
  # Fixed cost applied if this vehicle is used to handle a shipment.
@@ -1233,7 +1277,8 @@ module Google
1233
1277
  # @!attribute [rw] label
1234
1278
  # @return [::String]
1235
1279
  # Specifies a label for this vehicle. This label is reported in the response
1236
- # as the `vehicle_label` of the corresponding {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}.
1280
+ # as the `vehicle_label` of the corresponding
1281
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}.
1237
1282
  # @!attribute [rw] ignore
1238
1283
  # @return [::Boolean]
1239
1284
  # If true, `used_if_route_is_empty` must be false, and this vehicle will
@@ -1253,37 +1298,49 @@ module Google
1253
1298
  # @return [::Array<::Integer>]
1254
1299
  # Deprecated: No longer used.
1255
1300
  # Indices in the `break_rule` field in the source
1256
- # [ShipmentModel][]. They correspond to break rules enforced on the vehicle.
1257
- #
1301
+ # {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}. They
1302
+ # correspond to break rules enforced on the vehicle.
1258
1303
  #
1259
1304
  # As of 2018/03, at most one rule index per vehicle can be specified.
1260
1305
  # @!attribute [rw] capacities
1261
1306
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
1262
- # Deprecated: Use [Vehicle.load_limits][] instead.
1307
+ # Deprecated: Use
1308
+ # {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits}
1309
+ # instead.
1263
1310
  # @!attribute [rw] start_load_intervals
1264
1311
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantityInterval>]
1265
- # Deprecated: Use [Vehicle.LoadLimit.start_load_interval][] instead.
1312
+ # Deprecated: Use
1313
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#start_load_interval Vehicle.LoadLimit.start_load_interval}
1314
+ # instead.
1266
1315
  # @!attribute [rw] end_load_intervals
1267
1316
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantityInterval>]
1268
- # Deprecated: Use [Vehicle.LoadLimit.end_load_interval][] instead.
1317
+ # Deprecated: Use
1318
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#end_load_interval Vehicle.LoadLimit.end_load_interval}
1319
+ # instead.
1269
1320
  class Vehicle
1270
1321
  include ::Google::Protobuf::MessageExts
1271
1322
  extend ::Google::Protobuf::MessageExts::ClassMethods
1272
1323
 
1273
1324
  # Defines a load limit applying to a vehicle, e.g. "this truck may only
1274
- # carry up to 3500 kg". See {::Google::Cloud::Optimization::V1::Vehicle#load_limits load_limits}.
1325
+ # carry up to 3500 kg". See
1326
+ # {::Google::Cloud::Optimization::V1::Vehicle#load_limits load_limits}.
1275
1327
  # @!attribute [rw] max_load
1276
1328
  # @return [::Integer]
1277
1329
  # The maximum acceptable amount of load.
1278
1330
  # @!attribute [rw] soft_max_load
1279
1331
  # @return [::Integer]
1280
- # 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}.
1332
+ # A soft limit of the load. See
1333
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}.
1281
1334
  # @!attribute [rw] cost_per_unit_above_soft_max
1282
1335
  # @return [::Float]
1283
- # If the load ever exceeds {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load} along this vehicle's route,
1284
- # the following cost penalty applies (only once per vehicle):
1285
- # (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
1286
- # add up and must be in the same unit as {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}.
1336
+ # If the load ever exceeds
1337
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load}
1338
+ # along this vehicle's route, the following cost penalty applies (only once
1339
+ # per vehicle): (load -
1340
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#soft_max_load soft_max_load})
1341
+ # * {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit#cost_per_unit_above_soft_max cost_per_unit_above_soft_max}. All costs
1342
+ # add up and must be in the same unit as
1343
+ # {::Google::Cloud::Optimization::V1::Shipment#penalty_cost Shipment.penalty_cost}.
1287
1344
  # @!attribute [rw] start_load_interval
1288
1345
  # @return [::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval]
1289
1346
  # The acceptable load interval of the vehicle at the start of the route.
@@ -1298,12 +1355,18 @@ module Google
1298
1355
  # @!attribute [rw] min
1299
1356
  # @return [::Integer]
1300
1357
  # A minimum acceptable load. Must be ≥ 0.
1301
- # 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}.
1358
+ # If they're both specified,
1359
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must
1360
+ # be ≤
1361
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}.
1302
1362
  # @!attribute [rw] max
1303
1363
  # @return [::Integer]
1304
1364
  # A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
1305
1365
  # load is unrestricted by this message.
1306
- # 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}.
1366
+ # If they're both specified,
1367
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#min min} must
1368
+ # be ≤
1369
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval#max max}.
1307
1370
  class Interval
1308
1371
  include ::Google::Protobuf::MessageExts
1309
1372
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1427,8 +1490,11 @@ module Google
1427
1490
  # event to happen at or before `soft_end_time` by incurring a cost proportional
1428
1491
  # to how long after `soft_end_time` the event occurs. `start_time`, `end_time`,
1429
1492
  # `soft_start_time` and `soft_end_time` should be within the global time limits
1430
- # (see {::Google::Cloud::Optimization::V1::ShipmentModel#global_start_time ShipmentModel.global_start_time} and
1431
- # {::Google::Cloud::Optimization::V1::ShipmentModel#global_end_time ShipmentModel.global_end_time}) and should respect:
1493
+ # (see
1494
+ # {::Google::Cloud::Optimization::V1::ShipmentModel#global_start_time ShipmentModel.global_start_time}
1495
+ # and
1496
+ # {::Google::Cloud::Optimization::V1::ShipmentModel#global_end_time ShipmentModel.global_end_time})
1497
+ # and should respect:
1432
1498
  # ```
1433
1499
  # 0 <= `start_time` <= `soft_start_time` <= `end_time` and
1434
1500
  # 0 <= `start_time` <= `soft_end_time` <= `end_time`.
@@ -1478,7 +1544,9 @@ module Google
1478
1544
  extend ::Google::Protobuf::MessageExts::ClassMethods
1479
1545
  end
1480
1546
 
1481
- # Deprecated: Use [Shipment.Load][], [Vehicle.LoadLimit][] and [ShipmentRoute.VehicleLoad][] instead.
1547
+ # Deprecated: Use
1548
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval Vehicle.LoadLimit.Interval}
1549
+ # instead.
1482
1550
  # @!attribute [rw] type
1483
1551
  # @return [::String]
1484
1552
  # @!attribute [rw] value
@@ -1488,7 +1556,9 @@ module Google
1488
1556
  extend ::Google::Protobuf::MessageExts::ClassMethods
1489
1557
  end
1490
1558
 
1491
- # Deprecated: Use [Vehicle.LoadLimit.Interval][] instead.
1559
+ # Deprecated: Use
1560
+ # {::Google::Cloud::Optimization::V1::Vehicle::LoadLimit::Interval Vehicle.LoadLimit.Interval}
1561
+ # instead.
1492
1562
  # @!attribute [rw] type
1493
1563
  # @return [::String]
1494
1564
  # @!attribute [rw] min_value
@@ -1519,8 +1589,8 @@ module Google
1519
1589
  # nonnegative.
1520
1590
  # @!attribute [rw] cost_per_kilometer_above_soft_max
1521
1591
  # @return [::Float]
1522
- # Cost per kilometer incurred if `soft_max_meters` limit is violated. The
1523
- # additional cost is 0 if the distance is under the limit, otherwise the
1592
+ # Cost per kilometer incurred if distance is above `soft_max_meters` limit.
1593
+ # The additional cost is 0 if the distance is under the limit, otherwise the
1524
1594
  # formula used to compute the cost is the following:
1525
1595
  # ```
1526
1596
  # (distance_meters - soft_max_meters) / 1000.0 *
@@ -1553,8 +1623,9 @@ module Google
1553
1623
  # @return [::String]
1554
1624
  # A destination visit or vehicle end matches iff its
1555
1625
  # {::Google::Cloud::Optimization::V1::Shipment::VisitRequest#tags VisitRequest.tags}
1556
- # or {::Google::Cloud::Optimization::V1::Vehicle#end_tags Vehicle.end_tags} either contains `dst_tag` or does not contain
1557
- # `excluded_dst_tag` (depending on which of these two fields is non-empty).
1626
+ # or {::Google::Cloud::Optimization::V1::Vehicle#end_tags Vehicle.end_tags} either
1627
+ # contains `dst_tag` or does not contain `excluded_dst_tag` (depending on
1628
+ # which of these two fields is non-empty).
1558
1629
  # @!attribute [rw] excluded_dst_tag
1559
1630
  # @return [::String]
1560
1631
  # See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
@@ -1568,7 +1639,8 @@ module Google
1568
1639
  # @return [::Float]
1569
1640
  # Specifies a cost per kilometer applied to the distance traveled while
1570
1641
  # performing this transition. It adds up to any
1571
- # {::Google::Cloud::Optimization::V1::Vehicle#cost_per_kilometer Vehicle.cost_per_kilometer} specified on vehicles.
1642
+ # {::Google::Cloud::Optimization::V1::Vehicle#cost_per_kilometer Vehicle.cost_per_kilometer}
1643
+ # specified on vehicles.
1572
1644
  # @!attribute [rw] distance_limit
1573
1645
  # @return [::Google::Cloud::Optimization::V1::DistanceLimit]
1574
1646
  # Specifies a limit on the distance traveled while performing this
@@ -1702,8 +1774,8 @@ module Google
1702
1774
  # See description of `FrequencyConstraint`.
1703
1775
  # @!attribute [rw] max_inter_break_duration
1704
1776
  # @return [::Google::Protobuf::Duration]
1705
- # Required. Maximum allowed span of any interval of time in the route that does not
1706
- # include at least partially a break of `duration >=
1777
+ # Required. Maximum allowed span of any interval of time in the route that
1778
+ # does not include at least partially a break of `duration >=
1707
1779
  # min_break_duration`. Must be positive.
1708
1780
  class FrequencyConstraint
1709
1781
  include ::Google::Protobuf::MessageExts
@@ -1827,8 +1899,10 @@ module Google
1827
1899
  # between visits, before the first visit, or after the last visit, while
1828
1900
  # still satisfying the visit and vehicle time windows. For example,
1829
1901
  #
1830
- # ```start_time(previous_visit) + duration(previous_visit) +
1831
- # travel_duration(previous_visit, next_visit) > start_time(next_visit)```
1902
+ # ```
1903
+ # start_time(previous_visit) + duration(previous_visit) +
1904
+ # travel_duration(previous_visit, next_visit) > start_time(next_visit)
1905
+ # ```
1832
1906
  #
1833
1907
  # Arrival at next_visit will likely happen later than its current
1834
1908
  # time window due the increased estimate of travel time
@@ -1849,8 +1923,12 @@ module Google
1849
1923
  # @!attribute [rw] metrics
1850
1924
  # @return [::Google::Cloud::Optimization::V1::AggregatedMetrics]
1851
1925
  # Duration, distance and load metrics for this route. The fields of
1852
- # {::Google::Cloud::Optimization::V1::AggregatedMetrics AggregatedMetrics} are summed over all {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions} or
1853
- # {::Google::Cloud::Optimization::V1::ShipmentRoute#visits ShipmentRoute.visits}, depending on the context.
1926
+ # {::Google::Cloud::Optimization::V1::AggregatedMetrics AggregatedMetrics} are
1927
+ # summed over all
1928
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}
1929
+ # or
1930
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#visits ShipmentRoute.visits},
1931
+ # depending on the context.
1854
1932
  # @!attribute [rw] route_costs
1855
1933
  # @return [::Google::Protobuf::Map{::String => ::Float}]
1856
1934
  # Cost of the route, broken down by cost-related request fields.
@@ -1866,36 +1944,42 @@ module Google
1866
1944
  # Total cost of the route. The sum of all costs in the cost map.
1867
1945
  # @!attribute [rw] end_loads
1868
1946
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
1869
- # Deprecated: Use [ShipmentRoute.Transition.loads][] instead.
1870
- # Vehicle loads upon arrival at its end location, for each
1871
- # type specified in {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities},
1947
+ # Deprecated: Use
1948
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}
1949
+ # instead. Vehicle loads upon arrival at its end location, for each type
1950
+ # specified in
1951
+ # {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities},
1872
1952
  # `start_load_intervals`, `end_load_intervals` or demands. Exception: we omit
1873
1953
  # loads for quantity types unconstrained by intervals and that don't have any
1874
1954
  # non-zero demand on the route.
1875
1955
  # @!attribute [rw] travel_steps
1876
1956
  # @return [::Array<::Google::Cloud::Optimization::V1::ShipmentRoute::TravelStep>]
1877
- # Deprecated: Use [ShipmentRoute.Transition][] instead.
1878
- # Ordered list of travel steps for the route.
1957
+ # Deprecated: Use
1958
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#transitions ShipmentRoute.transitions}
1959
+ # instead. Ordered list of travel steps for the route.
1879
1960
  # @!attribute [rw] vehicle_detour
1880
1961
  # @return [::Google::Protobuf::Duration]
1881
1962
  # Deprecated: No longer used.
1882
1963
  # This field will only be populated at the
1883
- # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit} level.
1884
- # Extra detour time due to the shipments visited on the route.
1964
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit ShipmentRoute.Visit}
1965
+ # level.
1966
+ #
1967
+ # This field is the extra detour time due to the shipments visited on the
1968
+ # route.
1885
1969
  #
1886
1970
  # It is equal to `vehicle_end_time` - `vehicle_start_time` - travel duration
1887
1971
  # from the vehicle's start_location to its `end_location`.
1888
1972
  # @!attribute [rw] delay_before_vehicle_end
1889
1973
  # @return [::Google::Cloud::Optimization::V1::ShipmentRoute::Delay]
1890
- # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead.
1891
- # Delay occurring before the vehicle end. See
1974
+ # Deprecated: Delay occurring before the vehicle end. See
1892
1975
  # {::Google::Cloud::Optimization::V1::TransitionAttributes#delay TransitionAttributes.delay}.
1893
1976
  class ShipmentRoute
1894
1977
  include ::Google::Protobuf::MessageExts
1895
1978
  extend ::Google::Protobuf::MessageExts::ClassMethods
1896
1979
 
1897
- # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead.
1898
- # Time interval spent on the route resulting from a
1980
+ # Deprecated: Use
1981
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#delay_duration ShipmentRoute.Transition.delay_duration}
1982
+ # instead. Time interval spent on the route resulting from a
1899
1983
  # {::Google::Cloud::Optimization::V1::TransitionAttributes#delay TransitionAttributes.delay}.
1900
1984
  # @!attribute [rw] start_time
1901
1985
  # @return [::Google::Protobuf::Timestamp]
@@ -1912,7 +1996,8 @@ module Google
1912
1996
  # delivery of a `Shipment`.
1913
1997
  # @!attribute [rw] shipment_index
1914
1998
  # @return [::Integer]
1915
- # Index of the `shipments` field in the source {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}.
1999
+ # Index of the `shipments` field in the source
2000
+ # {::Google::Cloud::Optimization::V1::ShipmentModel ShipmentModel}.
1916
2001
  # @!attribute [rw] is_pickup
1917
2002
  # @return [::Boolean]
1918
2003
  # If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it
@@ -1961,19 +2046,25 @@ module Google
1961
2046
  # if specified in the `VisitRequest`.
1962
2047
  # @!attribute [rw] arrival_loads
1963
2048
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
1964
- # Deprecated: Use [ShipmentRoute.Transition.loads][] instead.
1965
- # Vehicle loads upon arrival at the visit location, for each
1966
- # type specified in {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities}, `start_load_intervals`,
1967
- # `end_load_intervals` or `demands`.
2049
+ # Deprecated: Use
2050
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}
2051
+ # instead. Vehicle loads upon arrival at the visit location, for each type
2052
+ # specified in
2053
+ # {::Google::Cloud::Optimization::V1::Vehicle#capacities Vehicle.capacities},
2054
+ # `start_load_intervals`, `end_load_intervals` or `demands`.
1968
2055
  #
1969
2056
  # Exception: we omit loads for quantity types unconstrained by intervals
1970
2057
  # and that don't have any non-zero demand on the route.
1971
2058
  # @!attribute [rw] delay_before_start
1972
2059
  # @return [::Google::Cloud::Optimization::V1::ShipmentRoute::Delay]
1973
- # Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead.
2060
+ # Deprecated: Use
2061
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#delay_duration ShipmentRoute.Transition.delay_duration}
2062
+ # instead. Delay occurring before the visit starts.
1974
2063
  # @!attribute [rw] demands
1975
2064
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
1976
- # Deprecated: Use [Visit.load_demands][] instead.
2065
+ # Deprecated: Use
2066
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit#load_demands Visit.load_demands}
2067
+ # instead.
1977
2068
  class Visit
1978
2069
  include ::Google::Protobuf::MessageExts
1979
2070
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2046,8 +2137,11 @@ module Google
2046
2137
  # @!attribute [rw] vehicle_loads
2047
2138
  # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Optimization::V1::ShipmentRoute::VehicleLoad}]
2048
2139
  # Vehicle loads during this transition, for each type that either appears
2049
- # in this vehicle's {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits}, or that have non-zero
2050
- # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands} on some shipment performed on this route.
2140
+ # in this vehicle's
2141
+ # {::Google::Cloud::Optimization::V1::Vehicle#load_limits Vehicle.load_limits},
2142
+ # or that have non-zero
2143
+ # {::Google::Cloud::Optimization::V1::Shipment#load_demands Shipment.load_demands}
2144
+ # on some shipment performed on this route.
2051
2145
  #
2052
2146
  # The loads during the first transition are the starting loads of the
2053
2147
  # vehicle route. Then, after each visit, the visit's `load_demands` are
@@ -2055,7 +2149,9 @@ module Google
2055
2149
  # on whether the visit was a pickup or a delivery.
2056
2150
  # @!attribute [rw] loads
2057
2151
  # @return [::Array<::Google::Cloud::Optimization::V1::CapacityQuantity>]
2058
- # Deprecated: Use [Transition.vehicle_loads][] instead.
2152
+ # Deprecated: Use
2153
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}
2154
+ # instead.
2059
2155
  class Transition
2060
2156
  include ::Google::Protobuf::MessageExts
2061
2157
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2071,11 +2167,13 @@ module Google
2071
2167
  end
2072
2168
 
2073
2169
  # Reports the actual load of the vehicle at some point along the route,
2074
- # for a given type (see {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}).
2170
+ # for a given type (see
2171
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}).
2075
2172
  # @!attribute [rw] amount
2076
2173
  # @return [::Integer]
2077
2174
  # The amount of load on the vehicle, for the given type. The unit of load
2078
- # is usually indicated by the type. See {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}.
2175
+ # is usually indicated by the type. See
2176
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition#vehicle_loads Transition.vehicle_loads}.
2079
2177
  class VehicleLoad
2080
2178
  include ::Google::Protobuf::MessageExts
2081
2179
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2105,10 +2203,11 @@ module Google
2105
2203
  extend ::Google::Protobuf::MessageExts::ClassMethods
2106
2204
  end
2107
2205
 
2108
- # Deprecated: Use [ShipmentRoute.transitions][] instead.
2109
- # Travel between each visit, along the route: from the
2110
- # vehicle's `start_location` to the first visit's `arrival_location`, then
2111
- # from the first visit's `departure_location` to the second visit's
2206
+ # Deprecated: Use
2207
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition ShipmentRoute.Transition}
2208
+ # instead. Travel between each visit along the route: from the vehicle's
2209
+ # `start_location` to the first visit's `arrival_location`, then from the
2210
+ # first visit's `departure_location` to the second visit's
2112
2211
  # `arrival_location`, and so on until the vehicle's `end_location`. This
2113
2212
  # accounts only for the actual travel between visits, not counting the
2114
2213
  # waiting time, the time spent performing a visit, nor the distance covered
@@ -2163,8 +2262,9 @@ module Google
2163
2262
  # `ShipmentModel`.
2164
2263
  # @!attribute [rw] label
2165
2264
  # @return [::String]
2166
- # Copy of the corresponding {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}, if specified in the
2167
- # `Shipment`.
2265
+ # Copy of the corresponding
2266
+ # {::Google::Cloud::Optimization::V1::Shipment#label Shipment.label}, if specified
2267
+ # in the `Shipment`.
2168
2268
  # @!attribute [rw] reasons
2169
2269
  # @return [::Array<::Google::Cloud::Optimization::V1::SkippedShipment::Reason>]
2170
2270
  # A list of reasons that explain why the shipment was skipped. See comment
@@ -2262,7 +2362,9 @@ module Google
2262
2362
  end
2263
2363
  end
2264
2364
 
2265
- # Aggregated metrics for {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute} (resp. for {::Google::Cloud::Optimization::V1::OptimizeToursResponse OptimizeToursResponse}
2365
+ # Aggregated metrics for
2366
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute} (resp. for
2367
+ # {::Google::Cloud::Optimization::V1::OptimizeToursResponse OptimizeToursResponse}
2266
2368
  # over all {::Google::Cloud::Optimization::V1::ShipmentRoute::Transition Transition}
2267
2369
  # and/or {::Google::Cloud::Optimization::V1::ShipmentRoute::Visit Visit} (resp. over
2268
2370
  # all {::Google::Cloud::Optimization::V1::ShipmentRoute ShipmentRoute}) elements.
@@ -2288,7 +2390,9 @@ module Google
2288
2390
  # @!attribute [rw] total_duration
2289
2391
  # @return [::Google::Protobuf::Duration]
2290
2392
  # The total duration should be equal to the sum of all durations above.
2291
- # For routes, it also corresponds to {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time} -
2393
+ # For routes, it also corresponds to
2394
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_end_time ShipmentRoute.vehicle_end_time}
2395
+ # -
2292
2396
  # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_start_time ShipmentRoute.vehicle_start_time}.
2293
2397
  # @!attribute [rw] travel_distance_meters
2294
2398
  # @return [::Float]
@@ -2303,10 +2407,18 @@ module Google
2303
2407
  # {::Google::Cloud::Optimization::V1::AggregatedMetrics#max_loads ShipmentRoute.metrics.max_loads}.
2304
2408
  # @!attribute [rw] costs
2305
2409
  # @return [::Google::Protobuf::Map{::String => ::Float}]
2306
- # Deprecated: Use [ShipmentRoute.route_costs][] and [OptimizeToursResponse.Metrics.costs][] instead.
2410
+ # Deprecated: Use
2411
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#route_costs ShipmentRoute.route_costs}
2412
+ # and
2413
+ # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#costs OptimizeToursResponse.Metrics.costs}
2414
+ # instead.
2307
2415
  # @!attribute [rw] total_cost
2308
2416
  # @return [::Float]
2309
- # Deprecated: Use [ShipmentRoute.route_total_cost][] and [OptimizeToursResponse.Metrics.total_cost][] instead.
2417
+ # Deprecated: Use
2418
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#route_total_cost ShipmentRoute.route_total_cost}
2419
+ # and
2420
+ # {::Google::Cloud::Optimization::V1::OptimizeToursResponse::Metrics#total_cost OptimizeToursResponse.Metrics.total_cost}
2421
+ # instead.
2310
2422
  class AggregatedMetrics
2311
2423
  include ::Google::Protobuf::MessageExts
2312
2424
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2368,8 +2480,9 @@ module Google
2368
2480
  # `vehicle_indices`. A vehicle index can only be listed once, even within
2369
2481
  # several `constraint_relaxations`.
2370
2482
  #
2371
- # A vehicle index is mapped the same as {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index}, if
2372
- # `interpret_injected_solutions_using_labels` is true (see `fields`
2483
+ # A vehicle index is mapped the same as
2484
+ # {::Google::Cloud::Optimization::V1::ShipmentRoute#vehicle_index ShipmentRoute.vehicle_index},
2485
+ # if `interpret_injected_solutions_using_labels` is true (see `fields`
2373
2486
  # comment).
2374
2487
  class ConstraintRelaxation
2375
2488
  include ::Google::Protobuf::MessageExts
@@ -2414,7 +2527,7 @@ module Google
2414
2527
  # @return [::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation::Level]
2415
2528
  # The constraint relaxation level that applies when the conditions
2416
2529
  # at or after `threshold_time` AND at least `threshold_visit_count` are
2417
- # satified.
2530
+ # satisfied.
2418
2531
  # @!attribute [rw] threshold_time
2419
2532
  # @return [::Google::Protobuf::Timestamp]
2420
2533
  # The time at or after which the relaxation `level` may be applied.
@@ -2432,7 +2545,7 @@ module Google
2432
2545
  extend ::Google::Protobuf::MessageExts::ClassMethods
2433
2546
 
2434
2547
  # Expresses the different constraint relaxation levels, which are
2435
- # applied for a visit and those that follow when it satifies the
2548
+ # applied for a visit and those that follow when it satisfies the
2436
2549
  # threshold conditions.
2437
2550
  #
2438
2551
  # The enumeration below is in order of increasing relaxation.
@@ -2440,7 +2553,7 @@ module Google
2440
2553
  # Implicit default relaxation level: no constraints are relaxed,
2441
2554
  # i.e., all visits are fully constrained.
2442
2555
  #
2443
- # This value must not be explicly used in `level`.
2556
+ # This value must not be explicitly used in `level`.
2444
2557
  LEVEL_UNSPECIFIED = 0
2445
2558
 
2446
2559
  # Visit start times and vehicle start/end times will be relaxed, but
@@ -2510,6 +2623,11 @@ module Google
2510
2623
  # * INJECTED_SOLUTION_MISSING_LABEL = 2000;
2511
2624
  # * INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
2512
2625
  # * INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
2626
+ # * INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003;
2627
+ # * INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004;
2628
+ # * INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005;
2629
+ # * INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006;
2630
+ # * INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008;
2513
2631
  # * SHIPMENT_MODEL_ERROR = 22;
2514
2632
  # * SHIPMENT_MODEL_TOO_LARGE = 2200;
2515
2633
  # * SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
@@ -2517,6 +2635,8 @@ module Google
2517
2635
  # * SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
2518
2636
  # * SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204;
2519
2637
  # * SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
2638
+ # * SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
2639
+ # * SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
2520
2640
  # * INDEX_ERROR = 24;
2521
2641
  # * TAG_ERROR = 26;
2522
2642
  # * TIME_WINDOW_ERROR = 28;
@@ -2598,9 +2718,12 @@ module Google
2598
2718
  # * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION
2599
2719
  # = 3815;
2600
2720
  # * SHIPMENT_ERROR = 40;
2721
+ # * SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014;
2601
2722
  # * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
2602
2723
  # * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION
2603
2724
  # = 4001;
2725
+ # * SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
2726
+ # * SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016;
2604
2727
  # * SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
2605
2728
  # * SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003;
2606
2729
  # * SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004;
@@ -2613,7 +2736,6 @@ module Google
2613
2736
  # * SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011;
2614
2737
  # * SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012;
2615
2738
  # * SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013;
2616
- # * SHIPMENT_DETOUR_WITHOUT_PICKUP_AND_DELIVERY = 4014;
2617
2739
  # * VEHICLE_ERROR = 42;
2618
2740
  # * VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200;
2619
2741
  # * VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201;
@@ -2637,6 +2759,9 @@ module Google
2637
2759
  # * VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219;
2638
2760
  # * VEHICLE_INVALID_FIXED_COST = 4220;
2639
2761
  # * VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221;
2762
+ # * VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS
2763
+ # = 4223;
2764
+ # * VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224;
2640
2765
  # * VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222;
2641
2766
  # * VISIT_REQUEST_ERROR = 44;
2642
2767
  # * VISIT_REQUEST_EMPTY_TAG = 4400;
@@ -2689,9 +2814,6 @@ module Google
2689
2814
  # * DURATION_SECONDS_MATRIX_ERROR = 56;
2690
2815
  # * DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600;
2691
2816
  # * DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601;
2692
- # * GRAPH_ARC_ERROR = 58;
2693
- # * GRAPH_ARC_DURATION_NEGATIVE_OR_NAN = 5800;
2694
- # * GRAPH_ARC_DURATION_EXCEEDS_GLOBAL_DURATION = 5801;
2695
2817
  # @!attribute [rw] display_name
2696
2818
  # @return [::String]
2697
2819
  # The error display name.