Stay organized with collections
Save and categorize content based on your preferences.
Defines how the solver should handle the request. In all modes but VALIDATE_ONLY, if the request is invalid, you will receive an INVALID_REQUEST error. See maxValidationErrors to cap the number of errors returned.
Enums
DEFAULT_SOLVE
Solve the model. Warnings may be issued in [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors].
IMPORTANT: not all infeasible shipments are returned here, but only the ones that are detected as infeasible during preprocessing.
TRANSFORM_AND_RETURN_REQUEST
This mode only works if ShipmentModel.objectives is not empty. The request is not solved. It is only validated and filled with costs corresponding to the given objectives. Also see the documentation of ShipmentModel.objectives. The resulting request is returned as OptimizeToursResponse.processed_request.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-13 UTC."],[[["\u003cp\u003eDefines how the solver processes the request, dictating whether it solves the model, validates it, or detects infeasible shipments.\u003c/p\u003e\n"],["\u003cp\u003eOffers three modes: \u003ccode\u003eDEFAULT_SOLVE\u003c/code\u003e for solving, \u003ccode\u003eVALIDATE_ONLY\u003c/code\u003e for validation, and \u003ccode\u003eDETECT_SOME_INFEASIBLE_SHIPMENTS\u003c/code\u003e for identifying problematic shipments.\u003c/p\u003e\n"],["\u003cp\u003eIn all modes except \u003ccode\u003eVALIDATE_ONLY\u003c/code\u003e, invalid requests will return an \u003ccode\u003eINVALID_REQUEST\u003c/code\u003e error, with potential for controlling the number of error messages.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDETECT_SOME_INFEASIBLE_SHIPMENTS\u003c/code\u003e mode focuses on pre-processing infeasibility detection without fully solving the problem.\u003c/p\u003e\n"]]],[],null,["Defines how the solver should handle the request. In all modes but `VALIDATE_ONLY`, if the request is invalid, you will receive an `INVALID_REQUEST` error. See [maxValidationErrors](/maps/documentation/route-optimization/reference/rest/v1/projects.locations/optimizeTours#body.request_body.FIELDS.max_validation_errors) to cap the number of errors returned.\n\n| Enums ||\n|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `DEFAULT_SOLVE` | Solve the model. Warnings may be issued in \\[OptimizeToursResponse.validation_errors\\]\\[google.cloud.optimization.v1.OptimizeToursResponse.validation_errors\\]. |\n| `VALIDATE_ONLY` | Only validates the model without solving it: populates as many [OptimizeToursResponse.validation_errors](/maps/documentation/route-optimization/reference/rest/v1/OptimizeToursResponse#FIELDS.validation_errors) as possible. |\n| `DETECT_SOME_INFEASIBLE_SHIPMENTS` | Only populates [OptimizeToursResponse.validation_errors](/maps/documentation/route-optimization/reference/rest/v1/OptimizeToursResponse#FIELDS.validation_errors) or [OptimizeToursResponse.skipped_shipments](/maps/documentation/route-optimization/reference/rest/v1/OptimizeToursResponse#FIELDS.skipped_shipments), and doesn't actually solve the rest of the request (`status` and `routes` are unset in the response). If infeasibilities in `injectedSolutionConstraint` routes are detected they are populated in the [OptimizeToursResponse.validation_errors](/maps/documentation/route-optimization/reference/rest/v1/OptimizeToursResponse#FIELDS.validation_errors) field and [OptimizeToursResponse.skipped_shipments](/maps/documentation/route-optimization/reference/rest/v1/OptimizeToursResponse#FIELDS.skipped_shipments) is left empty. *IMPORTANT*: not all infeasible shipments are returned here, but only the ones that are detected as infeasible during preprocessing. |\n| `TRANSFORM_AND_RETURN_REQUEST` | This mode only works if `ShipmentModel.objectives` is not empty. The request is not solved. It is only validated and filled with costs corresponding to the given objectives. Also see the documentation of `ShipmentModel.objectives`. The resulting request is returned as `OptimizeToursResponse.processed_request`. Experimental: See \u003chttps://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request\u003e for more details. |"]]