Class OptimizeToursRequest

  • All Implemented Interfaces:
    OptimizeToursRequestOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable

    public final class OptimizeToursRequest
    extends com.google.protobuf.GeneratedMessageV3
    implements OptimizeToursRequestOrBuilder
     Request to be given to a tour optimization solver which defines the
     shipment model to solve as well as optimization parameters.
     
    Protobuf type google.cloud.optimization.v1.OptimizeToursRequest
    See Also:
    Serialized Form
    • Field Detail

      • SOLVING_MODE_FIELD_NUMBER

        public static final int SOLVING_MODE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SEARCH_MODE_FIELD_NUMBER

        public static final int SEARCH_MODE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INJECTED_FIRST_SOLUTION_ROUTES_FIELD_NUMBER

        public static final int INJECTED_FIRST_SOLUTION_ROUTES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INJECTED_SOLUTION_CONSTRAINT_FIELD_NUMBER

        public static final int INJECTED_SOLUTION_CONSTRAINT_FIELD_NUMBER
        See Also:
        Constant Field Values
      • REFRESH_DETAILS_ROUTES_FIELD_NUMBER

        public static final int REFRESH_DETAILS_ROUTES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • INTERPRET_INJECTED_SOLUTIONS_USING_LABELS_FIELD_NUMBER

        public static final int INTERPRET_INJECTED_SOLUTIONS_USING_LABELS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CONSIDER_ROAD_TRAFFIC_FIELD_NUMBER

        public static final int CONSIDER_ROAD_TRAFFIC_FIELD_NUMBER
        See Also:
        Constant Field Values
      • POPULATE_POLYLINES_FIELD_NUMBER

        public static final int POPULATE_POLYLINES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • POPULATE_TRANSITION_POLYLINES_FIELD_NUMBER

        public static final int POPULATE_TRANSITION_POLYLINES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • ALLOW_LARGE_DEADLINE_DESPITE_INTERRUPTION_RISK_FIELD_NUMBER

        public static final int ALLOW_LARGE_DEADLINE_DESPITE_INTERRUPTION_RISK_FIELD_NUMBER
        See Also:
        Constant Field Values
      • USE_GEODESIC_DISTANCES_FIELD_NUMBER

        public static final int USE_GEODESIC_DISTANCES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • GEODESIC_METERS_PER_SECOND_FIELD_NUMBER

        public static final int GEODESIC_METERS_PER_SECOND_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MAX_VALIDATION_ERRORS_FIELD_NUMBER

        public static final int MAX_VALIDATION_ERRORS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • POPULATE_TRAVEL_STEP_POLYLINES_FIELD_NUMBER

        public static final int POPULATE_TRAVEL_STEP_POLYLINES_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • getParent

        public String getParent()
         Required. Target project and location to make a call.
        
         Format: `projects/{project-id}/locations/{location-id}`.
        
         If no location is specified, a region will be chosen automatically.
         
        string parent = 1 [(.google.api.field_behavior) = REQUIRED];
        Specified by:
        getParent in interface OptimizeToursRequestOrBuilder
        Returns:
        The parent.
      • getParentBytes

        public com.google.protobuf.ByteString getParentBytes()
         Required. Target project and location to make a call.
        
         Format: `projects/{project-id}/locations/{location-id}`.
        
         If no location is specified, a region will be chosen automatically.
         
        string parent = 1 [(.google.api.field_behavior) = REQUIRED];
        Specified by:
        getParentBytes in interface OptimizeToursRequestOrBuilder
        Returns:
        The bytes for parent.
      • hasTimeout

        public boolean hasTimeout()
         If this timeout is set, the server returns a response before the timeout
         period has elapsed or the server deadline for synchronous requests is
         reached, whichever is sooner.
        
         For asynchronous requests, the server will generate a solution (if
         possible) before the timeout has elapsed.
         
        .google.protobuf.Duration timeout = 2;
        Specified by:
        hasTimeout in interface OptimizeToursRequestOrBuilder
        Returns:
        Whether the timeout field is set.
      • getTimeout

        public com.google.protobuf.Duration getTimeout()
         If this timeout is set, the server returns a response before the timeout
         period has elapsed or the server deadline for synchronous requests is
         reached, whichever is sooner.
        
         For asynchronous requests, the server will generate a solution (if
         possible) before the timeout has elapsed.
         
        .google.protobuf.Duration timeout = 2;
        Specified by:
        getTimeout in interface OptimizeToursRequestOrBuilder
        Returns:
        The timeout.
      • getTimeoutOrBuilder

        public com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder()
         If this timeout is set, the server returns a response before the timeout
         period has elapsed or the server deadline for synchronous requests is
         reached, whichever is sooner.
        
         For asynchronous requests, the server will generate a solution (if
         possible) before the timeout has elapsed.
         
        .google.protobuf.Duration timeout = 2;
        Specified by:
        getTimeoutOrBuilder in interface OptimizeToursRequestOrBuilder
      • hasModel

        public boolean hasModel()
         Shipment model to solve.
         
        .google.cloud.optimization.v1.ShipmentModel model = 3;
        Specified by:
        hasModel in interface OptimizeToursRequestOrBuilder
        Returns:
        Whether the model field is set.
      • getSolvingModeValue

        public int getSolvingModeValue()
         By default, the solving mode is `DEFAULT_SOLVE` (0).
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
        Specified by:
        getSolvingModeValue in interface OptimizeToursRequestOrBuilder
        Returns:
        The enum numeric value on the wire for solvingMode.
      • getSearchModeValue

        public int getSearchModeValue()
         Search mode used to solve the request.
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
        Specified by:
        getSearchModeValue in interface OptimizeToursRequestOrBuilder
        Returns:
        The enum numeric value on the wire for searchMode.
      • getInjectedFirstSolutionRoutesList

        public List<ShipmentRoute> getInjectedFirstSolutionRoutesList()
         Guide the optimization algorithm in finding a first solution that is
         similar to a previous solution.
        
         The model is constrained when the first solution is built.
         Any shipments not performed on a route are implicitly skipped in the first
         solution, but they may be performed in successive solutions.
        
         The solution must satisfy some basic validity assumptions:
        
           * for all routes, `vehicle_index` must be in range and not be duplicated.
           * for all visits, `shipment_index` and `visit_request_index` must be
             in range.
           * a shipment may only be referenced on one route.
           * the pickup of a pickup-delivery shipment must be performed before
             the delivery.
           * no more than one pickup alternative or delivery alternative of
             a shipment may be performed.
           * for all routes, times are increasing (i.e., `vehicle_start_time
             <= visits[0].start_time <= visits[1].start_time ...
             <= vehicle_end_time`).
           * a shipment may only be performed on a vehicle that is allowed. A
             vehicle is allowed if
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices]
             is empty or its `vehicle_index` is included in
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices].
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute injected_first_solution_routes = 7;
        Specified by:
        getInjectedFirstSolutionRoutesList in interface OptimizeToursRequestOrBuilder
      • getInjectedFirstSolutionRoutesOrBuilderList

        public List<? extends ShipmentRouteOrBuilder> getInjectedFirstSolutionRoutesOrBuilderList()
         Guide the optimization algorithm in finding a first solution that is
         similar to a previous solution.
        
         The model is constrained when the first solution is built.
         Any shipments not performed on a route are implicitly skipped in the first
         solution, but they may be performed in successive solutions.
        
         The solution must satisfy some basic validity assumptions:
        
           * for all routes, `vehicle_index` must be in range and not be duplicated.
           * for all visits, `shipment_index` and `visit_request_index` must be
             in range.
           * a shipment may only be referenced on one route.
           * the pickup of a pickup-delivery shipment must be performed before
             the delivery.
           * no more than one pickup alternative or delivery alternative of
             a shipment may be performed.
           * for all routes, times are increasing (i.e., `vehicle_start_time
             <= visits[0].start_time <= visits[1].start_time ...
             <= vehicle_end_time`).
           * a shipment may only be performed on a vehicle that is allowed. A
             vehicle is allowed if
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices]
             is empty or its `vehicle_index` is included in
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices].
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute injected_first_solution_routes = 7;
        Specified by:
        getInjectedFirstSolutionRoutesOrBuilderList in interface OptimizeToursRequestOrBuilder
      • getInjectedFirstSolutionRoutesCount

        public int getInjectedFirstSolutionRoutesCount()
         Guide the optimization algorithm in finding a first solution that is
         similar to a previous solution.
        
         The model is constrained when the first solution is built.
         Any shipments not performed on a route are implicitly skipped in the first
         solution, but they may be performed in successive solutions.
        
         The solution must satisfy some basic validity assumptions:
        
           * for all routes, `vehicle_index` must be in range and not be duplicated.
           * for all visits, `shipment_index` and `visit_request_index` must be
             in range.
           * a shipment may only be referenced on one route.
           * the pickup of a pickup-delivery shipment must be performed before
             the delivery.
           * no more than one pickup alternative or delivery alternative of
             a shipment may be performed.
           * for all routes, times are increasing (i.e., `vehicle_start_time
             <= visits[0].start_time <= visits[1].start_time ...
             <= vehicle_end_time`).
           * a shipment may only be performed on a vehicle that is allowed. A
             vehicle is allowed if
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices]
             is empty or its `vehicle_index` is included in
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices].
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute injected_first_solution_routes = 7;
        Specified by:
        getInjectedFirstSolutionRoutesCount in interface OptimizeToursRequestOrBuilder
      • getInjectedFirstSolutionRoutes

        public ShipmentRoute getInjectedFirstSolutionRoutes​(int index)
         Guide the optimization algorithm in finding a first solution that is
         similar to a previous solution.
        
         The model is constrained when the first solution is built.
         Any shipments not performed on a route are implicitly skipped in the first
         solution, but they may be performed in successive solutions.
        
         The solution must satisfy some basic validity assumptions:
        
           * for all routes, `vehicle_index` must be in range and not be duplicated.
           * for all visits, `shipment_index` and `visit_request_index` must be
             in range.
           * a shipment may only be referenced on one route.
           * the pickup of a pickup-delivery shipment must be performed before
             the delivery.
           * no more than one pickup alternative or delivery alternative of
             a shipment may be performed.
           * for all routes, times are increasing (i.e., `vehicle_start_time
             <= visits[0].start_time <= visits[1].start_time ...
             <= vehicle_end_time`).
           * a shipment may only be performed on a vehicle that is allowed. A
             vehicle is allowed if
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices]
             is empty or its `vehicle_index` is included in
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices].
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute injected_first_solution_routes = 7;
        Specified by:
        getInjectedFirstSolutionRoutes in interface OptimizeToursRequestOrBuilder
      • getInjectedFirstSolutionRoutesOrBuilder

        public ShipmentRouteOrBuilder getInjectedFirstSolutionRoutesOrBuilder​(int index)
         Guide the optimization algorithm in finding a first solution that is
         similar to a previous solution.
        
         The model is constrained when the first solution is built.
         Any shipments not performed on a route are implicitly skipped in the first
         solution, but they may be performed in successive solutions.
        
         The solution must satisfy some basic validity assumptions:
        
           * for all routes, `vehicle_index` must be in range and not be duplicated.
           * for all visits, `shipment_index` and `visit_request_index` must be
             in range.
           * a shipment may only be referenced on one route.
           * the pickup of a pickup-delivery shipment must be performed before
             the delivery.
           * no more than one pickup alternative or delivery alternative of
             a shipment may be performed.
           * for all routes, times are increasing (i.e., `vehicle_start_time
             <= visits[0].start_time <= visits[1].start_time ...
             <= vehicle_end_time`).
           * a shipment may only be performed on a vehicle that is allowed. A
             vehicle is allowed if
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices]
             is empty or its `vehicle_index` is included in
             [Shipment.allowed_vehicle_indices][google.cloud.optimization.v1.Shipment.allowed_vehicle_indices].
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute injected_first_solution_routes = 7;
        Specified by:
        getInjectedFirstSolutionRoutesOrBuilder in interface OptimizeToursRequestOrBuilder
      • hasInjectedSolutionConstraint

        public boolean hasInjectedSolutionConstraint()
         Constrain the optimization algorithm to find a final solution that is
         similar to a previous solution. For example, this may be used to freeze
         portions of routes which have already been completed or which are to be
         completed but must not be modified.
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        .google.cloud.optimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
        Specified by:
        hasInjectedSolutionConstraint in interface OptimizeToursRequestOrBuilder
        Returns:
        Whether the injectedSolutionConstraint field is set.
      • getInjectedSolutionConstraint

        public InjectedSolutionConstraint getInjectedSolutionConstraint()
         Constrain the optimization algorithm to find a final solution that is
         similar to a previous solution. For example, this may be used to freeze
         portions of routes which have already been completed or which are to be
         completed but must not be modified.
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        .google.cloud.optimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
        Specified by:
        getInjectedSolutionConstraint in interface OptimizeToursRequestOrBuilder
        Returns:
        The injectedSolutionConstraint.
      • getInjectedSolutionConstraintOrBuilder

        public InjectedSolutionConstraintOrBuilder getInjectedSolutionConstraintOrBuilder()
         Constrain the optimization algorithm to find a final solution that is
         similar to a previous solution. For example, this may be used to freeze
         portions of routes which have already been completed or which are to be
         completed but must not be modified.
        
         If the injected solution is not feasible, a validation error is not
         necessarily returned and an error indicating infeasibility may be returned
         instead.
         
        .google.cloud.optimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
        Specified by:
        getInjectedSolutionConstraintOrBuilder in interface OptimizeToursRequestOrBuilder
      • getRefreshDetailsRoutesList

        public List<ShipmentRoute> getRefreshDetailsRoutesList()
         If non-empty, the given routes will be refreshed, without modifying their
         underlying sequence of visits or travel times: only other details will be
         updated. This does not solve the model.
        
         As of 2020/11, this only populates the polylines of non-empty routes and
         requires that `populate_polylines` is true.
        
         The `route_polyline` fields of the passed-in routes may be inconsistent
         with route `transitions`.
        
         This field must not be used together with `injected_first_solution_routes`
         or `injected_solution_constraint`.
        
         `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
         Polylines are still populated between all visits in all non-empty routes
         regardless of whether the related shipments or vehicles are ignored.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute refresh_details_routes = 9;
        Specified by:
        getRefreshDetailsRoutesList in interface OptimizeToursRequestOrBuilder
      • getRefreshDetailsRoutesOrBuilderList

        public List<? extends ShipmentRouteOrBuilder> getRefreshDetailsRoutesOrBuilderList()
         If non-empty, the given routes will be refreshed, without modifying their
         underlying sequence of visits or travel times: only other details will be
         updated. This does not solve the model.
        
         As of 2020/11, this only populates the polylines of non-empty routes and
         requires that `populate_polylines` is true.
        
         The `route_polyline` fields of the passed-in routes may be inconsistent
         with route `transitions`.
        
         This field must not be used together with `injected_first_solution_routes`
         or `injected_solution_constraint`.
        
         `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
         Polylines are still populated between all visits in all non-empty routes
         regardless of whether the related shipments or vehicles are ignored.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute refresh_details_routes = 9;
        Specified by:
        getRefreshDetailsRoutesOrBuilderList in interface OptimizeToursRequestOrBuilder
      • getRefreshDetailsRoutesCount

        public int getRefreshDetailsRoutesCount()
         If non-empty, the given routes will be refreshed, without modifying their
         underlying sequence of visits or travel times: only other details will be
         updated. This does not solve the model.
        
         As of 2020/11, this only populates the polylines of non-empty routes and
         requires that `populate_polylines` is true.
        
         The `route_polyline` fields of the passed-in routes may be inconsistent
         with route `transitions`.
        
         This field must not be used together with `injected_first_solution_routes`
         or `injected_solution_constraint`.
        
         `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
         Polylines are still populated between all visits in all non-empty routes
         regardless of whether the related shipments or vehicles are ignored.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute refresh_details_routes = 9;
        Specified by:
        getRefreshDetailsRoutesCount in interface OptimizeToursRequestOrBuilder
      • getRefreshDetailsRoutes

        public ShipmentRoute getRefreshDetailsRoutes​(int index)
         If non-empty, the given routes will be refreshed, without modifying their
         underlying sequence of visits or travel times: only other details will be
         updated. This does not solve the model.
        
         As of 2020/11, this only populates the polylines of non-empty routes and
         requires that `populate_polylines` is true.
        
         The `route_polyline` fields of the passed-in routes may be inconsistent
         with route `transitions`.
        
         This field must not be used together with `injected_first_solution_routes`
         or `injected_solution_constraint`.
        
         `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
         Polylines are still populated between all visits in all non-empty routes
         regardless of whether the related shipments or vehicles are ignored.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute refresh_details_routes = 9;
        Specified by:
        getRefreshDetailsRoutes in interface OptimizeToursRequestOrBuilder
      • getRefreshDetailsRoutesOrBuilder

        public ShipmentRouteOrBuilder getRefreshDetailsRoutesOrBuilder​(int index)
         If non-empty, the given routes will be refreshed, without modifying their
         underlying sequence of visits or travel times: only other details will be
         updated. This does not solve the model.
        
         As of 2020/11, this only populates the polylines of non-empty routes and
         requires that `populate_polylines` is true.
        
         The `route_polyline` fields of the passed-in routes may be inconsistent
         with route `transitions`.
        
         This field must not be used together with `injected_first_solution_routes`
         or `injected_solution_constraint`.
        
         `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
         Polylines are still populated between all visits in all non-empty routes
         regardless of whether the related shipments or vehicles are ignored.
         
        repeated .google.cloud.optimization.v1.ShipmentRoute refresh_details_routes = 9;
        Specified by:
        getRefreshDetailsRoutesOrBuilder in interface OptimizeToursRequestOrBuilder
      • getInterpretInjectedSolutionsUsingLabels

        public boolean getInterpretInjectedSolutionsUsingLabels()
         If true:
        
           * uses
           [ShipmentRoute.vehicle_label][google.cloud.optimization.v1.ShipmentRoute.vehicle_label]
           instead of `vehicle_index` to
             match routes in an injected solution with vehicles in the request;
             reuses the mapping of original
             [ShipmentRoute.vehicle_index][google.cloud.optimization.v1.ShipmentRoute.vehicle_index]
             to new
             [ShipmentRoute.vehicle_index][google.cloud.optimization.v1.ShipmentRoute.vehicle_index]
             to update
             [ConstraintRelaxation.vehicle_indices][google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices]
             if non-empty, but the mapping must be unambiguous (i.e., multiple
             `ShipmentRoute`s must not share the same original `vehicle_index`).
           * uses
           [ShipmentRoute.Visit.shipment_label][google.cloud.optimization.v1.ShipmentRoute.Visit.shipment_label]
           instead of `shipment_index`
             to match visits in an injected solution with shipments in the request;
           * uses
           [SkippedShipment.label][google.cloud.optimization.v1.SkippedShipment.label]
           instead of
           [SkippedShipment.index][google.cloud.optimization.v1.SkippedShipment.index]
           to
             match skipped shipments in the injected solution with request
             shipments.
        
         This interpretation applies to the `injected_first_solution_routes`,
         `injected_solution_constraint`, and `refresh_details_routes` fields.
         It can be used when shipment or vehicle indices in the request have
         changed since the solution was created, perhaps because shipments or
         vehicles have been removed from or added to the request.
        
         If true, labels in the following categories must appear at most once in
         their category:
        
           * [Vehicle.label][google.cloud.optimization.v1.Vehicle.label] in the
           request;
           * [Shipment.label][google.cloud.optimization.v1.Shipment.label] in the
           request;
           * [ShipmentRoute.vehicle_label][google.cloud.optimization.v1.ShipmentRoute.vehicle_label] in the injected solution;
           * [SkippedShipment.label][google.cloud.optimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.cloud.optimization.v1.ShipmentRoute.Visit.shipment_label] in
             the injected solution (except pickup/delivery visit pairs, whose
             `shipment_label` must appear twice).
        
         If a `vehicle_label` in the injected solution does not correspond to a
         request vehicle, the corresponding route is removed from the solution
         along with its visits. If a `shipment_label` in the injected solution does
         not correspond to a request shipment, the corresponding visit is removed
         from the solution. If a
         [SkippedShipment.label][google.cloud.optimization.v1.SkippedShipment.label]
         in the injected solution does not correspond to a request shipment, the
         `SkippedShipment` is removed from the solution.
        
         Removing route visits or entire routes from an injected solution may
         have an effect on the implied constraints, which may lead to change in
         solution, validation errors, or infeasibility.
        
         NOTE: The caller must ensure that each
         [Vehicle.label][google.cloud.optimization.v1.Vehicle.label] (resp.
         [Shipment.label][google.cloud.optimization.v1.Shipment.label]) uniquely
         identifies a vehicle (resp. shipment) entity used across the two relevant
         requests: the past request that produced the `OptimizeToursResponse` used
         in the injected solution and the current request that includes the injected
         solution. The uniqueness checks described above are not enough to guarantee
         this requirement.
         
        bool interpret_injected_solutions_using_labels = 10;
        Specified by:
        getInterpretInjectedSolutionsUsingLabels in interface OptimizeToursRequestOrBuilder
        Returns:
        The interpretInjectedSolutionsUsingLabels.
      • getConsiderRoadTraffic

        public boolean getConsiderRoadTraffic()
         Consider traffic estimation in calculating `ShipmentRoute` fields
         [Transition.travel_duration][google.cloud.optimization.v1.ShipmentRoute.Transition.travel_duration],
         [Visit.start_time][google.cloud.optimization.v1.ShipmentRoute.Visit.start_time],
         and `vehicle_end_time`; in setting the
         [ShipmentRoute.has_traffic_infeasibilities][google.cloud.optimization.v1.ShipmentRoute.has_traffic_infeasibilities]
         field, and in calculating the
         [OptimizeToursResponse.total_cost][google.cloud.optimization.v1.OptimizeToursResponse.total_cost]
         field.
         
        bool consider_road_traffic = 11;
        Specified by:
        getConsiderRoadTraffic in interface OptimizeToursRequestOrBuilder
        Returns:
        The considerRoadTraffic.
      • getPopulatePolylines

        public boolean getPopulatePolylines()
         If true, polylines will be populated in response `ShipmentRoute`s.
         
        bool populate_polylines = 12;
        Specified by:
        getPopulatePolylines in interface OptimizeToursRequestOrBuilder
        Returns:
        The populatePolylines.
      • getPopulateTransitionPolylines

        public boolean getPopulateTransitionPolylines()
         If true, polylines will be populated in response
         [ShipmentRoute.transitions][google.cloud.optimization.v1.ShipmentRoute.transitions].
         Note that in this case, the polylines will also be populated in the
         deprecated `travel_steps`.
         
        bool populate_transition_polylines = 13;
        Specified by:
        getPopulateTransitionPolylines in interface OptimizeToursRequestOrBuilder
        Returns:
        The populateTransitionPolylines.
      • getAllowLargeDeadlineDespiteInterruptionRisk

        public boolean getAllowLargeDeadlineDespiteInterruptionRisk()
         If this is set, then the request can have a deadline
         (see https://grpc.io/blog/deadlines) of up to 60 minutes.
         Otherwise, the maximum deadline is only 30 minutes.
         Note that long-lived requests have a significantly larger (but still small)
         risk of interruption.
         
        bool allow_large_deadline_despite_interruption_risk = 14;
        Specified by:
        getAllowLargeDeadlineDespiteInterruptionRisk in interface OptimizeToursRequestOrBuilder
        Returns:
        The allowLargeDeadlineDespiteInterruptionRisk.
      • getUseGeodesicDistances

        public boolean getUseGeodesicDistances()
         If true, travel distances will be computed using geodesic distances instead
         of Google Maps distances, and travel times will be computed using geodesic
         distances with a speed defined by `geodesic_meters_per_second`.
         
        bool use_geodesic_distances = 15;
        Specified by:
        getUseGeodesicDistances in interface OptimizeToursRequestOrBuilder
        Returns:
        The useGeodesicDistances.
      • hasGeodesicMetersPerSecond

        public boolean hasGeodesicMetersPerSecond()
         When `use_geodesic_distances` is true, this field must be set and defines
         the speed applied to compute travel times. Its value must be at least 1.0
         meters/seconds.
         
        optional double geodesic_meters_per_second = 16;
        Specified by:
        hasGeodesicMetersPerSecond in interface OptimizeToursRequestOrBuilder
        Returns:
        Whether the geodesicMetersPerSecond field is set.
      • getGeodesicMetersPerSecond

        public double getGeodesicMetersPerSecond()
         When `use_geodesic_distances` is true, this field must be set and defines
         the speed applied to compute travel times. Its value must be at least 1.0
         meters/seconds.
         
        optional double geodesic_meters_per_second = 16;
        Specified by:
        getGeodesicMetersPerSecond in interface OptimizeToursRequestOrBuilder
        Returns:
        The geodesicMetersPerSecond.
      • hasMaxValidationErrors

        public boolean hasMaxValidationErrors()
         Truncates the number of validation errors returned. These errors are
         typically attached to an INVALID_ARGUMENT error payload as a BadRequest
         error detail (https://cloud.google.com/apis/design/errors#error_details),
         unless solving_mode=VALIDATE_ONLY: see the
         [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]
         field.
         This defaults to 100 and is capped at 10,000.
         
        optional int32 max_validation_errors = 5;
        Specified by:
        hasMaxValidationErrors in interface OptimizeToursRequestOrBuilder
        Returns:
        Whether the maxValidationErrors field is set.
      • getMaxValidationErrors

        public int getMaxValidationErrors()
         Truncates the number of validation errors returned. These errors are
         typically attached to an INVALID_ARGUMENT error payload as a BadRequest
         error detail (https://cloud.google.com/apis/design/errors#error_details),
         unless solving_mode=VALIDATE_ONLY: see the
         [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]
         field.
         This defaults to 100 and is capped at 10,000.
         
        optional int32 max_validation_errors = 5;
        Specified by:
        getMaxValidationErrors in interface OptimizeToursRequestOrBuilder
        Returns:
        The maxValidationErrors.
      • getLabel

        public String getLabel()
         Label that may be used to identify this request, reported back in the
         [OptimizeToursResponse.request_label][google.cloud.optimization.v1.OptimizeToursResponse.request_label].
         
        string label = 17;
        Specified by:
        getLabel in interface OptimizeToursRequestOrBuilder
        Returns:
        The label.
      • getLabelBytes

        public com.google.protobuf.ByteString getLabelBytes()
         Label that may be used to identify this request, reported back in the
         [OptimizeToursResponse.request_label][google.cloud.optimization.v1.OptimizeToursResponse.request_label].
         
        string label = 17;
        Specified by:
        getLabelBytes in interface OptimizeToursRequestOrBuilder
        Returns:
        The bytes for label.
      • getPopulateTravelStepPolylines

        @Deprecated
        public boolean getPopulateTravelStepPolylines()
        Deprecated.
        google.cloud.optimization.v1.OptimizeToursRequest.populate_travel_step_polylines is deprecated. See google/cloud/optimization/v1/fleet_routing.proto;l=359
         Deprecated: Use
         [OptimizeToursRequest.populate_transition_polylines][google.cloud.optimization.v1.OptimizeToursRequest.populate_transition_polylines]
         instead. If true, polylines will be populated in response
         [ShipmentRoute.transitions][google.cloud.optimization.v1.ShipmentRoute.transitions].
         Note that in this case, the polylines will also be populated in the
         deprecated `travel_steps`.
         
        bool populate_travel_step_polylines = 20 [deprecated = true];
        Specified by:
        getPopulateTravelStepPolylines in interface OptimizeToursRequestOrBuilder
        Returns:
        The populateTravelStepPolylines.
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static OptimizeToursRequest parseFrom​(ByteBuffer data)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static OptimizeToursRequest parseFrom​(ByteBuffer data,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static OptimizeToursRequest parseFrom​(com.google.protobuf.ByteString data)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static OptimizeToursRequest parseFrom​(com.google.protobuf.ByteString data,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static OptimizeToursRequest parseFrom​(byte[] data)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static OptimizeToursRequest parseFrom​(byte[] data,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                              throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • newBuilderForType

        public OptimizeToursRequest.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • toBuilder

        public OptimizeToursRequest.Builder toBuilder()
        Specified by:
        toBuilder in interface com.google.protobuf.Message
        Specified by:
        toBuilder in interface com.google.protobuf.MessageLite
      • newBuilderForType

        protected OptimizeToursRequest.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getParserForType

        public com.google.protobuf.Parser<OptimizeToursRequest> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public OptimizeToursRequest getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder