Class ShipmentModel.Builder

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

    public static final class ShipmentModel.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<ShipmentModel.Builder>
    implements ShipmentModelOrBuilder
     A shipment model contains a set of shipments which must be performed by a
     set of vehicles, while minimizing the overall cost, which is the sum of:
    
     * the cost of routing the vehicles (sum of cost per total time, cost per
       travel time, and fixed cost over all vehicles).
     * the unperformed shipment penalties.
     * the cost of the global duration of the shipments
     
    Protobuf type google.cloud.optimization.v1.ShipmentModel
    • 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<ShipmentModel.Builder>
      • clear

        public ShipmentModel.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<ShipmentModel.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<ShipmentModel.Builder>
      • getDefaultInstanceForType

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

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

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

        public ShipmentModel.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<ShipmentModel.Builder>
      • setField

        public ShipmentModel.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<ShipmentModel.Builder>
      • clearField

        public ShipmentModel.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<ShipmentModel.Builder>
      • clearOneof

        public ShipmentModel.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<ShipmentModel.Builder>
      • setRepeatedField

        public ShipmentModel.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<ShipmentModel.Builder>
      • addRepeatedField

        public ShipmentModel.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<ShipmentModel.Builder>
      • mergeFrom

        public ShipmentModel.Builder mergeFrom​(com.google.protobuf.Message other)
        Specified by:
        mergeFrom in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ShipmentModel.Builder>
      • isInitialized

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

        public ShipmentModel.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<ShipmentModel.Builder>
        Throws:
        IOException
      • getShipmentsCount

        public int getShipmentsCount()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
        Specified by:
        getShipmentsCount in interface ShipmentModelOrBuilder
      • getShipments

        public Shipment getShipments​(int index)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
        Specified by:
        getShipments in interface ShipmentModelOrBuilder
      • setShipments

        public ShipmentModel.Builder setShipments​(int index,
                                                  Shipment value)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • setShipments

        public ShipmentModel.Builder setShipments​(int index,
                                                  Shipment.Builder builderForValue)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipments

        public ShipmentModel.Builder addShipments​(Shipment value)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipments

        public ShipmentModel.Builder addShipments​(int index,
                                                  Shipment value)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipments

        public ShipmentModel.Builder addShipments​(Shipment.Builder builderForValue)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipments

        public ShipmentModel.Builder addShipments​(int index,
                                                  Shipment.Builder builderForValue)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addAllShipments

        public ShipmentModel.Builder addAllShipments​(Iterable<? extends Shipment> values)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • clearShipments

        public ShipmentModel.Builder clearShipments()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • removeShipments

        public ShipmentModel.Builder removeShipments​(int index)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getShipmentsBuilder

        public Shipment.Builder getShipmentsBuilder​(int index)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipmentsBuilder

        public Shipment.Builder addShipmentsBuilder()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • addShipmentsBuilder

        public Shipment.Builder addShipmentsBuilder​(int index)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getShipmentsBuilderList

        public List<Shipment.Builder> getShipmentsBuilderList()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getVehiclesList

        public List<Vehicle> getVehiclesList()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
        Specified by:
        getVehiclesList in interface ShipmentModelOrBuilder
      • getVehiclesCount

        public int getVehiclesCount()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
        Specified by:
        getVehiclesCount in interface ShipmentModelOrBuilder
      • getVehicles

        public Vehicle getVehicles​(int index)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
        Specified by:
        getVehicles in interface ShipmentModelOrBuilder
      • setVehicles

        public ShipmentModel.Builder setVehicles​(int index,
                                                 Vehicle value)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • setVehicles

        public ShipmentModel.Builder setVehicles​(int index,
                                                 Vehicle.Builder builderForValue)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehicles

        public ShipmentModel.Builder addVehicles​(Vehicle value)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehicles

        public ShipmentModel.Builder addVehicles​(int index,
                                                 Vehicle value)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehicles

        public ShipmentModel.Builder addVehicles​(Vehicle.Builder builderForValue)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehicles

        public ShipmentModel.Builder addVehicles​(int index,
                                                 Vehicle.Builder builderForValue)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addAllVehicles

        public ShipmentModel.Builder addAllVehicles​(Iterable<? extends Vehicle> values)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • clearVehicles

        public ShipmentModel.Builder clearVehicles()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • removeVehicles

        public ShipmentModel.Builder removeVehicles​(int index)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • getVehiclesBuilder

        public Vehicle.Builder getVehiclesBuilder​(int index)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehiclesBuilder

        public Vehicle.Builder addVehiclesBuilder()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • addVehiclesBuilder

        public Vehicle.Builder addVehiclesBuilder​(int index)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • getVehiclesBuilderList

        public List<Vehicle.Builder> getVehiclesBuilderList()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • hasMaxActiveVehicles

        public boolean hasMaxActiveVehicles()
         Constrains the maximum number of active vehicles. A vehicle is active if
         its route performs at least one shipment. This can be used to limit the
         number of routes in the case where there are fewer drivers than
         vehicles and that the fleet of vehicles is heterogeneous. The optimization
         will then select the best subset of vehicles to use.
         Must be strictly positive.
         
        optional int32 max_active_vehicles = 4;
        Specified by:
        hasMaxActiveVehicles in interface ShipmentModelOrBuilder
        Returns:
        Whether the maxActiveVehicles field is set.
      • getMaxActiveVehicles

        public int getMaxActiveVehicles()
         Constrains the maximum number of active vehicles. A vehicle is active if
         its route performs at least one shipment. This can be used to limit the
         number of routes in the case where there are fewer drivers than
         vehicles and that the fleet of vehicles is heterogeneous. The optimization
         will then select the best subset of vehicles to use.
         Must be strictly positive.
         
        optional int32 max_active_vehicles = 4;
        Specified by:
        getMaxActiveVehicles in interface ShipmentModelOrBuilder
        Returns:
        The maxActiveVehicles.
      • setMaxActiveVehicles

        public ShipmentModel.Builder setMaxActiveVehicles​(int value)
         Constrains the maximum number of active vehicles. A vehicle is active if
         its route performs at least one shipment. This can be used to limit the
         number of routes in the case where there are fewer drivers than
         vehicles and that the fleet of vehicles is heterogeneous. The optimization
         will then select the best subset of vehicles to use.
         Must be strictly positive.
         
        optional int32 max_active_vehicles = 4;
        Parameters:
        value - The maxActiveVehicles to set.
        Returns:
        This builder for chaining.
      • clearMaxActiveVehicles

        public ShipmentModel.Builder clearMaxActiveVehicles()
         Constrains the maximum number of active vehicles. A vehicle is active if
         its route performs at least one shipment. This can be used to limit the
         number of routes in the case where there are fewer drivers than
         vehicles and that the fleet of vehicles is heterogeneous. The optimization
         will then select the best subset of vehicles to use.
         Must be strictly positive.
         
        optional int32 max_active_vehicles = 4;
        Returns:
        This builder for chaining.
      • hasGlobalStartTime

        public boolean hasGlobalStartTime()
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
        Specified by:
        hasGlobalStartTime in interface ShipmentModelOrBuilder
        Returns:
        Whether the globalStartTime field is set.
      • getGlobalStartTime

        public com.google.protobuf.Timestamp getGlobalStartTime()
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
        Specified by:
        getGlobalStartTime in interface ShipmentModelOrBuilder
        Returns:
        The globalStartTime.
      • setGlobalStartTime

        public ShipmentModel.Builder setGlobalStartTime​(com.google.protobuf.Timestamp value)
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
      • setGlobalStartTime

        public ShipmentModel.Builder setGlobalStartTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
      • mergeGlobalStartTime

        public ShipmentModel.Builder mergeGlobalStartTime​(com.google.protobuf.Timestamp value)
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
      • clearGlobalStartTime

        public ShipmentModel.Builder clearGlobalStartTime()
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
      • getGlobalStartTimeBuilder

        public com.google.protobuf.Timestamp.Builder getGlobalStartTimeBuilder()
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
      • getGlobalStartTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getGlobalStartTimeOrBuilder()
         Global start and end time of the model: no times outside of this range
         can be considered valid.
        
         The model's time span must be less than a year, i.e. the `global_end_time`
         and the `global_start_time` must be within 31536000 seconds of each other.
        
         When using `cost_per_*hour` fields, you might want to set this window to a
         smaller interval to increase performance (eg. if you model a single day,
         you should set the global time limits to that day).
         If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
         as default.
         
        .google.protobuf.Timestamp global_start_time = 5;
        Specified by:
        getGlobalStartTimeOrBuilder in interface ShipmentModelOrBuilder
      • hasGlobalEndTime

        public boolean hasGlobalEndTime()
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
        Specified by:
        hasGlobalEndTime in interface ShipmentModelOrBuilder
        Returns:
        Whether the globalEndTime field is set.
      • getGlobalEndTime

        public com.google.protobuf.Timestamp getGlobalEndTime()
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
        Specified by:
        getGlobalEndTime in interface ShipmentModelOrBuilder
        Returns:
        The globalEndTime.
      • setGlobalEndTime

        public ShipmentModel.Builder setGlobalEndTime​(com.google.protobuf.Timestamp value)
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
      • setGlobalEndTime

        public ShipmentModel.Builder setGlobalEndTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
      • mergeGlobalEndTime

        public ShipmentModel.Builder mergeGlobalEndTime​(com.google.protobuf.Timestamp value)
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
      • clearGlobalEndTime

        public ShipmentModel.Builder clearGlobalEndTime()
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
      • getGlobalEndTimeBuilder

        public com.google.protobuf.Timestamp.Builder getGlobalEndTimeBuilder()
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
      • getGlobalEndTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getGlobalEndTimeOrBuilder()
         If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
         is used as default.
         
        .google.protobuf.Timestamp global_end_time = 6;
        Specified by:
        getGlobalEndTimeOrBuilder in interface ShipmentModelOrBuilder
      • getGlobalDurationCostPerHour

        public double getGlobalDurationCostPerHour()
         The "global duration" of the overall plan is the difference between the
         earliest effective start time and the latest effective end time of
         all vehicles. Users can assign a cost per hour to that quantity to try
         and optimize for earliest job completion, for example. This cost must be in
         the same unit as
         [Shipment.penalty_cost][google.cloud.optimization.v1.Shipment.penalty_cost].
         
        double global_duration_cost_per_hour = 7;
        Specified by:
        getGlobalDurationCostPerHour in interface ShipmentModelOrBuilder
        Returns:
        The globalDurationCostPerHour.
      • setGlobalDurationCostPerHour

        public ShipmentModel.Builder setGlobalDurationCostPerHour​(double value)
         The "global duration" of the overall plan is the difference between the
         earliest effective start time and the latest effective end time of
         all vehicles. Users can assign a cost per hour to that quantity to try
         and optimize for earliest job completion, for example. This cost must be in
         the same unit as
         [Shipment.penalty_cost][google.cloud.optimization.v1.Shipment.penalty_cost].
         
        double global_duration_cost_per_hour = 7;
        Parameters:
        value - The globalDurationCostPerHour to set.
        Returns:
        This builder for chaining.
      • clearGlobalDurationCostPerHour

        public ShipmentModel.Builder clearGlobalDurationCostPerHour()
         The "global duration" of the overall plan is the difference between the
         earliest effective start time and the latest effective end time of
         all vehicles. Users can assign a cost per hour to that quantity to try
         and optimize for earliest job completion, for example. This cost must be in
         the same unit as
         [Shipment.penalty_cost][google.cloud.optimization.v1.Shipment.penalty_cost].
         
        double global_duration_cost_per_hour = 7;
        Returns:
        This builder for chaining.
      • getDurationDistanceMatricesList

        public List<ShipmentModel.DurationDistanceMatrix> getDurationDistanceMatricesList()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
        Specified by:
        getDurationDistanceMatricesList in interface ShipmentModelOrBuilder
      • getDurationDistanceMatricesCount

        public int getDurationDistanceMatricesCount()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
        Specified by:
        getDurationDistanceMatricesCount in interface ShipmentModelOrBuilder
      • getDurationDistanceMatrices

        public ShipmentModel.DurationDistanceMatrix getDurationDistanceMatrices​(int index)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
        Specified by:
        getDurationDistanceMatrices in interface ShipmentModelOrBuilder
      • setDurationDistanceMatrices

        public ShipmentModel.Builder setDurationDistanceMatrices​(int index,
                                                                 ShipmentModel.DurationDistanceMatrix value)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • setDurationDistanceMatrices

        public ShipmentModel.Builder setDurationDistanceMatrices​(int index,
                                                                 ShipmentModel.DurationDistanceMatrix.Builder builderForValue)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addDurationDistanceMatrices

        public ShipmentModel.Builder addDurationDistanceMatrices​(ShipmentModel.DurationDistanceMatrix value)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addDurationDistanceMatrices

        public ShipmentModel.Builder addDurationDistanceMatrices​(int index,
                                                                 ShipmentModel.DurationDistanceMatrix value)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addDurationDistanceMatrices

        public ShipmentModel.Builder addDurationDistanceMatrices​(ShipmentModel.DurationDistanceMatrix.Builder builderForValue)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addDurationDistanceMatrices

        public ShipmentModel.Builder addDurationDistanceMatrices​(int index,
                                                                 ShipmentModel.DurationDistanceMatrix.Builder builderForValue)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addAllDurationDistanceMatrices

        public ShipmentModel.Builder addAllDurationDistanceMatrices​(Iterable<? extends ShipmentModel.DurationDistanceMatrix> values)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • clearDurationDistanceMatrices

        public ShipmentModel.Builder clearDurationDistanceMatrices()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • removeDurationDistanceMatrices

        public ShipmentModel.Builder removeDurationDistanceMatrices​(int index)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • getDurationDistanceMatricesBuilder

        public ShipmentModel.DurationDistanceMatrix.Builder getDurationDistanceMatricesBuilder​(int index)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • getDurationDistanceMatricesOrBuilder

        public ShipmentModel.DurationDistanceMatrixOrBuilder getDurationDistanceMatricesOrBuilder​(int index)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
        Specified by:
        getDurationDistanceMatricesOrBuilder in interface ShipmentModelOrBuilder
      • getDurationDistanceMatricesOrBuilderList

        public List<? extends ShipmentModel.DurationDistanceMatrixOrBuilder> getDurationDistanceMatricesOrBuilderList()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
        Specified by:
        getDurationDistanceMatricesOrBuilderList in interface ShipmentModelOrBuilder
      • addDurationDistanceMatricesBuilder

        public ShipmentModel.DurationDistanceMatrix.Builder addDurationDistanceMatricesBuilder()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • addDurationDistanceMatricesBuilder

        public ShipmentModel.DurationDistanceMatrix.Builder addDurationDistanceMatricesBuilder​(int index)
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • getDurationDistanceMatricesBuilderList

        public List<ShipmentModel.DurationDistanceMatrix.Builder> getDurationDistanceMatricesBuilderList()
         Specifies duration and distance matrices used in the model. If this field
         is empty, Google Maps or geodesic distances will be used instead, depending
         on the value of the `use_geodesic_distances` field. If it is not empty,
         `use_geodesic_distances` cannot be true and neither
         `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
         can be empty.
        
         Usage examples:
        
         * There are two locations: locA and locB.
         * 1 vehicle starting its route at locA and ending it at locA.
         * 1 pickup visit request at locB.
        
         ```
         model {
           vehicles { start_tags: "locA"  end_tags: "locA" }
           shipments { pickups { tags: "locB" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_dst_tags: "locA"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrices {
             rows {  # from: locA
               durations { seconds: 0 }   meters: 0    # to: locA
               durations { seconds: 100 } meters: 1000 # to: locB
             }
             rows {  # from: locB
               durations { seconds: 102 } meters: 990 # to: locA
               durations { seconds: 0 }   meters: 0   # to: locB
             }
           }
         }
         ```
        
        
         * There are three locations: locA, locB and locC.
         * 1 vehicle starting its route at locA and ending it at locB, using
           matrix "fast".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "slow".
         * 1 vehicle starting its route at locB and ending it at locB, using
           matrix "fast".
         * 1 pickup visit request at locC.
        
         ```
         model {
           vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
           vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
           shipments { pickups { tags: "locC" } }
           duration_distance_matrix_src_tags: "locA"
           duration_distance_matrix_src_tags: "locB"
           duration_distance_matrix_src_tags: "locC"
           duration_distance_matrix_dst_tags: "locB"
           duration_distance_matrix_dst_tags: "locC"
           duration_distance_matrices {
             vehicle_start_tag: "fast"
             rows {  # from: locA
               durations { seconds: 1000 } meters: 2000 # to: locB
               durations { seconds: 600 }  meters: 1000 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }   meters: 0    # to: locB
               durations { seconds: 700 } meters: 1200 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 702 } meters: 1190 # to: locB
               durations { seconds: 0 }   meters: 0    # to: locC
             }
           }
           duration_distance_matrices {
             vehicle_start_tag: "slow"
             rows {  # from: locA
               durations { seconds: 1800 } meters: 2001 # to: locB
               durations { seconds: 900 }  meters: 1002 # to: locC
             }
             rows {  # from: locB
               durations { seconds: 0 }    meters: 0    # to: locB
               durations { seconds: 1000 } meters: 1202 # to: locC
             }
             rows {  # from: locC
               durations { seconds: 1001 } meters: 1195 # to: locB
               durations { seconds: 0 }    meters: 0    # to: locC
             }
           }
         }
         ```
         
        repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
      • getDurationDistanceMatrixSrcTagsList

        public com.google.protobuf.ProtocolStringList getDurationDistanceMatrixSrcTagsList()
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Specified by:
        getDurationDistanceMatrixSrcTagsList in interface ShipmentModelOrBuilder
        Returns:
        A list containing the durationDistanceMatrixSrcTags.
      • getDurationDistanceMatrixSrcTagsCount

        public int getDurationDistanceMatrixSrcTagsCount()
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Specified by:
        getDurationDistanceMatrixSrcTagsCount in interface ShipmentModelOrBuilder
        Returns:
        The count of durationDistanceMatrixSrcTags.
      • getDurationDistanceMatrixSrcTags

        public String getDurationDistanceMatrixSrcTags​(int index)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Specified by:
        getDurationDistanceMatrixSrcTags in interface ShipmentModelOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The durationDistanceMatrixSrcTags at the given index.
      • getDurationDistanceMatrixSrcTagsBytes

        public com.google.protobuf.ByteString getDurationDistanceMatrixSrcTagsBytes​(int index)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Specified by:
        getDurationDistanceMatrixSrcTagsBytes in interface ShipmentModelOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the durationDistanceMatrixSrcTags at the given index.
      • setDurationDistanceMatrixSrcTags

        public ShipmentModel.Builder setDurationDistanceMatrixSrcTags​(int index,
                                                                      String value)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Parameters:
        index - The index to set the value at.
        value - The durationDistanceMatrixSrcTags to set.
        Returns:
        This builder for chaining.
      • addDurationDistanceMatrixSrcTags

        public ShipmentModel.Builder addDurationDistanceMatrixSrcTags​(String value)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Parameters:
        value - The durationDistanceMatrixSrcTags to add.
        Returns:
        This builder for chaining.
      • addAllDurationDistanceMatrixSrcTags

        public ShipmentModel.Builder addAllDurationDistanceMatrixSrcTags​(Iterable<String> values)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Parameters:
        values - The durationDistanceMatrixSrcTags to add.
        Returns:
        This builder for chaining.
      • clearDurationDistanceMatrixSrcTags

        public ShipmentModel.Builder clearDurationDistanceMatrixSrcTags()
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Returns:
        This builder for chaining.
      • addDurationDistanceMatrixSrcTagsBytes

        public ShipmentModel.Builder addDurationDistanceMatrixSrcTagsBytes​(com.google.protobuf.ByteString value)
         Tags defining the sources of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j)` defines durations and distances
         from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
         in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_src_tags = 9;
        Parameters:
        value - The bytes of the durationDistanceMatrixSrcTags to add.
        Returns:
        This builder for chaining.
      • getDurationDistanceMatrixDstTagsList

        public com.google.protobuf.ProtocolStringList getDurationDistanceMatrixDstTagsList()
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Specified by:
        getDurationDistanceMatrixDstTagsList in interface ShipmentModelOrBuilder
        Returns:
        A list containing the durationDistanceMatrixDstTags.
      • getDurationDistanceMatrixDstTagsCount

        public int getDurationDistanceMatrixDstTagsCount()
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Specified by:
        getDurationDistanceMatrixDstTagsCount in interface ShipmentModelOrBuilder
        Returns:
        The count of durationDistanceMatrixDstTags.
      • getDurationDistanceMatrixDstTags

        public String getDurationDistanceMatrixDstTags​(int index)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Specified by:
        getDurationDistanceMatrixDstTags in interface ShipmentModelOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The durationDistanceMatrixDstTags at the given index.
      • getDurationDistanceMatrixDstTagsBytes

        public com.google.protobuf.ByteString getDurationDistanceMatrixDstTagsBytes​(int index)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Specified by:
        getDurationDistanceMatrixDstTagsBytes in interface ShipmentModelOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the durationDistanceMatrixDstTags at the given index.
      • setDurationDistanceMatrixDstTags

        public ShipmentModel.Builder setDurationDistanceMatrixDstTags​(int index,
                                                                      String value)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Parameters:
        index - The index to set the value at.
        value - The durationDistanceMatrixDstTags to set.
        Returns:
        This builder for chaining.
      • addDurationDistanceMatrixDstTags

        public ShipmentModel.Builder addDurationDistanceMatrixDstTags​(String value)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Parameters:
        value - The durationDistanceMatrixDstTags to add.
        Returns:
        This builder for chaining.
      • addAllDurationDistanceMatrixDstTags

        public ShipmentModel.Builder addAllDurationDistanceMatrixDstTags​(Iterable<String> values)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Parameters:
        values - The durationDistanceMatrixDstTags to add.
        Returns:
        This builder for chaining.
      • clearDurationDistanceMatrixDstTags

        public ShipmentModel.Builder clearDurationDistanceMatrixDstTags()
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Returns:
        This builder for chaining.
      • addDurationDistanceMatrixDstTagsBytes

        public ShipmentModel.Builder addDurationDistanceMatrixDstTagsBytes​(com.google.protobuf.ByteString value)
         Tags defining the destinations of the duration and distance matrices;
         `duration_distance_matrices(i).rows(j).durations(k)` (resp.
         `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
         (resp. the distance) of the travel from visits with tag
         `duration_distance_matrix_src_tags(j)` to visits with tag
         `duration_distance_matrix_dst_tags(k)` in matrix i.
        
         Tags correspond to
         [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
         or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags].
         A given `VisitRequest` or `Vehicle` must match exactly one tag in this
         field. Note that a `Vehicle`'s source, destination and matrix tags may be
         the same; similarly a `VisitRequest`'s source and destination tags may be
         the same. All tags must be different and cannot be empty strings. If this
         field is not empty, then `duration_distance_matrices` must not be empty.
         
        repeated string duration_distance_matrix_dst_tags = 10;
        Parameters:
        value - The bytes of the durationDistanceMatrixDstTags to add.
        Returns:
        This builder for chaining.
      • getTransitionAttributesCount

        public int getTransitionAttributesCount()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
        Specified by:
        getTransitionAttributesCount in interface ShipmentModelOrBuilder
      • setTransitionAttributes

        public ShipmentModel.Builder setTransitionAttributes​(int index,
                                                             TransitionAttributes value)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • setTransitionAttributes

        public ShipmentModel.Builder setTransitionAttributes​(int index,
                                                             TransitionAttributes.Builder builderForValue)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributes

        public ShipmentModel.Builder addTransitionAttributes​(TransitionAttributes value)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributes

        public ShipmentModel.Builder addTransitionAttributes​(int index,
                                                             TransitionAttributes value)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributes

        public ShipmentModel.Builder addTransitionAttributes​(TransitionAttributes.Builder builderForValue)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributes

        public ShipmentModel.Builder addTransitionAttributes​(int index,
                                                             TransitionAttributes.Builder builderForValue)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addAllTransitionAttributes

        public ShipmentModel.Builder addAllTransitionAttributes​(Iterable<? extends TransitionAttributes> values)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • clearTransitionAttributes

        public ShipmentModel.Builder clearTransitionAttributes()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • removeTransitionAttributes

        public ShipmentModel.Builder removeTransitionAttributes​(int index)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributesBuilder

        public TransitionAttributes.Builder getTransitionAttributesBuilder​(int index)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributesBuilder

        public TransitionAttributes.Builder addTransitionAttributesBuilder()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • addTransitionAttributesBuilder

        public TransitionAttributes.Builder addTransitionAttributesBuilder​(int index)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributesBuilderList

        public List<TransitionAttributes.Builder> getTransitionAttributesBuilderList()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getShipmentTypeIncompatibilitiesCount

        public int getShipmentTypeIncompatibilitiesCount()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
        Specified by:
        getShipmentTypeIncompatibilitiesCount in interface ShipmentModelOrBuilder
      • setShipmentTypeIncompatibilities

        public ShipmentModel.Builder setShipmentTypeIncompatibilities​(int index,
                                                                      ShipmentTypeIncompatibility value)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • setShipmentTypeIncompatibilities

        public ShipmentModel.Builder setShipmentTypeIncompatibilities​(int index,
                                                                      ShipmentTypeIncompatibility.Builder builderForValue)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilities

        public ShipmentModel.Builder addShipmentTypeIncompatibilities​(ShipmentTypeIncompatibility value)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilities

        public ShipmentModel.Builder addShipmentTypeIncompatibilities​(int index,
                                                                      ShipmentTypeIncompatibility value)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilities

        public ShipmentModel.Builder addShipmentTypeIncompatibilities​(ShipmentTypeIncompatibility.Builder builderForValue)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilities

        public ShipmentModel.Builder addShipmentTypeIncompatibilities​(int index,
                                                                      ShipmentTypeIncompatibility.Builder builderForValue)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addAllShipmentTypeIncompatibilities

        public ShipmentModel.Builder addAllShipmentTypeIncompatibilities​(Iterable<? extends ShipmentTypeIncompatibility> values)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • clearShipmentTypeIncompatibilities

        public ShipmentModel.Builder clearShipmentTypeIncompatibilities()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • removeShipmentTypeIncompatibilities

        public ShipmentModel.Builder removeShipmentTypeIncompatibilities​(int index)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilitiesBuilder

        public ShipmentTypeIncompatibility.Builder getShipmentTypeIncompatibilitiesBuilder​(int index)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilitiesBuilder

        public ShipmentTypeIncompatibility.Builder addShipmentTypeIncompatibilitiesBuilder()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • addShipmentTypeIncompatibilitiesBuilder

        public ShipmentTypeIncompatibility.Builder addShipmentTypeIncompatibilitiesBuilder​(int index)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilitiesBuilderList

        public List<ShipmentTypeIncompatibility.Builder> getShipmentTypeIncompatibilitiesBuilderList()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeRequirementsCount

        public int getShipmentTypeRequirementsCount()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
        Specified by:
        getShipmentTypeRequirementsCount in interface ShipmentModelOrBuilder
      • setShipmentTypeRequirements

        public ShipmentModel.Builder setShipmentTypeRequirements​(int index,
                                                                 ShipmentTypeRequirement value)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • setShipmentTypeRequirements

        public ShipmentModel.Builder setShipmentTypeRequirements​(int index,
                                                                 ShipmentTypeRequirement.Builder builderForValue)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirements

        public ShipmentModel.Builder addShipmentTypeRequirements​(ShipmentTypeRequirement value)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirements

        public ShipmentModel.Builder addShipmentTypeRequirements​(int index,
                                                                 ShipmentTypeRequirement value)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirements

        public ShipmentModel.Builder addShipmentTypeRequirements​(ShipmentTypeRequirement.Builder builderForValue)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirements

        public ShipmentModel.Builder addShipmentTypeRequirements​(int index,
                                                                 ShipmentTypeRequirement.Builder builderForValue)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addAllShipmentTypeRequirements

        public ShipmentModel.Builder addAllShipmentTypeRequirements​(Iterable<? extends ShipmentTypeRequirement> values)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • clearShipmentTypeRequirements

        public ShipmentModel.Builder clearShipmentTypeRequirements()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • removeShipmentTypeRequirements

        public ShipmentModel.Builder removeShipmentTypeRequirements​(int index)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirementsBuilder

        public ShipmentTypeRequirement.Builder getShipmentTypeRequirementsBuilder​(int index)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirementsBuilder

        public ShipmentTypeRequirement.Builder addShipmentTypeRequirementsBuilder()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • addShipmentTypeRequirementsBuilder

        public ShipmentTypeRequirement.Builder addShipmentTypeRequirementsBuilder​(int index)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirementsBuilderList

        public List<ShipmentTypeRequirement.Builder> getShipmentTypeRequirementsBuilderList()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getPrecedenceRulesCount

        public int getPrecedenceRulesCount()
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
        Specified by:
        getPrecedenceRulesCount in interface ShipmentModelOrBuilder
      • setPrecedenceRules

        public ShipmentModel.Builder setPrecedenceRules​(int index,
                                                        ShipmentModel.PrecedenceRule value)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • setPrecedenceRules

        public ShipmentModel.Builder setPrecedenceRules​(int index,
                                                        ShipmentModel.PrecedenceRule.Builder builderForValue)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addPrecedenceRules

        public ShipmentModel.Builder addPrecedenceRules​(ShipmentModel.PrecedenceRule value)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addPrecedenceRules

        public ShipmentModel.Builder addPrecedenceRules​(int index,
                                                        ShipmentModel.PrecedenceRule value)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addPrecedenceRules

        public ShipmentModel.Builder addPrecedenceRules​(int index,
                                                        ShipmentModel.PrecedenceRule.Builder builderForValue)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addAllPrecedenceRules

        public ShipmentModel.Builder addAllPrecedenceRules​(Iterable<? extends ShipmentModel.PrecedenceRule> values)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • clearPrecedenceRules

        public ShipmentModel.Builder clearPrecedenceRules()
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • removePrecedenceRules

        public ShipmentModel.Builder removePrecedenceRules​(int index)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • getPrecedenceRulesBuilder

        public ShipmentModel.PrecedenceRule.Builder getPrecedenceRulesBuilder​(int index)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addPrecedenceRulesBuilder

        public ShipmentModel.PrecedenceRule.Builder addPrecedenceRulesBuilder()
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • addPrecedenceRulesBuilder

        public ShipmentModel.PrecedenceRule.Builder addPrecedenceRulesBuilder​(int index)
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • getPrecedenceRulesBuilderList

        public List<ShipmentModel.PrecedenceRule.Builder> getPrecedenceRulesBuilderList()
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • getBreakRulesList

        @Deprecated
        public List<ShipmentModel.BreakRule> getBreakRulesList()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
        Specified by:
        getBreakRulesList in interface ShipmentModelOrBuilder
      • getBreakRulesCount

        @Deprecated
        public int getBreakRulesCount()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
        Specified by:
        getBreakRulesCount in interface ShipmentModelOrBuilder
      • getBreakRules

        @Deprecated
        public ShipmentModel.BreakRule getBreakRules​(int index)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
        Specified by:
        getBreakRules in interface ShipmentModelOrBuilder
      • setBreakRules

        @Deprecated
        public ShipmentModel.Builder setBreakRules​(int index,
                                                   ShipmentModel.BreakRule value)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • setBreakRules

        @Deprecated
        public ShipmentModel.Builder setBreakRules​(int index,
                                                   ShipmentModel.BreakRule.Builder builderForValue)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addBreakRules

        @Deprecated
        public ShipmentModel.Builder addBreakRules​(ShipmentModel.BreakRule value)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addBreakRules

        @Deprecated
        public ShipmentModel.Builder addBreakRules​(int index,
                                                   ShipmentModel.BreakRule value)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addBreakRules

        @Deprecated
        public ShipmentModel.Builder addBreakRules​(ShipmentModel.BreakRule.Builder builderForValue)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addBreakRules

        @Deprecated
        public ShipmentModel.Builder addBreakRules​(int index,
                                                   ShipmentModel.BreakRule.Builder builderForValue)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addAllBreakRules

        @Deprecated
        public ShipmentModel.Builder addAllBreakRules​(Iterable<? extends ShipmentModel.BreakRule> values)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • clearBreakRules

        @Deprecated
        public ShipmentModel.Builder clearBreakRules()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • removeBreakRules

        @Deprecated
        public ShipmentModel.Builder removeBreakRules​(int index)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • getBreakRulesBuilder

        @Deprecated
        public ShipmentModel.BreakRule.Builder getBreakRulesBuilder​(int index)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • getBreakRulesOrBuilder

        @Deprecated
        public ShipmentModel.BreakRuleOrBuilder getBreakRulesOrBuilder​(int index)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
        Specified by:
        getBreakRulesOrBuilder in interface ShipmentModelOrBuilder
      • getBreakRulesOrBuilderList

        @Deprecated
        public List<? extends ShipmentModel.BreakRuleOrBuilder> getBreakRulesOrBuilderList()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
        Specified by:
        getBreakRulesOrBuilderList in interface ShipmentModelOrBuilder
      • addBreakRulesBuilder

        @Deprecated
        public ShipmentModel.BreakRule.Builder addBreakRulesBuilder()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • addBreakRulesBuilder

        @Deprecated
        public ShipmentModel.BreakRule.Builder addBreakRulesBuilder​(int index)
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • getBreakRulesBuilderList

        @Deprecated
        public List<ShipmentModel.BreakRule.Builder> getBreakRulesBuilderList()
        Deprecated.
         Deprecated: No longer used.
         Set of break rules used in the model.
         Each vehicle specifies the `BreakRule` that applies to it via the
         [Vehicle.break_rule_indices][google.cloud.optimization.v1.Vehicle.break_rule_indices]
         field (which must be a singleton).
         
        repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];
      • setUnknownFields

        public final ShipmentModel.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<ShipmentModel.Builder>
      • mergeUnknownFields

        public final ShipmentModel.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<ShipmentModel.Builder>