<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/optimization/v1/fleet_routing.proto

namespace GPBMetadata\Google\Cloud\Optimization\V1;

class FleetRouting
{
    public static $is_initialized = false;

    public static function initOnce() {
        $pool = \Google\Protobuf\Internal\DescriptorPool::getGeneratedPool();

        if (static::$is_initialized == true) {
          return;
        }
        \GPBMetadata\Google\Api\Annotations::initOnce();
        \GPBMetadata\Google\Api\Client::initOnce();
        \GPBMetadata\Google\Api\FieldBehavior::initOnce();
        \GPBMetadata\Google\Cloud\Optimization\V1\AsyncModel::initOnce();
        \GPBMetadata\Google\Longrunning\Operations::initOnce();
        \GPBMetadata\Google\Protobuf\Duration::initOnce();
        \GPBMetadata\Google\Protobuf\Timestamp::initOnce();
        \GPBMetadata\Google\Type\Latlng::initOnce();
        $pool->internalAddGeneratedFile(
            '

0google/cloud/optimization/v1/fleet_routing.protogoogle.cloud.optimization.v1google/api/client.protogoogle/api/field_behavior.proto.google/cloud/optimization/v1/async_model.proto#google/longrunning/operations.protogoogle/protobuf/duration.protogoogle/protobuf/timestamp.protogoogle/type/latlng.proto"	
OptimizeToursRequest
parent (	BA*
timeout (2.google.protobuf.Duration:
model (2+.google.cloud.optimization.v1.ShipmentModelT
solving_mode (2>.google.cloud.optimization.v1.OptimizeToursRequest.SolvingMode"
max_validation_errors (H R
search_mode (2=.google.cloud.optimization.v1.OptimizeToursRequest.SearchModeS
injected_first_solution_routes (2+.google.cloud.optimization.v1.ShipmentRoute^
injected_solution_constraint (28.google.cloud.optimization.v1.InjectedSolutionConstraintK
refresh_details_routes	 (2+.google.cloud.optimization.v1.ShipmentRoute1
)interpret_injected_solutions_using_labels
 (
consider_road_traffic (
populate_polylines (%
populate_transition_polylines (6
.allow_large_deadline_despite_interruption_risk (
use_geodesic_distances (\'
geodesic_meters_per_second (H
label (	*
populate_travel_step_polylines (B"Y
SolvingMode
DEFAULT_SOLVE 
VALIDATE_ONLY$
 DETECT_SOME_INFEASIBLE_SHIPMENTS"Z

SearchMode
SEARCH_MODE_UNSPECIFIED 
RETURN_FAST
CONSUME_ALL_AVAILABLE_TIMEB
_max_validation_errorsB
_geodesic_meters_per_second"
OptimizeToursResponse;
routes (2+.google.cloud.optimization.v1.ShipmentRoute
request_label (	H
skipped_shipments (2-.google.cloud.optimization.v1.SkippedShipmentU
validation_errors (2:.google.cloud.optimization.v1.OptimizeToursValidationErrorL
metrics (2;.google.cloud.optimization.v1.OptimizeToursResponse.Metrics

total_cost (B
MetricsQ
aggregated_route_metrics (2/.google.cloud.optimization.v1.AggregatedMetrics(
 skipped_mandatory_shipment_count (
used_vehicle_count (?
earliest_vehicle_start_time (2.google.protobuf.Timestamp;
latest_vehicle_end_time (2.google.protobuf.TimestampU
costs
 (2F.google.cloud.optimization.v1.OptimizeToursResponse.Metrics.CostsEntry

total_cost (,

CostsEntry
key (	
value (:8"
BatchOptimizeToursRequest
parent (	BAd
model_configs (2H.google.cloud.optimization.v1.BatchOptimizeToursRequest.AsyncModelConfigBA
AsyncModelConfig
display_name (	D
input_config (2).google.cloud.optimization.v1.InputConfigBAF
output_config (2*.google.cloud.optimization.v1.OutputConfigBA
enable_checkpoints ("
BatchOptimizeToursResponse"
ShipmentModel9
	shipments (2&.google.cloud.optimization.v1.Shipment7
vehicles (2%.google.cloud.optimization.v1.Vehicle 
max_active_vehicles (H 5
global_start_time (2.google.protobuf.Timestamp3
global_end_time (2.google.protobuf.Timestamp%
global_duration_cost_per_hour (f
duration_distance_matrices (2B.google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix)
!duration_distance_matrix_src_tags	 (	)
!duration_distance_matrix_dst_tags
 (	Q
transition_attributes (22.google.cloud.optimization.v1.TransitionAttributesb
shipment_type_incompatibilities (29.google.cloud.optimization.v1.ShipmentTypeIncompatibilityY
shipment_type_requirements (25.google.cloud.optimization.v1.ShipmentTypeRequirementT
precedence_rules (2:.google.cloud.optimization.v1.ShipmentModel.PrecedenceRuleN
break_rules (25.google.cloud.optimization.v1.ShipmentModel.BreakRuleB
DurationDistanceMatrixT
rows (2F.google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix.Row
vehicle_start_tag (	C
Row,
	durations (2.google.protobuf.Duration
meters (
PrecedenceRule
first_index (H 
first_is_delivery (
second_index (H
second_is_delivery (2
offset_duration (2.google.protobuf.DurationB
_first_indexB
_second_index
	BreakRuleZ
break_requests (2B.google.cloud.optimization.v1.ShipmentModel.BreakRule.BreakRequesth
frequency_constraints (2I.google.cloud.optimization.v1.ShipmentModel.BreakRule.FrequencyConstraint
BreakRequest<
earliest_start_time (2.google.protobuf.TimestampBA:
latest_start_time (2.google.protobuf.TimestampBA4
min_duration (2.google.protobuf.DurationBA
FrequencyConstraint:
min_break_duration (2.google.protobuf.DurationBA@
max_inter_break_duration (2.google.protobuf.DurationBA:B
_max_active_vehicles"
ShipmentD
pickups (23.google.cloud.optimization.v1.Shipment.VisitRequestG

deliveries (23.google.cloud.optimization.v1.Shipment.VisitRequestM
load_demands (27.google.cloud.optimization.v1.Shipment.LoadDemandsEntry
penalty_cost (H 
allowed_vehicle_indices (
costs_per_vehicle (!
costs_per_vehicle_indices (5
(pickup_to_delivery_relative_detour_limit (HK
(pickup_to_delivery_absolute_detour_limit	 (2.google.protobuf.Duration@
pickup_to_delivery_time_limit
 (2.google.protobuf.Duration
shipment_type (	
label (	
ignore (C
demands (2..google.cloud.optimization.v1.CapacityQuantityB
VisitRequest-
arrival_location (2.google.type.LatLng@
arrival_waypoint (2&.google.cloud.optimization.v1.Waypoint/
departure_location (2.google.type.LatLngB
departure_waypoint (2&.google.cloud.optimization.v1.Waypoint
tags (	>
time_windows (2(.google.cloud.optimization.v1.TimeWindow+
duration (2.google.protobuf.Duration
cost (Z
load_demands (2D.google.cloud.optimization.v1.Shipment.VisitRequest.LoadDemandsEntry
visit_types
 (	
label (	C
demands	 (2..google.cloud.optimization.v1.CapacityQuantityB_
LoadDemandsEntry
key (	:
value (2+.google.cloud.optimization.v1.Shipment.Load:8
Load
amount (_
LoadDemandsEntry
key (	:
value (2+.google.cloud.optimization.v1.Shipment.Load:8B
_penalty_costB+
)_pickup_to_delivery_relative_detour_limit"
ShipmentTypeIncompatibility
types (	k
incompatibility_mode (2M.google.cloud.optimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode"
IncompatibilityMode$
 INCOMPATIBILITY_MODE_UNSPECIFIED !
NOT_PERFORMED_BY_SAME_VEHICLE&
"NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY"
ShipmentTypeRequirement+
#required_shipment_type_alternatives (	 
dependent_shipment_types (	_
requirement_mode (2E.google.cloud.optimization.v1.ShipmentTypeRequirement.RequirementMode"
RequirementMode 
REQUIREMENT_MODE_UNSPECIFIED 
PERFORMED_BY_SAME_VEHICLE"
IN_SAME_VEHICLE_AT_PICKUP_TIME$
 IN_SAME_VEHICLE_AT_DELIVERY_TIME"
VehicleE
travel_mode (20.google.cloud.optimization.v1.Vehicle.TravelMode+
start_location (2.google.type.LatLng>
start_waypoint (2&.google.cloud.optimization.v1.Waypoint)
end_location (2.google.type.LatLng<
end_waypoint (2&.google.cloud.optimization.v1.Waypoint

start_tags (	
end_tags (	D
start_time_windows	 (2(.google.cloud.optimization.v1.TimeWindowB
end_time_windows
 (2(.google.cloud.optimization.v1.TimeWindow%
travel_duration_multiple (H O
unloading_policy (25.google.cloud.optimization.v1.Vehicle.UnloadingPolicyJ
load_limits (25.google.cloud.optimization.v1.Vehicle.LoadLimitsEntry
cost_per_hour (
cost_per_traveled_hour (
cost_per_kilometer (

fixed_cost (
used_if_route_is_empty (Q
route_duration_limit (23.google.cloud.optimization.v1.Vehicle.DurationLimitR
travel_duration_limit (23.google.cloud.optimization.v1.Vehicle.DurationLimitI
route_distance_limit (2+.google.cloud.optimization.v1.DistanceLimitv
#extra_visit_duration_for_visit_type (2I.google.cloud.optimization.v1.Vehicle.ExtraVisitDurationForVisitTypeEntry;

break_rule (2\'.google.cloud.optimization.v1.BreakRule
label (	
ignore (
break_rule_indices (BF

capacities (2..google.cloud.optimization.v1.CapacityQuantityBX
start_load_intervals (26.google.cloud.optimization.v1.CapacityQuantityIntervalBV
end_load_intervals (26.google.cloud.optimization.v1.CapacityQuantityIntervalB
	LoadLimit
max_load (H 
soft_max_load ($
cost_per_unit_above_soft_max (U
start_load_interval (28.google.cloud.optimization.v1.Vehicle.LoadLimit.IntervalS
end_load_interval (28.google.cloud.optimization.v1.Vehicle.LoadLimit.Interval1
Interval
min (
max (H B
_maxB
	_max_load
DurationLimit/
max_duration (2.google.protobuf.Duration4
soft_max_duration (2.google.protobuf.Duration)
cost_per_hour_after_soft_max (H >
quadratic_soft_max_duration (2.google.protobuf.Duration:
-cost_per_square_hour_after_quadratic_soft_max (HB
_cost_per_hour_after_soft_maxB0
._cost_per_square_hour_after_quadratic_soft_maxb
LoadLimitsEntry
key (	>
value (2/.google.cloud.optimization.v1.Vehicle.LoadLimit:8`
#ExtraVisitDurationForVisitTypeEntry
key (	(
value (2.google.protobuf.Duration:8"6

TravelMode
TRAVEL_MODE_UNSPECIFIED 
DRIVING"b
UnloadingPolicy 
UNLOADING_POLICY_UNSPECIFIED 
LAST_IN_FIRST_OUT
FIRST_IN_FIRST_OUTB
_travel_duration_multiple"

TimeWindow.

start_time (2.google.protobuf.Timestamp,
end_time (2.google.protobuf.Timestamp3
soft_start_time (2.google.protobuf.Timestamp1
soft_end_time (2.google.protobuf.Timestamp1
$cost_per_hour_before_soft_start_time (H .
!cost_per_hour_after_soft_end_time (HB\'
%_cost_per_hour_before_soft_start_timeB$
"_cost_per_hour_after_soft_end_time"3
CapacityQuantity
type (	
value (:"x
CapacityQuantityInterval
type (	
	min_value (H 
	max_value (H:B

_min_valueB

_max_value"
DistanceLimit

max_meters (H 
soft_max_meters (H.
!cost_per_kilometer_above_soft_max (HB
_max_metersB
_soft_max_metersB$
"_cost_per_kilometer_above_soft_max"
TransitionAttributes
src_tag (	
excluded_src_tag (	
dst_tag (	
excluded_dst_tag (	
cost (
cost_per_kilometer (C
distance_limit (2+.google.cloud.optimization.v1.DistanceLimit(
delay (2.google.protobuf.Duration"
Waypoint:
location (2&.google.cloud.optimization.v1.LocationH 
place_id (	H 
side_of_road (B
location_type"R
Location$
lat_lng (2.google.type.LatLng
heading (H B

_heading"
	BreakRuleL
break_requests (24.google.cloud.optimization.v1.BreakRule.BreakRequestZ
frequency_constraints (2;.google.cloud.optimization.v1.BreakRule.FrequencyConstraint
BreakRequest<
earliest_start_time (2.google.protobuf.TimestampBA:
latest_start_time (2.google.protobuf.TimestampBA4
min_duration (2.google.protobuf.DurationBA
FrequencyConstraint:
min_break_duration (2.google.protobuf.DurationBA@
max_inter_break_duration (2.google.protobuf.DurationBA"
ShipmentRoute
vehicle_index (
vehicle_label (	6
vehicle_start_time (2.google.protobuf.Timestamp4
vehicle_end_time (2.google.protobuf.TimestampA
visits (21.google.cloud.optimization.v1.ShipmentRoute.VisitK
transitions (26.google.cloud.optimization.v1.ShipmentRoute.Transition#
has_traffic_infeasibilities	 (S
route_polyline
 (2;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolylineA
breaks (21.google.cloud.optimization.v1.ShipmentRoute.Break@
metrics (2/.google.cloud.optimization.v1.AggregatedMetricsP
route_costs (2;.google.cloud.optimization.v1.ShipmentRoute.RouteCostsEntry
route_total_cost (E
	end_loads (2..google.cloud.optimization.v1.CapacityQuantityBP
travel_steps (26.google.cloud.optimization.v1.ShipmentRoute.TravelStepB5
vehicle_detour (2.google.protobuf.DurationBW
delay_before_vehicle_end (21.google.cloud.optimization.v1.ShipmentRoute.DelayBh
Delay.

start_time (2.google.protobuf.Timestamp+
duration (2.google.protobuf.Duration:
Visit
shipment_index (
	is_pickup (
visit_request_index (.

start_time (2.google.protobuf.TimestampX
load_demands (2B.google.cloud.optimization.v1.ShipmentRoute.Visit.LoadDemandsEntry)
detour (2.google.protobuf.Duration
shipment_label (	
visit_label (	I
arrival_loads	 (2..google.cloud.optimization.v1.CapacityQuantityBQ
delay_before_start
 (21.google.cloud.optimization.v1.ShipmentRoute.DelayBC
demands (2..google.cloud.optimization.v1.CapacityQuantityB_
LoadDemandsEntry
key (	:
value (2+.google.cloud.optimization.v1.Shipment.Load:8

Transition2
travel_duration (2.google.protobuf.Duration
travel_distance_meters ( 
traffic_info_unavailable (1
delay_duration (2.google.protobuf.Duration1
break_duration (2.google.protobuf.Duration0
wait_duration (2.google.protobuf.Duration1
total_duration (2.google.protobuf.Duration.

start_time (2.google.protobuf.TimestampS
route_polyline	 (2;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline_
vehicle_loads (2H.google.cloud.optimization.v1.ShipmentRoute.Transition.VehicleLoadsEntryA
loads
 (2..google.cloud.optimization.v1.CapacityQuantityBl
VehicleLoadsEntry
key (	F
value (27.google.cloud.optimization.v1.ShipmentRoute.VehicleLoad:8
VehicleLoad
amount (!
EncodedPolyline
points (	d
Break.

start_time (2.google.protobuf.Timestamp+
duration (2.google.protobuf.Duration

TravelStep+
duration (2.google.protobuf.Duration
distance_meters ( 
traffic_info_unavailable (S
route_polyline (2;.google.cloud.optimization.v1.ShipmentRoute.EncodedPolyline:1
RouteCostsEntry
key (	
value (:8"
SkippedShipment
index (
label (	E
reasons (24.google.cloud.optimization.v1.SkippedShipment.Reason
ReasonG
code (29.google.cloud.optimization.v1.SkippedShipment.Reason.Code"
example_vehicle_index (H &
example_exceeded_capacity_type (	"
Code
CODE_UNSPECIFIED 

NO_VEHICLE#
DEMAND_EXCEEDS_VEHICLE_CAPACITY5
1CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT5
1CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT<
8CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT3
/CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS
VEHICLE_NOT_ALLOWEDB
_example_vehicle_index"
AggregatedMetrics 
performed_shipment_count (2
travel_duration (2.google.protobuf.Duration0
wait_duration (2.google.protobuf.Duration1
delay_duration (2.google.protobuf.Duration1
break_duration (2.google.protobuf.Duration1
visit_duration (2.google.protobuf.Duration1
total_duration (2.google.protobuf.Duration
travel_distance_meters (P
	max_loads	 (2=.google.cloud.optimization.v1.AggregatedMetrics.MaxLoadsEntryM
costs
 (2:.google.cloud.optimization.v1.AggregatedMetrics.CostsEntryB

total_cost (Bh
MaxLoadsEntry
key (	F
value (27.google.cloud.optimization.v1.ShipmentRoute.VehicleLoad:8,

CostsEntry
key (	
value (:8"
InjectedSolutionConstraint;
routes (2+.google.cloud.optimization.v1.ShipmentRouteH
skipped_shipments (2-.google.cloud.optimization.v1.SkippedShipmentm
constraint_relaxations (2M.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation
ConstraintRelaxationm
relaxations (2X.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
vehicle_indices (

Relaxationm
level (2^.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level2
threshold_time (2.google.protobuf.Timestamp
threshold_visit_count ("
Level
LEVEL_UNSPECIFIED %
!RELAX_VISIT_TIMES_AFTER_THRESHOLD2
.RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD
RELAX_ALL_AFTER_THRESHOLD"
OptimizeToursValidationError
code (
display_name (	Y
fields (2I.google.cloud.optimization.v1.OptimizeToursValidationError.FieldReference
error_message (	
offending_values (	
FieldReference
name (	
index (H 
key (	H \\
	sub_field (2I.google.cloud.optimization.v1.OptimizeToursValidationError.FieldReferenceB
index_or_key2
FleetRouting
OptimizeTours2.google.cloud.optimization.v1.OptimizeToursRequest3.google.cloud.optimization.v1.OptimizeToursResponse"hb"1/v1/{parent=projects/*/locations/*}:optimizeTours:*Z*"%/v1/{parent=projects/*}:optimizeTours:*
BatchOptimizeTours7.google.cloud.optimization.v1.BatchOptimizeToursRequest.google.longrunning.Operation"l"6/v1/{parent=projects/*/locations/*}:batchOptimizeTours:*Z/"*/v1/{parent=projects/*}:batchOptimizeTours:*A0
BatchOptimizeToursResponseAsyncModelMetadataTA cloudoptimization.googleapis.comA.https://www.googleapis.com/auth/cloud-platformB}
 com.google.cloud.optimization.v1BFleetRoutingProtoPZDcloud.google.com/go/optimization/apiv1/optimizationpb;optimizationpbbproto3'
        , true);

        static::$is_initialized = true;
    }
}

