1 // Copyright 2022 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by aliasgen. DO NOT EDIT. 16 17 // Package optimization aliases all exported identifiers in package 18 // "cloud.google.com/go/optimization/apiv1/optimizationpb". 19 // 20 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb. 21 // Please read https://github.com/googleapis/google-cloud-go/blob/main/migration.md 22 // for more details. 23 package optimization 24 25 import ( 26 src "cloud.google.com/go/optimization/apiv1/optimizationpb" 27 grpc "google.golang.org/grpc" 28 ) 29 30 // Deprecated: Please use consts in: cloud.google.com/go/optimization/apiv1/optimizationpb 31 const ( 32 AsyncModelMetadata_CANCELLED = src.AsyncModelMetadata_CANCELLED 33 AsyncModelMetadata_FAILED = src.AsyncModelMetadata_FAILED 34 AsyncModelMetadata_RUNNING = src.AsyncModelMetadata_RUNNING 35 AsyncModelMetadata_STATE_UNSPECIFIED = src.AsyncModelMetadata_STATE_UNSPECIFIED 36 AsyncModelMetadata_SUCCEEDED = src.AsyncModelMetadata_SUCCEEDED 37 DataFormat_DATA_FORMAT_UNSPECIFIED = src.DataFormat_DATA_FORMAT_UNSPECIFIED 38 DataFormat_JSON = src.DataFormat_JSON 39 DataFormat_STRING = src.DataFormat_STRING 40 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_LEVEL_UNSPECIFIED = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_LEVEL_UNSPECIFIED 41 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_ALL_AFTER_THRESHOLD = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_ALL_AFTER_THRESHOLD 42 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AFTER_THRESHOLD = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AFTER_THRESHOLD 43 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD 44 OptimizeToursRequest_CONSUME_ALL_AVAILABLE_TIME = src.OptimizeToursRequest_CONSUME_ALL_AVAILABLE_TIME 45 OptimizeToursRequest_DEFAULT_SOLVE = src.OptimizeToursRequest_DEFAULT_SOLVE 46 OptimizeToursRequest_DETECT_SOME_INFEASIBLE_SHIPMENTS = src.OptimizeToursRequest_DETECT_SOME_INFEASIBLE_SHIPMENTS 47 OptimizeToursRequest_RETURN_FAST = src.OptimizeToursRequest_RETURN_FAST 48 OptimizeToursRequest_SEARCH_MODE_UNSPECIFIED = src.OptimizeToursRequest_SEARCH_MODE_UNSPECIFIED 49 OptimizeToursRequest_VALIDATE_ONLY = src.OptimizeToursRequest_VALIDATE_ONLY 50 ShipmentTypeIncompatibility_INCOMPATIBILITY_MODE_UNSPECIFIED = src.ShipmentTypeIncompatibility_INCOMPATIBILITY_MODE_UNSPECIFIED 51 ShipmentTypeIncompatibility_NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY = src.ShipmentTypeIncompatibility_NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY 52 ShipmentTypeIncompatibility_NOT_PERFORMED_BY_SAME_VEHICLE = src.ShipmentTypeIncompatibility_NOT_PERFORMED_BY_SAME_VEHICLE 53 ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_DELIVERY_TIME = src.ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_DELIVERY_TIME 54 ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_PICKUP_TIME = src.ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_PICKUP_TIME 55 ShipmentTypeRequirement_PERFORMED_BY_SAME_VEHICLE = src.ShipmentTypeRequirement_PERFORMED_BY_SAME_VEHICLE 56 ShipmentTypeRequirement_REQUIREMENT_MODE_UNSPECIFIED = src.ShipmentTypeRequirement_REQUIREMENT_MODE_UNSPECIFIED 57 SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT = src.SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT 58 SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT = src.SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT 59 SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS = src.SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS 60 SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT = src.SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT 61 SkippedShipment_Reason_CODE_UNSPECIFIED = src.SkippedShipment_Reason_CODE_UNSPECIFIED 62 SkippedShipment_Reason_DEMAND_EXCEEDS_VEHICLE_CAPACITY = src.SkippedShipment_Reason_DEMAND_EXCEEDS_VEHICLE_CAPACITY 63 SkippedShipment_Reason_NO_VEHICLE = src.SkippedShipment_Reason_NO_VEHICLE 64 SkippedShipment_Reason_VEHICLE_NOT_ALLOWED = src.SkippedShipment_Reason_VEHICLE_NOT_ALLOWED 65 Vehicle_DRIVING = src.Vehicle_DRIVING 66 Vehicle_FIRST_IN_FIRST_OUT = src.Vehicle_FIRST_IN_FIRST_OUT 67 Vehicle_LAST_IN_FIRST_OUT = src.Vehicle_LAST_IN_FIRST_OUT 68 Vehicle_TRAVEL_MODE_UNSPECIFIED = src.Vehicle_TRAVEL_MODE_UNSPECIFIED 69 Vehicle_UNLOADING_POLICY_UNSPECIFIED = src.Vehicle_UNLOADING_POLICY_UNSPECIFIED 70 ) 71 72 // Deprecated: Please use vars in: cloud.google.com/go/optimization/apiv1/optimizationpb 73 var ( 74 AsyncModelMetadata_State_name = src.AsyncModelMetadata_State_name 75 AsyncModelMetadata_State_value = src.AsyncModelMetadata_State_value 76 DataFormat_name = src.DataFormat_name 77 DataFormat_value = src.DataFormat_value 78 File_google_cloud_optimization_v1_async_model_proto = src.File_google_cloud_optimization_v1_async_model_proto 79 File_google_cloud_optimization_v1_fleet_routing_proto = src.File_google_cloud_optimization_v1_fleet_routing_proto 80 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_name = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_name 81 InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_value = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_value 82 OptimizeToursRequest_SearchMode_name = src.OptimizeToursRequest_SearchMode_name 83 OptimizeToursRequest_SearchMode_value = src.OptimizeToursRequest_SearchMode_value 84 OptimizeToursRequest_SolvingMode_name = src.OptimizeToursRequest_SolvingMode_name 85 OptimizeToursRequest_SolvingMode_value = src.OptimizeToursRequest_SolvingMode_value 86 ShipmentTypeIncompatibility_IncompatibilityMode_name = src.ShipmentTypeIncompatibility_IncompatibilityMode_name 87 ShipmentTypeIncompatibility_IncompatibilityMode_value = src.ShipmentTypeIncompatibility_IncompatibilityMode_value 88 ShipmentTypeRequirement_RequirementMode_name = src.ShipmentTypeRequirement_RequirementMode_name 89 ShipmentTypeRequirement_RequirementMode_value = src.ShipmentTypeRequirement_RequirementMode_value 90 SkippedShipment_Reason_Code_name = src.SkippedShipment_Reason_Code_name 91 SkippedShipment_Reason_Code_value = src.SkippedShipment_Reason_Code_value 92 Vehicle_TravelMode_name = src.Vehicle_TravelMode_name 93 Vehicle_TravelMode_value = src.Vehicle_TravelMode_value 94 Vehicle_UnloadingPolicy_name = src.Vehicle_UnloadingPolicy_name 95 Vehicle_UnloadingPolicy_value = src.Vehicle_UnloadingPolicy_value 96 ) 97 98 // Aggregated metrics for 99 // [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute] (resp. for 100 // [OptimizeToursResponse][google.cloud.optimization.v1.OptimizeToursResponse] 101 // over all [Transition][google.cloud.optimization.v1.ShipmentRoute.Transition] 102 // and/or [Visit][google.cloud.optimization.v1.ShipmentRoute.Visit] (resp. over 103 // all [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute]) elements. 104 // 105 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 106 type AggregatedMetrics = src.AggregatedMetrics 107 108 // The long running operation metadata for async model related methods. 109 // 110 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 111 type AsyncModelMetadata = src.AsyncModelMetadata 112 113 // Possible states of the operation. 114 // 115 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 116 type AsyncModelMetadata_State = src.AsyncModelMetadata_State 117 118 // Request to batch optimize tours as an asynchronous operation. Each input 119 // file should contain one `OptimizeToursRequest`, and each output file will 120 // contain one `OptimizeToursResponse`. The request contains information to 121 // read/write and parse the files. All the input and output files should be 122 // under the same project. 123 // 124 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 125 type BatchOptimizeToursRequest = src.BatchOptimizeToursRequest 126 127 // Information for solving one optimization model asynchronously. 128 // 129 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 130 type BatchOptimizeToursRequest_AsyncModelConfig = src.BatchOptimizeToursRequest_AsyncModelConfig 131 132 // Response to a `BatchOptimizeToursRequest`. This is returned in the LRO 133 // Operation after the operation is complete. 134 // 135 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 136 type BatchOptimizeToursResponse = src.BatchOptimizeToursResponse 137 138 // Rules to generate time breaks for a vehicle (e.g. lunch breaks). A break is 139 // a contiguous period of time during which the vehicle remains idle at its 140 // current position and cannot perform any visit. A break may occur: - during 141 // the travel between two visits (which includes the time right before or right 142 // after a visit, but not in the middle of a visit), in which case it extends 143 // the corresponding transit time between the visits, - or before the vehicle 144 // start (the vehicle may not start in the middle of a break), in which case it 145 // does not affect the vehicle start time. - or after the vehicle end (ditto, 146 // with the vehicle end time). 147 // 148 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 149 type BreakRule = src.BreakRule 150 151 // The sequence of breaks (i.e. their number and order) that apply to each 152 // vehicle must be known beforehand. The repeated `BreakRequest`s define that 153 // sequence, in the order in which they must occur. Their time windows 154 // (`earliest_start_time` / `latest_start_time`) may overlap, but they must be 155 // compatible with the order (this is checked). 156 // 157 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 158 type BreakRule_BreakRequest = src.BreakRule_BreakRequest 159 160 // One may further constrain the frequency and duration of the breaks 161 // specified above, by enforcing a minimum break frequency, such as "There must 162 // be a break of at least 1 hour every 12 hours". Assuming that this can be 163 // interpreted as "Within any sliding time window of 12h, there must be at 164 // least one break of at least one hour", that example would translate to the 165 // following `FrequencyConstraint`: ``` { min_break_duration { seconds: 3600 } 166 // # 1 hour. max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 167 // 11). } ``` The timing and duration of the breaks in the solution will 168 // respect all such constraints, in addition to the time windows and minimum 169 // durations already specified in the `BreakRequest`. A `FrequencyConstraint` 170 // may in practice apply to non-consecutive breaks. For example, the following 171 // schedule honors the "1h every 12h" example: ``` 04:00 vehicle start .. 172 // performing travel and visits .. 09:00 1 hour break 10:00 end of the break .. 173 // performing travel and visits .. 12:00 20-min lunch break 12:20 end of the 174 // break .. performing travel and visits .. 21:00 1 hour break 22:00 end of the 175 // break .. performing travel and visits .. 23:59 vehicle end ``` 176 // 177 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 178 type BreakRule_FrequencyConstraint = src.BreakRule_FrequencyConstraint 179 180 // Deprecated: Use [Shipment.Load][], [Vehicle.LoadLimit][] and 181 // [ShipmentRoute.VehicleLoad][] instead. Deprecated: Do not use. 182 // 183 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 184 type CapacityQuantity = src.CapacityQuantity 185 186 // Deprecated: Use [Vehicle.LoadLimit.Interval][] instead. Deprecated: Do not 187 // use. 188 // 189 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 190 type CapacityQuantityInterval = src.CapacityQuantityInterval 191 192 // Data formats for input and output files. 193 // 194 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 195 type DataFormat = src.DataFormat 196 197 // A limit defining a maximum distance which can be traveled. It can be either 198 // hard or soft. If a soft limit is defined, both `soft_max_meters` and 199 // `cost_per_kilometer_above_soft_max` must be defined and be nonnegative. 200 // 201 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 202 type DistanceLimit = src.DistanceLimit 203 204 // FleetRoutingClient is the client API for FleetRouting service. For 205 // semantics around ctx use and closing/ending streaming RPCs, please refer to 206 // https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 207 // 208 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 209 type FleetRoutingClient = src.FleetRoutingClient 210 211 // FleetRoutingServer is the server API for FleetRouting service. 212 // 213 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 214 type FleetRoutingServer = src.FleetRoutingServer 215 216 // The Google Cloud Storage location where the output file will be written to. 217 // 218 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 219 type GcsDestination = src.GcsDestination 220 221 // The Google Cloud Storage location where the input file will be read from. 222 // 223 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 224 type GcsSource = src.GcsSource 225 226 // Solution injected in the request including information about which visits 227 // must be constrained and how they must be constrained. 228 // 229 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 230 type InjectedSolutionConstraint = src.InjectedSolutionConstraint 231 232 // For a group of vehicles, specifies at what threshold(s) constraints on 233 // visits will be relaxed and to which level. Shipments listed in the 234 // `skipped_shipment` field are constrained to be skipped; i.e., they cannot be 235 // performed. 236 // 237 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 238 type InjectedSolutionConstraint_ConstraintRelaxation = src.InjectedSolutionConstraint_ConstraintRelaxation 239 240 // If `relaxations` is empty, the start time and sequence of all visits on 241 // `routes` are fully constrained and no new visits may be inserted or added to 242 // those routes. Also, a vehicle's start and end time in `routes` is fully 243 // constrained, unless the vehicle is empty (i.e., has no visits and has 244 // `used_if_route_is_empty` set to false in the model). `relaxations(i).level` 245 // specifies the constraint relaxation level applied to a visit #j that 246 // satisfies: - `route.visits(j).start_time >= relaxations(i).threshold_time` 247 // AND - `j + 1 >= relaxations(i).threshold_visit_count` Similarly, the vehicle 248 // start is relaxed to `relaxations(i).level` if it satisfies: - 249 // `vehicle_start_time >= relaxations(i).threshold_time` AND - 250 // `relaxations(i).threshold_visit_count == 0` and the vehicle end is relaxed 251 // to `relaxations(i).level` if it satisfies: - `vehicle_end_time >= 252 // relaxations(i).threshold_time` AND - `route.visits_size() + 1 >= 253 // relaxations(i).threshold_visit_count` To apply a relaxation level if a visit 254 // meets the `threshold_visit_count` OR the `threshold_time` add two 255 // `relaxations` with the same `level`: one with only `threshold_visit_count` 256 // set and the other with only `threshold_time` set. If a visit satisfies the 257 // conditions of multiple `relaxations`, the most relaxed level applies. As a 258 // result, from the vehicle start through the route visits in order to the 259 // vehicle end, the relaxation level becomes more relaxed: i.e., the relaxation 260 // level is non-decreasing as the route progresses. The timing and sequence of 261 // route visits that do not satisfy the threshold conditions of any 262 // `relaxations` are fully constrained and no visits may be inserted into these 263 // sequences. Also, if a vehicle start or end does not satisfy the conditions 264 // of any relaxation the time is fixed, unless the vehicle is empty. 265 // 266 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 267 type InjectedSolutionConstraint_ConstraintRelaxation_Relaxation = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation 268 269 // Expresses the different constraint relaxation levels, which are applied for 270 // a visit and those that follow when it satifies the threshold conditions. The 271 // enumeration below is in order of increasing relaxation. 272 // 273 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 274 type InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level = src.InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level 275 276 // The desired input location information. 277 // 278 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 279 type InputConfig = src.InputConfig 280 type InputConfig_GcsSource = src.InputConfig_GcsSource 281 282 // Encapsulates a location (a geographic point, and an optional heading). 283 // 284 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 285 type Location = src.Location 286 287 // Request to be given to a tour optimization solver which defines the 288 // shipment model to solve as well as optimization parameters. 289 // 290 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 291 type OptimizeToursRequest = src.OptimizeToursRequest 292 293 // Mode defining the behavior of the search, trading off latency versus 294 // solution quality. In all modes, the global request deadline is enforced. 295 // 296 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 297 type OptimizeToursRequest_SearchMode = src.OptimizeToursRequest_SearchMode 298 299 // Defines how the solver should handle the request. In all modes but 300 // `VALIDATE_ONLY`, if the request is invalid, you will receive an 301 // `INVALID_REQUEST` error. See 302 // [max_validation_errors][google.cloud.optimization.v1.OptimizeToursRequest.max_validation_errors] 303 // to cap the number of errors returned. 304 // 305 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 306 type OptimizeToursRequest_SolvingMode = src.OptimizeToursRequest_SolvingMode 307 308 // Response after solving a tour optimization problem containing the routes 309 // followed by each vehicle, the shipments which have been skipped and the 310 // overall cost of the solution. 311 // 312 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 313 type OptimizeToursResponse = src.OptimizeToursResponse 314 315 // Overall metrics, aggregated over all routes. 316 // 317 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 318 type OptimizeToursResponse_Metrics = src.OptimizeToursResponse_Metrics 319 320 // Describes an error encountered when validating an `OptimizeToursRequest`. 321 // 322 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 323 type OptimizeToursValidationError = src.OptimizeToursValidationError 324 325 // Specifies a context for the validation error. A `FieldReference` always 326 // refers to a given field in this file and follows the same hierarchical 327 // structure. For example, we may specify element #2 of `start_time_windows` of 328 // vehicle #5 using: ``` name: "vehicles" index: 5 sub_field { name: 329 // "end_time_windows" index: 2 } ``` We however omit top-level entities such as 330 // `OptimizeToursRequest` or `ShipmentModel` to avoid crowding the message. 331 // 332 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 333 type OptimizeToursValidationError_FieldReference = src.OptimizeToursValidationError_FieldReference 334 type OptimizeToursValidationError_FieldReference_Index = src.OptimizeToursValidationError_FieldReference_Index 335 type OptimizeToursValidationError_FieldReference_Key = src.OptimizeToursValidationError_FieldReference_Key 336 337 // The desired output location. 338 // 339 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 340 type OutputConfig = src.OutputConfig 341 type OutputConfig_GcsDestination = src.OutputConfig_GcsDestination 342 343 // The shipment of a single item, from one of its pickups to one of its 344 // deliveries. For the shipment to be considered as performed, a unique vehicle 345 // must visit one of its pickup locations (and decrease its spare capacities 346 // accordingly), then visit one of its delivery locations later on (and 347 // therefore re-increase its spare capacities accordingly). 348 // 349 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 350 type Shipment = src.Shipment 351 352 // A shipment model contains a set of shipments which must be performed by a 353 // set of vehicles, while minimizing the overall cost, which is the sum of: - 354 // the cost of routing the vehicles (sum of cost per total time, cost per 355 // travel time, and fixed cost over all vehicles). - the unperformed shipment 356 // penalties. - the cost of the global duration of the shipments 357 // 358 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 359 type ShipmentModel = src.ShipmentModel 360 361 // Deprecated: Use top level [BreakRule][] instead. Rules to generate time 362 // breaks for a vehicle (e.g. lunch breaks). A break is a contiguous period of 363 // time during which the vehicle remains idle at its current position and 364 // cannot perform any visit. A break may occur: - during the travel between two 365 // visits (which includes the time right before or right after a visit, but not 366 // in the middle of a visit), in which case it extends the corresponding 367 // transit time between the visits, - or before the vehicle start (the vehicle 368 // may not start in the middle of a break), in which case it does not affect 369 // the vehicle start time. - or after the vehicle end (ditto, with the vehicle 370 // end time). Deprecated: Do not use. 371 // 372 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 373 type ShipmentModel_BreakRule = src.ShipmentModel_BreakRule 374 375 // The sequence of breaks (i.e. their number and order) that apply to each 376 // vehicle must be known beforehand. The repeated `BreakRequest`s define that 377 // sequence, in the order in which they must occur. Their time windows 378 // (`earliest_start_time` / `latest_start_time`) may overlap, but they must be 379 // compatible with the order (this is checked). 380 // 381 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 382 type ShipmentModel_BreakRule_BreakRequest = src.ShipmentModel_BreakRule_BreakRequest 383 384 // One may further constrain the frequency and duration of the breaks 385 // specified above, by enforcing a minimum break frequency, such as "There must 386 // be a break of at least 1 hour every 12 hours". Assuming that this can be 387 // interpreted as "Within any sliding time window of 12h, there must be at 388 // least one break of at least one hour", that example would translate to the 389 // following `FrequencyConstraint`: ``` { min_break_duration { seconds: 3600 } 390 // # 1 hour. max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 391 // 11). } ``` The timing and duration of the breaks in the solution will 392 // respect all such constraints, in addition to the time windows and minimum 393 // durations already specified in the `BreakRequest`. A `FrequencyConstraint` 394 // may in practice apply to non-consecutive breaks. For example, the following 395 // schedule honors the "1h every 12h" example: ``` 04:00 vehicle start .. 396 // performing travel and visits .. 09:00 1 hour break 10:00 end of the break .. 397 // performing travel and visits .. 12:00 20-min lunch break 12:20 end of the 398 // break .. performing travel and visits .. 21:00 1 hour break 22:00 end of the 399 // break .. performing travel and visits .. 23:59 vehicle end ``` 400 // 401 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 402 type ShipmentModel_BreakRule_FrequencyConstraint = src.ShipmentModel_BreakRule_FrequencyConstraint 403 404 // Specifies a duration and distance matrix from visit and vehicle start 405 // locations to visit and vehicle end locations. 406 // 407 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 408 type ShipmentModel_DurationDistanceMatrix = src.ShipmentModel_DurationDistanceMatrix 409 410 // Specifies a row of the duration and distance matrix. 411 // 412 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 413 type ShipmentModel_DurationDistanceMatrix_Row = src.ShipmentModel_DurationDistanceMatrix_Row 414 415 // A precedence rule between two events (each event is the pickup or the 416 // delivery of a shipment): the "second" event has to start at least 417 // `offset_duration` after "first" has started. Several precedences can refer 418 // to the same (or related) events, e.g., "pickup of B happens after delivery 419 // of A" and "pickup of C happens after pickup of B". Furthermore, precedences 420 // only apply when both shipments are performed and are otherwise ignored. 421 // 422 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 423 type ShipmentModel_PrecedenceRule = src.ShipmentModel_PrecedenceRule 424 425 // A vehicle's route can be decomposed, along the time axis, like this (we 426 // assume there are n visits): ``` | | | | | T[2], | | | | Transition | Visit 427 // #0 | | | V[2], | | | | #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] | | aka 428 // T[0] | V[0] | | | V[n-2],| | | | | | | | T[n-1] | | | ^ ^ ^ ^ ^ ^ ^ ^ 429 // vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle start (arrival) 430 // (departure) start end start end end ``` Note that we make a difference 431 // between: - "punctual events", such as the vehicle start and end and each 432 // visit's start and end (aka arrival and departure). They happen at a given 433 // second. - "time intervals", such as the visits themselves, and the 434 // transition between visits. Though time intervals can sometimes have zero 435 // duration, i.e. start and end at the same second, they often have a positive 436 // duration. Invariants: - If there are n visits, there are n+1 transitions. - 437 // A visit is always surrounded by a transition before it (same index) and a 438 // transition after it (index + 1). - The vehicle start is always followed by 439 // transition #0. - The vehicle end is always preceded by transition #n. 440 // Zooming in, here is what happens during a `Transition` and a `Visit`: ``` 441 // ---+-------------------------------------+-----------------------------+--> 442 // | TRANSITION[i] | VISIT[i] | | | | | * TRAVEL: the vehicle moves from | 443 // PERFORM the visit: | | VISIT[i-1].departure_location to | | | 444 // VISIT[i].arrival_location, which | * Spend some time: | | takes a given 445 // travel duration | the "visit duration". | | and distance | | | | * Load or 446 // unload | | * BREAKS: the driver may have | some quantities from the | | 447 // breaks (e.g. lunch break). | vehicle: the "demand". | | | | | * WAIT: the 448 // driver/vehicle does | | | nothing. This can happen for | | | many reasons, 449 // for example when | | | the vehicle reaches the next | | | event's 450 // destination before the | | | start of its time window | | | | | | * DELAY: 451 // *right before* the next | | | arrival. E.g. the vehicle and/or | | | driver 452 // spends time unloading. | | | | | 453 // ---+-------------------------------------+-----------------------------+--> 454 // ^ ^ ^ V[i-1].end V[i].start V[i].end ``` Lastly, here is how the TRAVEL, 455 // BREAKS, DELAY and WAIT can be arranged during a transition. - They don't 456 // overlap. - The DELAY is unique and *must* be a contiguous period of time 457 // right before the next visit (or vehicle end). Thus, it suffice to know the 458 // delay duration to know its start and end time. - The BREAKS are contiguous, 459 // non-overlapping periods of time. The response specifies the start time and 460 // duration of each break. - TRAVEL and WAIT are "preemptable": they can be 461 // interrupted several times during this transition. Clients can assume that 462 // travel happens "as soon as possible" and that "wait" fills the remaining 463 // time. A (complex) example: ``` TRANSITION[i] 464 // --++-----+-----------------------------------------------------------++--> 465 // || | | | | | | || || T | B | T | | B | | D || || r | r | r | W | r | W | e 466 // || || a | e | a | a | e | a | l || || v | a | v | i | a | i | a || || e | k 467 // | e | t | k | t | y || || l | | l | | | | || || | | | | | | || 468 // --++-----------------------------------------------------------------++--> 469 // ``` 470 // 471 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 472 type ShipmentRoute = src.ShipmentRoute 473 474 // Data representing the execution of a break. 475 // 476 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 477 type ShipmentRoute_Break = src.ShipmentRoute_Break 478 479 // Deprecated: Use [ShipmentRoute.Transition.delay_duration][] instead. Time 480 // interval spent on the route resulting from a 481 // [TransitionAttributes.delay][google.cloud.optimization.v1.TransitionAttributes.delay]. 482 // Deprecated: Do not use. 483 // 484 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 485 type ShipmentRoute_Delay = src.ShipmentRoute_Delay 486 487 // The encoded representation of a polyline. More information on polyline 488 // encoding can be found here: 489 // https://developers.google.com/maps/documentation/utilities/polylinealgorithm 490 // https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding. 491 // 492 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 493 type ShipmentRoute_EncodedPolyline = src.ShipmentRoute_EncodedPolyline 494 495 // Transition between two events on the route. See the description of 496 // [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute]. If the vehicle 497 // does not have a `start_location` and/or `end_location`, the corresponding 498 // travel metrics are 0. 499 // 500 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 501 type ShipmentRoute_Transition = src.ShipmentRoute_Transition 502 503 // Deprecated: Use [ShipmentRoute.transitions][] instead. Travel between each 504 // visit, along the route: from the vehicle's `start_location` to the first 505 // visit's `arrival_location`, then from the first visit's `departure_location` 506 // to the second visit's `arrival_location`, and so on until the vehicle's 507 // `end_location`. This accounts only for the actual travel between visits, not 508 // counting the waiting time, the time spent performing a visit, nor the 509 // distance covered during a visit. Invariant: `travel_steps_size() == 510 // visits_size() + 1`. If the vehicle does not have a start_ and/or 511 // end_location, the corresponding travel metrics are 0 and/or empty. 512 // Deprecated: Do not use. 513 // 514 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 515 type ShipmentRoute_TravelStep = src.ShipmentRoute_TravelStep 516 517 // Reports the actual load of the vehicle at some point along the route, for a 518 // given type (see 519 // [Transition.vehicle_loads][google.cloud.optimization.v1.ShipmentRoute.Transition.vehicle_loads]). 520 // 521 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 522 type ShipmentRoute_VehicleLoad = src.ShipmentRoute_VehicleLoad 523 524 // A visit performed during a route. This visit corresponds to a pickup or a 525 // delivery of a `Shipment`. 526 // 527 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 528 type ShipmentRoute_Visit = src.ShipmentRoute_Visit 529 530 // Specifies incompatibilties between shipments depending on their 531 // shipment_type. The appearance of incompatible shipments on the same route is 532 // restricted based on the incompatibility mode. 533 // 534 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 535 type ShipmentTypeIncompatibility = src.ShipmentTypeIncompatibility 536 537 // Modes defining how the appearance of incompatible shipments are restricted 538 // on the same route. 539 // 540 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 541 type ShipmentTypeIncompatibility_IncompatibilityMode = src.ShipmentTypeIncompatibility_IncompatibilityMode 542 543 // Specifies requirements between shipments based on their shipment_type. The 544 // specifics of the requirement are defined by the requirement mode. 545 // 546 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 547 type ShipmentTypeRequirement = src.ShipmentTypeRequirement 548 549 // Modes defining the appearance of dependent shipments on a route. 550 // 551 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 552 type ShipmentTypeRequirement_RequirementMode = src.ShipmentTypeRequirement_RequirementMode 553 554 // When performing a visit, a predefined amount may be added to the vehicle 555 // load if it's a pickup, or subtracted if it's a delivery. This message 556 // defines such amount. See 557 // [load_demands][google.cloud.optimization.v1.Shipment.load_demands]. 558 // 559 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 560 type Shipment_Load = src.Shipment_Load 561 562 // Request for a visit which can be done by a vehicle: it has a geo-location 563 // (or two, see below), opening and closing times represented by time windows, 564 // and a service duration time (time spent by the vehicle once it has arrived 565 // to pickup or drop off goods). 566 // 567 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 568 type Shipment_VisitRequest = src.Shipment_VisitRequest 569 570 // Specifies details of unperformed shipments in a solution. For trivial cases 571 // and/or if we are able to identify the cause for skipping, we report the 572 // reason here. 573 // 574 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 575 type SkippedShipment = src.SkippedShipment 576 577 // If we can explain why the shipment was skipped, reasons will be listed 578 // here. If the reason is not the same for all vehicles, `reason` will have 579 // more than 1 element. A skipped shipment cannot have duplicate reasons, i.e. 580 // where all fields are the same except for `example_vehicle_index`. Example: 581 // ``` reasons { code: DEMAND_EXCEEDS_VEHICLE_CAPACITY example_vehicle_index: 1 582 // example_exceeded_capacity_type: "Apples" } reasons { code: 583 // DEMAND_EXCEEDS_VEHICLE_CAPACITY example_vehicle_index: 3 584 // example_exceeded_capacity_type: "Pears" } reasons { code: 585 // CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT example_vehicle_index: 1 } 586 // ``` The skipped shipment is incompatible with all vehicles. The reasons may 587 // be different for all vehicles but at least one vehicle's "Apples" capacity 588 // would be exceeded (including vehicle 1), at least one vehicle's "Pears" 589 // capacity would be exceeded (including vehicle 3) and at least one vehicle's 590 // distance limit would be exceeded (including vehicle 1). 591 // 592 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 593 type SkippedShipment_Reason = src.SkippedShipment_Reason 594 595 // Code identifying the reason type. The order here is meaningless. In 596 // particular, it gives no indication of whether a given reason will appear 597 // before another in the solution, if both apply. 598 // 599 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 600 type SkippedShipment_Reason_Code = src.SkippedShipment_Reason_Code 601 602 // Time windows constrain the time of an event, such as the arrival time at a 603 // visit, or the start and end time of a vehicle. Hard time window bounds, 604 // `start_time` and `end_time`, enforce the earliest and latest time of the 605 // event, such that `start_time <= event_time <= end_time`. The soft time 606 // window lower bound, `soft_start_time`, expresses a preference for the event 607 // to happen at or after `soft_start_time` by incurring a cost proportional to 608 // how long before soft_start_time the event occurs. The soft time window upper 609 // bound, `soft_end_time`, expresses a preference for the event to happen at or 610 // before `soft_end_time` by incurring a cost proportional to how long after 611 // `soft_end_time` the event occurs. `start_time`, `end_time`, 612 // `soft_start_time` and `soft_end_time` should be within the global time 613 // limits (see 614 // [ShipmentModel.global_start_time][google.cloud.optimization.v1.ShipmentModel.global_start_time] 615 // and 616 // [ShipmentModel.global_end_time][google.cloud.optimization.v1.ShipmentModel.global_end_time]) 617 // and should respect: ``` 0 <= `start_time` <= `soft_start_time` <= `end_time` 618 // and 0 <= `start_time` <= `soft_end_time` <= `end_time`. ``` 619 // 620 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 621 type TimeWindow = src.TimeWindow 622 623 // Specifies attributes of transitions between two consecutive visits on a 624 // route. Several `TransitionAttributes` may apply to the same transition: in 625 // that case, all extra costs add up and the strictest constraint or limit 626 // applies (following natural "AND" semantics). 627 // 628 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 629 type TransitionAttributes = src.TransitionAttributes 630 631 // UnimplementedFleetRoutingServer can be embedded to have forward compatible 632 // implementations. 633 // 634 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 635 type UnimplementedFleetRoutingServer = src.UnimplementedFleetRoutingServer 636 637 // Models a vehicle in a shipment problem. Solving a shipment problem will 638 // build a route starting from `start_location` and ending at `end_location` 639 // for this vehicle. A route is a sequence of visits (see `ShipmentRoute`). 640 // 641 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 642 type Vehicle = src.Vehicle 643 644 // A limit defining a maximum duration of the route of a vehicle. It can be 645 // either hard or soft. When a soft limit field is defined, both the soft max 646 // threshold and its associated cost must be defined together. 647 // 648 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 649 type Vehicle_DurationLimit = src.Vehicle_DurationLimit 650 651 // Defines a load limit applying to a vehicle, e.g. "this truck may only carry 652 // up to 3500 kg". See 653 // [load_limits][google.cloud.optimization.v1.Vehicle.load_limits]. 654 // 655 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 656 type Vehicle_LoadLimit = src.Vehicle_LoadLimit 657 658 // Interval of acceptable load amounts. 659 // 660 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 661 type Vehicle_LoadLimit_Interval = src.Vehicle_LoadLimit_Interval 662 663 // Travel modes which can be used by vehicles. These should be a subset of the 664 // Google Maps Platform Routes Preferred API travel modes, see: 665 // https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode. 666 // 667 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 668 type Vehicle_TravelMode = src.Vehicle_TravelMode 669 670 // Policy on how a vehicle can be unloaded. Applies only to shipments having 671 // both a pickup and a delivery. Other shipments are free to occur anywhere on 672 // the route independent of `unloading_policy`. 673 // 674 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 675 type Vehicle_UnloadingPolicy = src.Vehicle_UnloadingPolicy 676 677 // Encapsulates a waypoint. Waypoints mark arrival and departure locations of 678 // VisitRequests, and start and end locations of Vehicles. 679 // 680 // Deprecated: Please use types in: cloud.google.com/go/optimization/apiv1/optimizationpb 681 type Waypoint = src.Waypoint 682 type Waypoint_Location = src.Waypoint_Location 683 type Waypoint_PlaceId = src.Waypoint_PlaceId 684 685 // Deprecated: Please use funcs in: cloud.google.com/go/optimization/apiv1/optimizationpb 686 func NewFleetRoutingClient(cc grpc.ClientConnInterface) FleetRoutingClient { 687 return src.NewFleetRoutingClient(cc) 688 } 689 690 // Deprecated: Please use funcs in: cloud.google.com/go/optimization/apiv1/optimizationpb 691 func RegisterFleetRoutingServer(s *grpc.Server, srv FleetRoutingServer) { 692 src.RegisterFleetRoutingServer(s, srv) 693 } 694