diff --git a/packages/google-maps-routeoptimization/protos/google/maps/routeoptimization/v1/route_optimization_service.proto b/packages/google-maps-routeoptimization/protos/google/maps/routeoptimization/v1/route_optimization_service.proto index f9f605e034a..c10f1595af1 100644 --- a/packages/google-maps-routeoptimization/protos/google/maps/routeoptimization/v1/route_optimization_service.proto +++ b/packages/google-maps-routeoptimization/protos/google/maps/routeoptimization/v1/route_optimization_service.proto @@ -85,23 +85,23 @@ service RouteOptimization { // // This method is a Long Running Operation (LRO). The inputs for optimization // (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse` - // messages) are read/written from/to Cloud Storage in user-specified + // messages) are read from and written to Cloud Storage in user-specified // format. Like the `OptimizeTours` method, each `OptimizeToursRequest` // contains a `ShipmentModel` and returns an `OptimizeToursResponse` - // containing `ShipmentRoute`s, which are a set of routes to be performed by - // vehicles minimizing the overall cost. + // containing `ShipmentRoute` fields, which are a set of routes to be + // performed by vehicles minimizing the overall cost. // // The user can poll `operations.get` to check the status of the LRO: // - // If the LRO's `done` field is false, then at least one request is still + // If the LRO `done` field is false, then at least one request is still // being processed. Other requests may have completed successfully and their - // results are available in GCS. + // results are available in Cloud Storage. // // If the LRO's `done` field is true, then all requests have been processed. // Any successfully processed requests will have their results available in - // GCS. Any requests that failed will not have their results available in - // GCS. If the LRO's `error` field is set, then it contains the error from - // one of the failed requests. + // Cloud Storage. Any requests that failed will not have their results + // available in Cloud Storage. If the LRO's `error` field is set, then it + // contains the error from one of the failed requests. rpc BatchOptimizeTours(BatchOptimizeToursRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -374,7 +374,7 @@ message OptimizeToursRequest { // If true, polylines will be populated in response `ShipmentRoute`s. bool populate_polylines = 12; - // If true, polylines will be populated in response + // If true, polylines and route tokens will be populated in response // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]. bool populate_transition_polylines = 13; @@ -1848,6 +1848,17 @@ message ShipmentRoute { // is set to true. EncodedPolyline route_polyline = 9; + // Output only. An opaque token that can be passed to [Navigation + // SDK](https://developers.google.com/maps/documentation/navigation) to + // reconstruct the route during navigation, and, in the event of rerouting, + // honor the original intention when the route was created. Treat this token + // as an opaque blob. Don't compare its value across requests as its value + // may change even if the service returns the exact same route. This field + // is only populated if [populate_transition_polylines] + // [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines] + // is set to true. + string route_token = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Vehicle loads during this transition, for each type that either appears // in this vehicle's // [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits], @@ -2274,253 +2285,21 @@ message OptimizeToursValidationError { // A validation error is defined by the pair (`code`, `display_name`) which // are always present. // - // Other fields (below) provide more context about the error. + // The fields following this section provide more context about the error. // // *MULTIPLE ERRORS*: // When there are multiple errors, the validation process tries to output // several of them. Much like a compiler, this is an imperfect process. Some // validation errors will be "fatal", meaning that they stop the entire // validation process. This is the case for `display_name="UNSPECIFIED"` - // errors, among others. Some may cause the validation process to skip other - // errors. + // errors, among others. Some errors may cause the validation process to skip + // other errors. // // *STABILITY*: // `code` and `display_name` should be very stable. But new codes and // display names may appear over time, which may cause a given (invalid) // request to yield a different (`code`, `display_name`) pair because the new - // error hid the old one (see "MULTIPLE ERRORS"). - // - // *REFERENCE*: A list of all (code, name) pairs: - // - // * UNSPECIFIED = 0; - // * VALIDATION_TIMEOUT_ERROR = 10; Validation couldn't be completed within - // the deadline. - // - // * REQUEST_OPTIONS_ERROR = 12; - // * REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201; - // * REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203; - // * REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204; - // * REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 1205; - // * REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_SECOND = 1206; - // * REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE - // = 1207; - // * REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208; - // * REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211; - // * REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212; - // * REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213; - // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214; - // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215; - // * REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216; - // * REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217; - // * INJECTED_SOLUTION_ERROR = 20; - // * INJECTED_SOLUTION_MISSING_LABEL = 2000; - // * INJECTED_SOLUTION_DUPLICATE_LABEL = 2001; - // * INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002; - // * INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003; - // * INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004; - // * INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005; - // * INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006; - // * INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008; - // * INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010; - // * SHIPMENT_MODEL_ERROR = 22; - // * SHIPMENT_MODEL_TOO_LARGE = 2200; - // * SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201; - // * SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202; - // * SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203; - // * SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204; - // * SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205; - // * SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206; - // * SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207; - // * INDEX_ERROR = 24; - // * TAG_ERROR = 26; - // * TIME_WINDOW_ERROR = 28; - // * TIME_WINDOW_INVALID_START_TIME = 2800; - // * TIME_WINDOW_INVALID_END_TIME = 2801; - // * TIME_WINDOW_INVALID_SOFT_START_TIME = 2802; - // * TIME_WINDOW_INVALID_SOFT_END_TIME = 2803; - // * TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804; - // * TIME_WINDOW_START_TIME_AFTER_END_TIME = 2805; - // * TIME_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806; - // * TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807; - // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME - // = 2808; - // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809; - // * TIME_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME - // = 2810; - // * TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_AFTER_SOFT_END_TIME = 2811; - // * TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812; - // * TIME_WINDOW_START_TIME_AFTER_SOFT_START_TIME = 2813; - // * TIME_WINDOW_SOFT_START_TIME_OUTSIDE_GLOBAL_TIME_WINDOW = 2819; - // * TIME_WINDOW_SOFT_END_TIME_OUTSIDE_GLOBAL_TIME_WINDOW = 2820; - // * TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816; - // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS - // = 2817; - // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818; - // * TRANSITION_ATTRIBUTES_ERROR = 30; - // * TRANSITION_ATTRIBUTES_INVALID_COST = 3000; - // * TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001; - // * TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002; - // * TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_METERS_UNSUPPORTED = 3003; - // * TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004; - // * TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005; - // * TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006; - // * TRANSITION_ATTRIBUTES_CONFLICTING_DESTINATION_TAGS_FIELDS = 3007; - // * TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008; - // * TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009; - // * AMOUNT_ERROR = 31; - // * AMOUNT_NEGATIVE_VALUE = 3100; - // * LOAD_LIMIT_ERROR = 33; - // * LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303; - // * LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304; - // * LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305; - // * LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306; - // * LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307; - // * LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308; - // * LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3309; - // * INTERVAL_ERROR = 34; - // * INTERVAL_MIN_EXCEEDS_MAX = 3401; - // * INTERVAL_NEGATIVE_MIN = 3402; - // * INTERVAL_NEGATIVE_MAX = 3403; - // * INTERVAL_MIN_EXCEEDS_CAPACITY = 3404; - // * INTERVAL_MAX_EXCEEDS_CAPACITY = 3405; - // * DISTANCE_LIMIT_ERROR = 36; - // * DISTANCE_LIMIT_INVALID_COST_AFTER_SOFT_MAX = 3601; - // * DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602; - // * DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603; - // * DISTANCE_LIMIT_NEGATIVE_MAX = 3604; - // * DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605; - // * DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606; - // * DURATION_LIMIT_ERROR = 38; - // * DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800; - // * DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801; - // * DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802; - // * DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803; - // * DURATION_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3804; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805; - // * DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR - // = 3807; - // * DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX - // = 3808; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809; - // * DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811; - // * DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE - // = 3812; - // * DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813; - // * DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION - // = 3815; - // * SHIPMENT_ERROR = 40; - // * SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014; - // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000; - // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION - // = 4001; - // * SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015; - // * SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016; - // * SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002; - // * SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003; - // * SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004; - // * SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005; - // * SHIPMENT_INVALID_PENALTY_COST = 4006; - // * SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007; - // * SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008; - // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009; - // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010; - // * SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011; - // * SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012; - // * SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013; - // * VEHICLE_ERROR = 42; - // * VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200; - // * VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201; - // * VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202; - // * VEHICLE_EMPTY_START_TAG = 4203; - // * VEHICLE_DUPLICATE_START_TAG = 4204; - // * VEHICLE_EMPTY_END_TAG = 4205; - // * VEHICLE_DUPLICATE_END_TAG = 4206; - // * VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207; - // * VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208; - // * VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209; - // * VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210; - // * VEHICLE_FIRST_SHIPMENT_IGNORED = 4211; - // * VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212; - // * VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213; - // * VEHICLE_LAST_SHIPMENT_IGNORED = 4214; - // * VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215; - // * VEHICLE_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216; - // * VEHICLE_INVALID_COST_PER_KILOMETER = 4217; - // * VEHICLE_INVALID_COST_PER_HOUR = 4218; - // * VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219; - // * VEHICLE_INVALID_FIXED_COST = 4220; - // * VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221; - // * VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS - // = 4223; - // * VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224; - // * VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222; - // * VISIT_REQUEST_ERROR = 44; - // * VISIT_REQUEST_EMPTY_TAG = 4400; - // * VISIT_REQUEST_DUPLICATE_TAG = 4401; - // * VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404; - // * VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405; - // * PRECEDENCE_ERROR = 46; - // * PRECEDENCE_RULE_MISSING_FIRST_INDEX = 4600; - // * PRECEDENCE_RULE_MISSING_SECOND_INDEX = 4601; - // * PRECEDENCE_RULE_FIRST_INDEX_OUT_OF_BOUNDS = 4602; - // * PRECEDENCE_RULE_SECOND_INDEX_OUT_OF_BOUNDS = 4603; - // * PRECEDENCE_RULE_DUPLICATE_INDEX = 4604; - // * PRECEDENCE_RULE_INEXISTENT_FIRST_VISIT_REQUEST = 4605; - // * PRECEDENCE_RULE_INEXISTENT_SECOND_VISIT_REQUEST = 4606; - // * BREAK_ERROR = 48; - // * BREAK_RULE_EMPTY = 4800; - // * BREAK_REQUEST_UNSPECIFIED_DURATION = 4801; - // * BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802; - // * BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803; - // * BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804; - // * BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805; - // * BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806; - // * BREAK_REQUEST_LATEST_END_TIME_AFTER_GLOBAL_END_TIME = 4807; - // * BREAK_REQUEST_NON_SCHEDULABLE = 4808; - // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809; - // * BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810; - // * BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811; - // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION - // = 4812; - // * BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813; - // * BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814; - // * BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815; - // * SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50; - // * SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001; - // * SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002; - // * SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003; - // * SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004; - // * SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005; - // * SHIPMENT_TYPE_REQUIREMENT_ERROR = 52; - // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001; - // * SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002; - // * SHIPMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003; - // * SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004; - // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005; - // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006; - // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007; - // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008; - // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009; - // * SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010; - // * SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011; - // * VEHICLE_OPERATOR_ERROR = 54; - // * VEHICLE_OPERATOR_EMPTY_TYPE = 5400; - // * VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401; - // * VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402; - // * VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403; - // * VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404; - // * DURATION_SECONDS_MATRIX_ERROR = 56; - // * DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600; - // * DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601; - // * WARNING = 9; - // * WARNING_INJECTED_FIRST_SOLUTION = 90; - // * WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_SHIPMENTS_REMOVED - // = 9000; - // * WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES - // = 9001; + // error hid the old one. For example, see "MULTIPLE ERRORS". int32 code = 1; // The error display name. diff --git a/packages/google-maps-routeoptimization/protos/protos.d.ts b/packages/google-maps-routeoptimization/protos/protos.d.ts index 920f7a2a401..2add5e2b3e8 100644 --- a/packages/google-maps-routeoptimization/protos/protos.d.ts +++ b/packages/google-maps-routeoptimization/protos/protos.d.ts @@ -4155,6 +4155,9 @@ export namespace google { /** Transition routePolyline */ routePolyline?: (google.maps.routeoptimization.v1.ShipmentRoute.IEncodedPolyline|null); + /** Transition routeToken */ + routeToken?: (string|null); + /** Transition vehicleLoads */ vehicleLoads?: ({ [k: string]: google.maps.routeoptimization.v1.ShipmentRoute.IVehicleLoad }|null); } @@ -4195,6 +4198,9 @@ export namespace google { /** Transition routePolyline. */ public routePolyline?: (google.maps.routeoptimization.v1.ShipmentRoute.IEncodedPolyline|null); + /** Transition routeToken. */ + public routeToken: string; + /** Transition vehicleLoads. */ public vehicleLoads: { [k: string]: google.maps.routeoptimization.v1.ShipmentRoute.IVehicleLoad }; diff --git a/packages/google-maps-routeoptimization/protos/protos.js b/packages/google-maps-routeoptimization/protos/protos.js index 26d080972f4..0ca022588af 100644 --- a/packages/google-maps-routeoptimization/protos/protos.js +++ b/packages/google-maps-routeoptimization/protos/protos.js @@ -11899,6 +11899,7 @@ * @property {google.protobuf.IDuration|null} [totalDuration] Transition totalDuration * @property {google.protobuf.ITimestamp|null} [startTime] Transition startTime * @property {google.maps.routeoptimization.v1.ShipmentRoute.IEncodedPolyline|null} [routePolyline] Transition routePolyline + * @property {string|null} [routeToken] Transition routeToken * @property {Object.|null} [vehicleLoads] Transition vehicleLoads */ @@ -11990,6 +11991,14 @@ */ Transition.prototype.routePolyline = null; + /** + * Transition routeToken. + * @member {string} routeToken + * @memberof google.maps.routeoptimization.v1.ShipmentRoute.Transition + * @instance + */ + Transition.prototype.routeToken = ""; + /** * Transition vehicleLoads. * @member {Object.} vehicleLoads @@ -12045,6 +12054,8 @@ writer.uint32(/* id 11, wireType 2 =*/90).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); $root.google.maps.routeoptimization.v1.ShipmentRoute.VehicleLoad.encode(message.vehicleLoads[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); } + if (message.routeToken != null && Object.hasOwnProperty.call(message, "routeToken")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.routeToken); return writer; }; @@ -12115,6 +12126,10 @@ message.routePolyline = $root.google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline.decode(reader, reader.uint32()); break; } + case 12: { + message.routeToken = reader.string(); + break; + } case 11: { if (message.vehicleLoads === $util.emptyObject) message.vehicleLoads = {}; @@ -12214,6 +12229,9 @@ if (error) return "routePolyline." + error; } + if (message.routeToken != null && message.hasOwnProperty("routeToken")) + if (!$util.isString(message.routeToken)) + return "routeToken: string expected"; if (message.vehicleLoads != null && message.hasOwnProperty("vehicleLoads")) { if (!$util.isObject(message.vehicleLoads)) return "vehicleLoads: object expected"; @@ -12278,6 +12296,8 @@ throw TypeError(".google.maps.routeoptimization.v1.ShipmentRoute.Transition.routePolyline: object expected"); message.routePolyline = $root.google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline.fromObject(object.routePolyline); } + if (object.routeToken != null) + message.routeToken = String(object.routeToken); if (object.vehicleLoads) { if (typeof object.vehicleLoads !== "object") throw TypeError(".google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicleLoads: object expected"); @@ -12316,6 +12336,7 @@ object.totalDuration = null; object.startTime = null; object.routePolyline = null; + object.routeToken = ""; } if (message.travelDuration != null && message.hasOwnProperty("travelDuration")) object.travelDuration = $root.google.protobuf.Duration.toObject(message.travelDuration, options); @@ -12341,6 +12362,8 @@ for (var j = 0; j < keys2.length; ++j) object.vehicleLoads[keys2[j]] = $root.google.maps.routeoptimization.v1.ShipmentRoute.VehicleLoad.toObject(message.vehicleLoads[keys2[j]], options); } + if (message.routeToken != null && message.hasOwnProperty("routeToken")) + object.routeToken = message.routeToken; return object; }; diff --git a/packages/google-maps-routeoptimization/protos/protos.json b/packages/google-maps-routeoptimization/protos/protos.json index 93966d664b4..6bf047df732 100644 --- a/packages/google-maps-routeoptimization/protos/protos.json +++ b/packages/google-maps-routeoptimization/protos/protos.json @@ -1287,6 +1287,13 @@ "type": "EncodedPolyline", "id": 9 }, + "routeToken": { + "type": "string", + "id": 12, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, "vehicleLoads": { "keyType": "string", "type": "VehicleLoad", diff --git a/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js b/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js index 027a68f23b0..7eec45ab0e5 100644 --- a/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js +++ b/packages/google-maps-routeoptimization/samples/generated/v1/route_optimization.optimize_tours.js @@ -186,7 +186,7 @@ function main(parent) { */ // const populatePolylines = true /** - * If true, polylines will be populated in response + * If true, polylines and route tokens will be populated in response * ShipmentRoute.transitions google.maps.routeoptimization.v1.ShipmentRoute.transitions. */ // const populateTransitionPolylines = true diff --git a/packages/google-maps-routeoptimization/samples/generated/v1/snippet_metadata_google.maps.routeoptimization.v1.json b/packages/google-maps-routeoptimization/samples/generated/v1/snippet_metadata_google.maps.routeoptimization.v1.json index c6396d279ca..8ff8518e330 100644 --- a/packages/google-maps-routeoptimization/samples/generated/v1/snippet_metadata_google.maps.routeoptimization.v1.json +++ b/packages/google-maps-routeoptimization/samples/generated/v1/snippet_metadata_google.maps.routeoptimization.v1.json @@ -119,7 +119,7 @@ "regionTag": "routeoptimization_v1_generated_RouteOptimization_BatchOptimizeTours_async", "title": "RouteOptimization batchOptimizeTours Sample", "origin": "API_DEFINITION", - "description": " Optimizes vehicle tours for one or more `OptimizeToursRequest` messages as a batch. This method is a Long Running Operation (LRO). The inputs for optimization (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse` messages) are read/written from/to Cloud Storage in user-specified format. Like the `OptimizeTours` method, each `OptimizeToursRequest` contains a `ShipmentModel` and returns an `OptimizeToursResponse` containing `ShipmentRoute`s, which are a set of routes to be performed by vehicles minimizing the overall cost. The user can poll `operations.get` to check the status of the LRO: If the LRO's `done` field is false, then at least one request is still being processed. Other requests may have completed successfully and their results are available in GCS. If the LRO's `done` field is true, then all requests have been processed. Any successfully processed requests will have their results available in GCS. Any requests that failed will not have their results available in GCS. If the LRO's `error` field is set, then it contains the error from one of the failed requests.", + "description": " Optimizes vehicle tours for one or more `OptimizeToursRequest` messages as a batch. This method is a Long Running Operation (LRO). The inputs for optimization (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse` messages) are read from and written to Cloud Storage in user-specified format. Like the `OptimizeTours` method, each `OptimizeToursRequest` contains a `ShipmentModel` and returns an `OptimizeToursResponse` containing `ShipmentRoute` fields, which are a set of routes to be performed by vehicles minimizing the overall cost. The user can poll `operations.get` to check the status of the LRO: If the LRO `done` field is false, then at least one request is still being processed. Other requests may have completed successfully and their results are available in Cloud Storage. If the LRO's `done` field is true, then all requests have been processed. Any successfully processed requests will have their results available in Cloud Storage. Any requests that failed will not have their results available in Cloud Storage. If the LRO's `error` field is set, then it contains the error from one of the failed requests.", "canonical": true, "file": "route_optimization.batch_optimize_tours.js", "language": "JAVASCRIPT", diff --git a/packages/google-maps-routeoptimization/src/v1/route_optimization_client.ts b/packages/google-maps-routeoptimization/src/v1/route_optimization_client.ts index 3a764af2894..9000271901b 100644 --- a/packages/google-maps-routeoptimization/src/v1/route_optimization_client.ts +++ b/packages/google-maps-routeoptimization/src/v1/route_optimization_client.ts @@ -587,7 +587,7 @@ export class RouteOptimizationClient { * @param {boolean} request.populatePolylines * If true, polylines will be populated in response `ShipmentRoute`s. * @param {boolean} request.populateTransitionPolylines - * If true, polylines will be populated in response + * If true, polylines and route tokens will be populated in response * {@link protos.google.maps.routeoptimization.v1.ShipmentRoute.transitions|ShipmentRoute.transitions}. * @param {boolean} request.allowLargeDeadlineDespiteInterruptionRisk * If this is set, then the request can have a deadline @@ -704,23 +704,23 @@ export class RouteOptimizationClient { * * This method is a Long Running Operation (LRO). The inputs for optimization * (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse` - * messages) are read/written from/to Cloud Storage in user-specified + * messages) are read from and written to Cloud Storage in user-specified * format. Like the `OptimizeTours` method, each `OptimizeToursRequest` * contains a `ShipmentModel` and returns an `OptimizeToursResponse` - * containing `ShipmentRoute`s, which are a set of routes to be performed by - * vehicles minimizing the overall cost. + * containing `ShipmentRoute` fields, which are a set of routes to be + * performed by vehicles minimizing the overall cost. * * The user can poll `operations.get` to check the status of the LRO: * - * If the LRO's `done` field is false, then at least one request is still + * If the LRO `done` field is false, then at least one request is still * being processed. Other requests may have completed successfully and their - * results are available in GCS. + * results are available in Cloud Storage. * * If the LRO's `done` field is true, then all requests have been processed. * Any successfully processed requests will have their results available in - * GCS. Any requests that failed will not have their results available in - * GCS. If the LRO's `error` field is set, then it contains the error from - * one of the failed requests. + * Cloud Storage. Any requests that failed will not have their results + * available in Cloud Storage. If the LRO's `error` field is set, then it + * contains the error from one of the failed requests. * * @param {Object} request * The request object that will be sent.