google-cloud-optimization-v1 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.