Class OptimizeToursRequest.Builder

  • All Implemented Interfaces:
    OptimizeToursRequestOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
    Enclosing class:
    OptimizeToursRequest

    public static final class OptimizeToursRequest.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
    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
    • Method Detail

      • 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.Builder<OptimizeToursRequest.Builder>
      • clear

        public OptimizeToursRequest.Builder clear()
        Specified by:
        clear in interface com.google.protobuf.Message.Builder
        Specified by:
        clear in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clear in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        Specified by:
        getDescriptorForType in interface com.google.protobuf.Message.Builder
        Specified by:
        getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • getDefaultInstanceForType

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

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

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

        public OptimizeToursRequest.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • setField

        public OptimizeToursRequest.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                     Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • clearField

        public OptimizeToursRequest.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • clearOneof

        public OptimizeToursRequest.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • setRepeatedField

        public OptimizeToursRequest.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                             int index,
                                                             Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • addRepeatedField

        public OptimizeToursRequest.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                             Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • mergeFrom

        public OptimizeToursRequest.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                               throws IOException
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Specified by:
        mergeFrom in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<OptimizeToursRequest.Builder>
        Throws:
        IOException
      • 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.
      • setParent

        public OptimizeToursRequest.Builder setParent​(String value)
         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];
        Parameters:
        value - The parent to set.
        Returns:
        This builder for chaining.
      • clearParent

        public OptimizeToursRequest.Builder clearParent()
         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];
        Returns:
        This builder for chaining.
      • setParentBytes

        public OptimizeToursRequest.Builder setParentBytes​(com.google.protobuf.ByteString value)
         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];
        Parameters:
        value - The bytes for parent to set.
        Returns:
        This builder for chaining.
      • 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.
      • setTimeout

        public OptimizeToursRequest.Builder setTimeout​(com.google.protobuf.Duration value)
         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;
      • setTimeout

        public OptimizeToursRequest.Builder setTimeout​(com.google.protobuf.Duration.Builder builderForValue)
         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;
      • mergeTimeout

        public OptimizeToursRequest.Builder mergeTimeout​(com.google.protobuf.Duration value)
         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;
      • clearTimeout

        public OptimizeToursRequest.Builder clearTimeout()
         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;
      • getTimeoutBuilder

        public com.google.protobuf.Duration.Builder getTimeoutBuilder()
         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;
      • 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.
      • clearModel

        public OptimizeToursRequest.Builder clearModel()
         Shipment model to solve.
         
        .google.cloud.optimization.v1.ShipmentModel model = 3;
      • getModelBuilder

        public ShipmentModel.Builder getModelBuilder()
         Shipment model to solve.
         
        .google.cloud.optimization.v1.ShipmentModel model = 3;
      • 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.
      • setSolvingModeValue

        public OptimizeToursRequest.Builder setSolvingModeValue​(int value)
         By default, the solving mode is `DEFAULT_SOLVE` (0).
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
        Parameters:
        value - The enum numeric value on the wire for solvingMode to set.
        Returns:
        This builder for chaining.
      • setSolvingMode

        public OptimizeToursRequest.Builder setSolvingMode​(OptimizeToursRequest.SolvingMode value)
         By default, the solving mode is `DEFAULT_SOLVE` (0).
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
        Parameters:
        value - The solvingMode to set.
        Returns:
        This builder for chaining.
      • clearSolvingMode

        public OptimizeToursRequest.Builder clearSolvingMode()
         By default, the solving mode is `DEFAULT_SOLVE` (0).
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
        Returns:
        This builder for chaining.
      • 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.
      • setSearchModeValue

        public OptimizeToursRequest.Builder setSearchModeValue​(int value)
         Search mode used to solve the request.
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
        Parameters:
        value - The enum numeric value on the wire for searchMode to set.
        Returns:
        This builder for chaining.
      • setSearchMode

        public OptimizeToursRequest.Builder setSearchMode​(OptimizeToursRequest.SearchMode value)
         Search mode used to solve the request.
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
        Parameters:
        value - The searchMode to set.
        Returns:
        This builder for chaining.
      • clearSearchMode

        public OptimizeToursRequest.Builder clearSearchMode()
         Search mode used to solve the request.
         
        .google.cloud.optimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
        Returns:
        This builder for chaining.
      • 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
      • 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
      • setInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder setInjectedFirstSolutionRoutes​(int index,
                                                                           ShipmentRoute value)
         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;
      • setInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder setInjectedFirstSolutionRoutes​(int index,
                                                                           ShipmentRoute.Builder builderForValue)
         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;
      • addInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder addInjectedFirstSolutionRoutes​(ShipmentRoute value)
         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;
      • addInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder addInjectedFirstSolutionRoutes​(int index,
                                                                           ShipmentRoute value)
         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;
      • addInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder addInjectedFirstSolutionRoutes​(ShipmentRoute.Builder builderForValue)
         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;
      • addInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder addInjectedFirstSolutionRoutes​(int index,
                                                                           ShipmentRoute.Builder builderForValue)
         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;
      • addAllInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder addAllInjectedFirstSolutionRoutes​(Iterable<? extends ShipmentRoute> values)
         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;
      • clearInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder clearInjectedFirstSolutionRoutes()
         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;
      • removeInjectedFirstSolutionRoutes

        public OptimizeToursRequest.Builder removeInjectedFirstSolutionRoutes​(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;
      • getInjectedFirstSolutionRoutesBuilder

        public ShipmentRoute.Builder getInjectedFirstSolutionRoutesBuilder​(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;
      • 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
      • 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
      • addInjectedFirstSolutionRoutesBuilder

        public ShipmentRoute.Builder addInjectedFirstSolutionRoutesBuilder()
         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;
      • addInjectedFirstSolutionRoutesBuilder

        public ShipmentRoute.Builder addInjectedFirstSolutionRoutesBuilder​(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;
      • getInjectedFirstSolutionRoutesBuilderList

        public List<ShipmentRoute.Builder> getInjectedFirstSolutionRoutesBuilderList()
         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;
      • 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.
      • setInjectedSolutionConstraint

        public OptimizeToursRequest.Builder setInjectedSolutionConstraint​(InjectedSolutionConstraint value)
         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;
      • setInjectedSolutionConstraint

        public OptimizeToursRequest.Builder setInjectedSolutionConstraint​(InjectedSolutionConstraint.Builder builderForValue)
         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;
      • mergeInjectedSolutionConstraint

        public OptimizeToursRequest.Builder mergeInjectedSolutionConstraint​(InjectedSolutionConstraint value)
         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;
      • clearInjectedSolutionConstraint

        public OptimizeToursRequest.Builder clearInjectedSolutionConstraint()
         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;
      • getInjectedSolutionConstraintBuilder

        public InjectedSolutionConstraint.Builder getInjectedSolutionConstraintBuilder()
         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;
      • 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
      • 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
      • setRefreshDetailsRoutes

        public OptimizeToursRequest.Builder setRefreshDetailsRoutes​(int index,
                                                                    ShipmentRoute value)
         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;
      • setRefreshDetailsRoutes

        public OptimizeToursRequest.Builder setRefreshDetailsRoutes​(int index,
                                                                    ShipmentRoute.Builder builderForValue)
         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;
      • addRefreshDetailsRoutes

        public OptimizeToursRequest.Builder addRefreshDetailsRoutes​(ShipmentRoute value)
         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;
      • addRefreshDetailsRoutes

        public OptimizeToursRequest.Builder addRefreshDetailsRoutes​(int index,
                                                                    ShipmentRoute value)
         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;
      • addRefreshDetailsRoutes

        public OptimizeToursRequest.Builder addRefreshDetailsRoutes​(ShipmentRoute.Builder builderForValue)
         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;
      • addRefreshDetailsRoutes

        public OptimizeToursRequest.Builder addRefreshDetailsRoutes​(int index,
                                                                    ShipmentRoute.Builder builderForValue)
         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;
      • addAllRefreshDetailsRoutes

        public OptimizeToursRequest.Builder addAllRefreshDetailsRoutes​(Iterable<? extends ShipmentRoute> values)
         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;
      • clearRefreshDetailsRoutes

        public OptimizeToursRequest.Builder clearRefreshDetailsRoutes()
         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;
      • removeRefreshDetailsRoutes

        public OptimizeToursRequest.Builder removeRefreshDetailsRoutes​(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;
      • getRefreshDetailsRoutesBuilder

        public ShipmentRoute.Builder getRefreshDetailsRoutesBuilder​(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;
      • 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
      • 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
      • addRefreshDetailsRoutesBuilder

        public ShipmentRoute.Builder addRefreshDetailsRoutesBuilder()
         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;
      • addRefreshDetailsRoutesBuilder

        public ShipmentRoute.Builder addRefreshDetailsRoutesBuilder​(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;
      • getRefreshDetailsRoutesBuilderList

        public List<ShipmentRoute.Builder> getRefreshDetailsRoutesBuilderList()
         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;
      • 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.
      • setInterpretInjectedSolutionsUsingLabels

        public OptimizeToursRequest.Builder setInterpretInjectedSolutionsUsingLabels​(boolean value)
         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;
        Parameters:
        value - The interpretInjectedSolutionsUsingLabels to set.
        Returns:
        This builder for chaining.
      • clearInterpretInjectedSolutionsUsingLabels

        public OptimizeToursRequest.Builder clearInterpretInjectedSolutionsUsingLabels()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setConsiderRoadTraffic

        public OptimizeToursRequest.Builder setConsiderRoadTraffic​(boolean value)
         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;
        Parameters:
        value - The considerRoadTraffic to set.
        Returns:
        This builder for chaining.
      • clearConsiderRoadTraffic

        public OptimizeToursRequest.Builder clearConsiderRoadTraffic()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setPopulatePolylines

        public OptimizeToursRequest.Builder setPopulatePolylines​(boolean value)
         If true, polylines will be populated in response `ShipmentRoute`s.
         
        bool populate_polylines = 12;
        Parameters:
        value - The populatePolylines to set.
        Returns:
        This builder for chaining.
      • clearPopulatePolylines

        public OptimizeToursRequest.Builder clearPopulatePolylines()
         If true, polylines will be populated in response `ShipmentRoute`s.
         
        bool populate_polylines = 12;
        Returns:
        This builder for chaining.
      • 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.
      • setPopulateTransitionPolylines

        public OptimizeToursRequest.Builder setPopulateTransitionPolylines​(boolean value)
         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;
        Parameters:
        value - The populateTransitionPolylines to set.
        Returns:
        This builder for chaining.
      • clearPopulateTransitionPolylines

        public OptimizeToursRequest.Builder clearPopulateTransitionPolylines()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setAllowLargeDeadlineDespiteInterruptionRisk

        public OptimizeToursRequest.Builder setAllowLargeDeadlineDespiteInterruptionRisk​(boolean value)
         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;
        Parameters:
        value - The allowLargeDeadlineDespiteInterruptionRisk to set.
        Returns:
        This builder for chaining.
      • clearAllowLargeDeadlineDespiteInterruptionRisk

        public OptimizeToursRequest.Builder clearAllowLargeDeadlineDespiteInterruptionRisk()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setUseGeodesicDistances

        public OptimizeToursRequest.Builder setUseGeodesicDistances​(boolean value)
         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;
        Parameters:
        value - The useGeodesicDistances to set.
        Returns:
        This builder for chaining.
      • clearUseGeodesicDistances

        public OptimizeToursRequest.Builder clearUseGeodesicDistances()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setGeodesicMetersPerSecond

        public OptimizeToursRequest.Builder setGeodesicMetersPerSecond​(double value)
         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;
        Parameters:
        value - The geodesicMetersPerSecond to set.
        Returns:
        This builder for chaining.
      • clearGeodesicMetersPerSecond

        public OptimizeToursRequest.Builder clearGeodesicMetersPerSecond()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setMaxValidationErrors

        public OptimizeToursRequest.Builder setMaxValidationErrors​(int value)
         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;
        Parameters:
        value - The maxValidationErrors to set.
        Returns:
        This builder for chaining.
      • clearMaxValidationErrors

        public OptimizeToursRequest.Builder clearMaxValidationErrors()
         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;
        Returns:
        This builder for chaining.
      • 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.
      • setLabel

        public OptimizeToursRequest.Builder setLabel​(String value)
         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;
        Parameters:
        value - The label to set.
        Returns:
        This builder for chaining.
      • clearLabel

        public OptimizeToursRequest.Builder clearLabel()
         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;
        Returns:
        This builder for chaining.
      • setLabelBytes

        public OptimizeToursRequest.Builder setLabelBytes​(com.google.protobuf.ByteString value)
         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;
        Parameters:
        value - The bytes for label to set.
        Returns:
        This builder for chaining.
      • 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.
      • setPopulateTravelStepPolylines

        @Deprecated
        public OptimizeToursRequest.Builder setPopulateTravelStepPolylines​(boolean value)
        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];
        Parameters:
        value - The populateTravelStepPolylines to set.
        Returns:
        This builder for chaining.
      • clearPopulateTravelStepPolylines

        @Deprecated
        public OptimizeToursRequest.Builder clearPopulateTravelStepPolylines()
        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];
        Returns:
        This builder for chaining.
      • setUnknownFields

        public final OptimizeToursRequest.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>
      • mergeUnknownFields

        public final OptimizeToursRequest.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<OptimizeToursRequest.Builder>