Interface ShipmentModelOrBuilder

  • All Superinterfaces:
    com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
    All Known Implementing Classes:
    ShipmentModel, ShipmentModel.Builder

    public interface ShipmentModelOrBuilder
    extends com.google.protobuf.MessageOrBuilder
    • Method Detail

      • getShipmentsList

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

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

        int getShipmentsCount()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getShipmentsOrBuilderList

        List<? extends ShipmentOrBuilder> getShipmentsOrBuilderList()
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getShipmentsOrBuilder

        ShipmentOrBuilder getShipmentsOrBuilder​(int index)
         Set of shipments which must be performed in the model.
         
        repeated .google.cloud.optimization.v1.Shipment shipments = 1;
      • getVehiclesList

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

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

        int getVehiclesCount()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • getVehiclesOrBuilderList

        List<? extends VehicleOrBuilder> getVehiclesOrBuilderList()
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • getVehiclesOrBuilder

        VehicleOrBuilder getVehiclesOrBuilder​(int index)
         Set of vehicles which can be used to perform visits.
         
        repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;
      • hasMaxActiveVehicles

        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;
        Returns:
        Whether the maxActiveVehicles field is set.
      • getMaxActiveVehicles

        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;
        Returns:
        The maxActiveVehicles.
      • hasGlobalStartTime

        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;
        Returns:
        Whether the globalStartTime field is set.
      • getGlobalStartTime

        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;
        Returns:
        The globalStartTime.
      • getGlobalStartTimeOrBuilder

        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;
      • hasGlobalEndTime

        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;
        Returns:
        Whether the globalEndTime field is set.
      • getGlobalEndTime

        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;
        Returns:
        The globalEndTime.
      • getGlobalEndTimeOrBuilder

        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;
      • getGlobalDurationCostPerHour

        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;
        Returns:
        The globalDurationCostPerHour.
      • getDurationDistanceMatricesList

        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;
      • getDurationDistanceMatrices

        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;
      • getDurationDistanceMatricesCount

        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;
      • getDurationDistanceMatricesOrBuilderList

        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;
      • getDurationDistanceMatricesOrBuilder

        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;
      • getDurationDistanceMatrixSrcTagsList

        List<String> 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;
        Returns:
        A list containing the durationDistanceMatrixSrcTags.
      • getDurationDistanceMatrixSrcTagsCount

        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;
        Returns:
        The count of durationDistanceMatrixSrcTags.
      • getDurationDistanceMatrixSrcTags

        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;
        Parameters:
        index - The index of the element to return.
        Returns:
        The durationDistanceMatrixSrcTags at the given index.
      • getDurationDistanceMatrixSrcTagsBytes

        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;
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the durationDistanceMatrixSrcTags at the given index.
      • getDurationDistanceMatrixDstTagsList

        List<String> 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;
        Returns:
        A list containing the durationDistanceMatrixDstTags.
      • getDurationDistanceMatrixDstTagsCount

        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;
        Returns:
        The count of durationDistanceMatrixDstTags.
      • getDurationDistanceMatrixDstTags

        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;
        Parameters:
        index - The index of the element to return.
        Returns:
        The durationDistanceMatrixDstTags at the given index.
      • getDurationDistanceMatrixDstTagsBytes

        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;
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the durationDistanceMatrixDstTags at the given index.
      • getTransitionAttributesList

        List<TransitionAttributes> getTransitionAttributesList()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributes

        TransitionAttributes getTransitionAttributes​(int index)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributesCount

        int getTransitionAttributesCount()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributesOrBuilderList

        List<? extends TransitionAttributesOrBuilder> getTransitionAttributesOrBuilderList()
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getTransitionAttributesOrBuilder

        TransitionAttributesOrBuilder getTransitionAttributesOrBuilder​(int index)
         Transition attributes added to the model.
         
        repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;
      • getShipmentTypeIncompatibilitiesList

        List<ShipmentTypeIncompatibility> getShipmentTypeIncompatibilitiesList()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilities

        ShipmentTypeIncompatibility getShipmentTypeIncompatibilities​(int index)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilitiesCount

        int getShipmentTypeIncompatibilitiesCount()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilitiesOrBuilderList

        List<? extends ShipmentTypeIncompatibilityOrBuilder> getShipmentTypeIncompatibilitiesOrBuilderList()
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeIncompatibilitiesOrBuilder

        ShipmentTypeIncompatibilityOrBuilder getShipmentTypeIncompatibilitiesOrBuilder​(int index)
         Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
      • getShipmentTypeRequirementsList

        List<ShipmentTypeRequirement> getShipmentTypeRequirementsList()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirements

        ShipmentTypeRequirement getShipmentTypeRequirements​(int index)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirementsCount

        int getShipmentTypeRequirementsCount()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirementsOrBuilderList

        List<? extends ShipmentTypeRequirementOrBuilder> getShipmentTypeRequirementsOrBuilderList()
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getShipmentTypeRequirementsOrBuilder

        ShipmentTypeRequirementOrBuilder getShipmentTypeRequirementsOrBuilder​(int index)
         Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
         
        repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
      • getPrecedenceRulesList

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

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

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

        List<? extends ShipmentModel.PrecedenceRuleOrBuilder> getPrecedenceRulesOrBuilderList()
         Set of precedence rules which must be enforced in the model.
         
        repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
      • getPrecedenceRulesOrBuilder

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

        @Deprecated
        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];
      • getBreakRules

        @Deprecated
        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];
      • getBreakRulesCount

        @Deprecated
        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];
      • getBreakRulesOrBuilderList

        @Deprecated
        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];
      • getBreakRulesOrBuilder

        @Deprecated
        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];