Class ShipmentModel

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

    public final class ShipmentModel
    extends com.google.protobuf.GeneratedMessageV3
    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
    See Also:
    Serialized Form
    • Field Detail

      • MAX_ACTIVE_VEHICLES_FIELD_NUMBER

        public static final int MAX_ACTIVE_VEHICLES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • GLOBAL_START_TIME_FIELD_NUMBER

        public static final int GLOBAL_START_TIME_FIELD_NUMBER
        See Also:
        Constant Field Values
      • GLOBAL_END_TIME_FIELD_NUMBER

        public static final int GLOBAL_END_TIME_FIELD_NUMBER
        See Also:
        Constant Field Values
      • GLOBAL_DURATION_COST_PER_HOUR_FIELD_NUMBER

        public static final int GLOBAL_DURATION_COST_PER_HOUR_FIELD_NUMBER
        See Also:
        Constant Field Values
      • DURATION_DISTANCE_MATRICES_FIELD_NUMBER

        public static final int DURATION_DISTANCE_MATRICES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • DURATION_DISTANCE_MATRIX_SRC_TAGS_FIELD_NUMBER

        public static final int DURATION_DISTANCE_MATRIX_SRC_TAGS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • DURATION_DISTANCE_MATRIX_DST_TAGS_FIELD_NUMBER

        public static final int DURATION_DISTANCE_MATRIX_DST_TAGS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • TRANSITION_ATTRIBUTES_FIELD_NUMBER

        public static final int TRANSITION_ATTRIBUTES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SHIPMENT_TYPE_INCOMPATIBILITIES_FIELD_NUMBER

        public static final int SHIPMENT_TYPE_INCOMPATIBILITIES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SHIPMENT_TYPE_REQUIREMENTS_FIELD_NUMBER

        public static final int SHIPMENT_TYPE_REQUIREMENTS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PRECEDENCE_RULES_FIELD_NUMBER

        public static final int PRECEDENCE_RULES_FIELD_NUMBER
        See Also:
        Constant Field Values
      • BREAK_RULES_FIELD_NUMBER

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

      • newInstance

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

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

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • 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
      • 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
      • 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.
      • 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.
      • 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.
      • 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.
      • 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
      • 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
      • 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
      • 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
      • 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.
      • 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.
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • isInitialized

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

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

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

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

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

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

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

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

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

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

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

        public static ShipmentModel parseFrom​(com.google.protobuf.CodedInputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws IOException
        Throws:
        IOException
      • newBuilderForType

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

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

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

        public static ShipmentModel getDefaultInstance()
      • parser

        public static com.google.protobuf.Parser<ShipmentModel> parser()
      • getParserForType

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

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