/*
 * Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/optimization/v1/fleet_routing.proto

package com.google.cloud.optimization.v1;

public final class FleetRoutingProto {
  private FleetRoutingProto() {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
  }

  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_CostsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_CostsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_AsyncModelConfig_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_AsyncModelConfig_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursResponse_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BatchOptimizeToursResponse_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_Row_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_Row_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_PrecedenceRule_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_PrecedenceRule_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_BreakRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_BreakRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_FrequencyConstraint_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_FrequencyConstraint_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Shipment_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Shipment_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_LoadDemandsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_LoadDemandsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Shipment_Load_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Shipment_Load_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Shipment_LoadDemandsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Shipment_LoadDemandsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentTypeIncompatibility_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentTypeIncompatibility_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentTypeRequirement_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentTypeRequirement_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_Interval_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_Interval_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_DurationLimit_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_DurationLimit_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimitsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_LoadLimitsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Vehicle_ExtraVisitDurationForVisitTypeEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Vehicle_ExtraVisitDurationForVisitTypeEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_TimeWindow_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_TimeWindow_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_CapacityQuantity_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_CapacityQuantity_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_CapacityQuantityInterval_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_CapacityQuantityInterval_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_DistanceLimit_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_DistanceLimit_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_TransitionAttributes_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_TransitionAttributes_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Waypoint_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Waypoint_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_Location_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_Location_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BreakRule_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BreakRule_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BreakRule_BreakRequest_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BreakRule_BreakRequest_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_BreakRule_FrequencyConstraint_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_BreakRule_FrequencyConstraint_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Delay_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Delay_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_LoadDemandsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_LoadDemandsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_VehicleLoadsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_VehicleLoadsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_VehicleLoad_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_VehicleLoad_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_EncodedPolyline_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_EncodedPolyline_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Break_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_Break_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_TravelStep_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_TravelStep_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_ShipmentRoute_RouteCostsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_ShipmentRoute_RouteCostsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_SkippedShipment_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_SkippedShipment_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_SkippedShipment_Reason_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_SkippedShipment_Reason_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_MaxLoadsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_MaxLoadsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_CostsEntry_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_AggregatedMetrics_CostsEntry_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_fieldAccessorTable;
  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_FieldReference_descriptor;
  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_FieldReference_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
      "\n0google/cloud/optimization/v1/fleet_rou"
          + "ting.proto\022\034google.cloud.optimization.v1"
          + "\032\034google/api/annotations.proto\032\027google/a"
          + "pi/client.proto\032\037google/api/field_behavi"
          + "or.proto\032.google/cloud/optimization/v1/a"
          + "sync_model.proto\032#google/longrunning/ope"
          + "rations.proto\032\036google/protobuf/duration."
          + "proto\032\037google/protobuf/timestamp.proto\032\030"
          + "google/type/latlng.proto\"\245\t\n\024OptimizeTou"
          + "rsRequest\022\024\n\006parent\030\001 \001(\tB\004\342A\001\002\022*\n\007timeo"
          + "ut\030\002 \001(\0132\031.google.protobuf.Duration\022:\n\005m"
          + "odel\030\003 \001(\0132+.google.cloud.optimization.v"
          + "1.ShipmentModel\022T\n\014solving_mode\030\004 \001(\0162>."
          + "google.cloud.optimization.v1.OptimizeTou"
          + "rsRequest.SolvingMode\022\"\n\025max_validation_"
          + "errors\030\005 \001(\005H\000\210\001\001\022R\n\013search_mode\030\006 \001(\0162="
          + ".google.cloud.optimization.v1.OptimizeTo"
          + "ursRequest.SearchMode\022S\n\036injected_first_"
          + "solution_routes\030\007 \003(\0132+.google.cloud.opt"
          + "imization.v1.ShipmentRoute\022^\n\034injected_s"
          + "olution_constraint\030\010 \001(\01328.google.cloud."
          + "optimization.v1.InjectedSolutionConstrai"
          + "nt\022K\n\026refresh_details_routes\030\t \003(\0132+.goo"
          + "gle.cloud.optimization.v1.ShipmentRoute\022"
          + "1\n)interpret_injected_solutions_using_la"
          + "bels\030\n \001(\010\022\035\n\025consider_road_traffic\030\013 \001("
          + "\010\022\032\n\022populate_polylines\030\014 \001(\010\022%\n\035populat"
          + "e_transition_polylines\030\r \001(\010\0226\n.allow_la"
          + "rge_deadline_despite_interruption_risk\030\016"
          + " \001(\010\022\036\n\026use_geodesic_distances\030\017 \001(\010\022\'\n\032"
          + "geodesic_meters_per_second\030\020 \001(\001H\001\210\001\001\022\r\n"
          + "\005label\030\021 \001(\t\022*\n\036populate_travel_step_pol"
          + "ylines\030\024 \001(\010B\002\030\001\"Y\n\013SolvingMode\022\021\n\rDEFAU"
          + "LT_SOLVE\020\000\022\021\n\rVALIDATE_ONLY\020\001\022$\n DETECT_"
          + "SOME_INFEASIBLE_SHIPMENTS\020\002\"Z\n\nSearchMod"
          + "e\022\033\n\027SEARCH_MODE_UNSPECIFIED\020\000\022\017\n\013RETURN"
          + "_FAST\020\001\022\036\n\032CONSUME_ALL_AVAILABLE_TIME\020\002B"
          + "\030\n\026_max_validation_errorsB\035\n\033_geodesic_m"
          + "eters_per_second\"\256\006\n\025OptimizeToursRespon"
          + "se\022;\n\006routes\030\001 \003(\0132+.google.cloud.optimi"
          + "zation.v1.ShipmentRoute\022\025\n\rrequest_label"
          + "\030\003 \001(\t\022H\n\021skipped_shipments\030\004 \003(\0132-.goog"
          + "le.cloud.optimization.v1.SkippedShipment"
          + "\022U\n\021validation_errors\030\005 \003(\0132:.google.clo"
          + "ud.optimization.v1.OptimizeToursValidati"
          + "onError\022L\n\007metrics\030\006 \001(\0132;.google.cloud."
          + "optimization.v1.OptimizeToursResponse.Me"
          + "trics\022\026\n\ntotal_cost\030\002 \001(\001B\002\030\001\032\271\003\n\007Metric"
          + "s\022Q\n\030aggregated_route_metrics\030\001 \001(\0132/.go"
          + "ogle.cloud.optimization.v1.AggregatedMet"
          + "rics\022(\n skipped_mandatory_shipment_count"
          + "\030\002 \001(\005\022\032\n\022used_vehicle_count\030\003 \001(\005\022?\n\033ea"
          + "rliest_vehicle_start_time\030\004 \001(\0132\032.google"
          + ".protobuf.Timestamp\022;\n\027latest_vehicle_en"
          + "d_time\030\005 \001(\0132\032.google.protobuf.Timestamp"
          + "\022U\n\005costs\030\n \003(\0132F.google.cloud.optimizat"
          + "ion.v1.OptimizeToursResponse.Metrics.Cos"
          + "tsEntry\022\022\n\ntotal_cost\030\006 \001(\001\032,\n\nCostsEntr"
          + "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\001:\0028\001\"\357\002\n\031Ba"
          + "tchOptimizeToursRequest\022\024\n\006parent\030\001 \001(\tB"
          + "\004\342A\001\002\022e\n\rmodel_configs\030\002 \003(\0132H.google.cl"
          + "oud.optimization.v1.BatchOptimizeToursRe"
          + "quest.AsyncModelConfigB\004\342A\001\002\032\324\001\n\020AsyncMo"
          + "delConfig\022\024\n\014display_name\030\001 \001(\t\022E\n\014input"
          + "_config\030\002 \001(\0132).google.cloud.optimizatio"
          + "n.v1.InputConfigB\004\342A\001\002\022G\n\routput_config\030"
          + "\003 \001(\0132*.google.cloud.optimization.v1.Out"
          + "putConfigB\004\342A\001\002\022\032\n\022enable_checkpoints\030\004 "
          + "\001(\010\"\034\n\032BatchOptimizeToursResponse\"\237\017\n\rSh"
          + "ipmentModel\0229\n\tshipments\030\001 \003(\0132&.google."
          + "cloud.optimization.v1.Shipment\0227\n\010vehicl"
          + "es\030\002 \003(\0132%.google.cloud.optimization.v1."
          + "Vehicle\022 \n\023max_active_vehicles\030\004 \001(\005H\000\210\001"
          + "\001\0225\n\021global_start_time\030\005 \001(\0132\032.google.pr"
          + "otobuf.Timestamp\0223\n\017global_end_time\030\006 \001("
          + "\0132\032.google.protobuf.Timestamp\022%\n\035global_"
          + "duration_cost_per_hour\030\007 \001(\001\022f\n\032duration"
          + "_distance_matrices\030\010 \003(\0132B.google.cloud."
          + "optimization.v1.ShipmentModel.DurationDi"
          + "stanceMatrix\022)\n!duration_distance_matrix"
          + "_src_tags\030\t \003(\t\022)\n!duration_distance_mat"
          + "rix_dst_tags\030\n \003(\t\022Q\n\025transition_attribu"
          + "tes\030\013 \003(\01322.google.cloud.optimization.v1"
          + ".TransitionAttributes\022b\n\037shipment_type_i"
          + "ncompatibilities\030\014 \003(\01329.google.cloud.op"
          + "timization.v1.ShipmentTypeIncompatibilit"
          + "y\022Y\n\032shipment_type_requirements\030\r \003(\01325."
          + "google.cloud.optimization.v1.ShipmentTyp"
          + "eRequirement\022T\n\020precedence_rules\030\016 \003(\0132:"
          + ".google.cloud.optimization.v1.ShipmentMo"
          + "del.PrecedenceRule\022N\n\013break_rules\030\017 \003(\0132"
          + "5.google.cloud.optimization.v1.ShipmentM"
          + "odel.BreakRuleB\002\030\001\032\316\001\n\026DurationDistanceM"
          + "atrix\022T\n\004rows\030\001 \003(\0132F.google.cloud.optim"
          + "ization.v1.ShipmentModel.DurationDistanc"
          + "eMatrix.Row\022\031\n\021vehicle_start_tag\030\002 \001(\t\032C"
          + "\n\003Row\022,\n\tdurations\030\001 \003(\0132\031.google.protob"
          + "uf.Duration\022\016\n\006meters\030\002 \003(\001\032\321\001\n\016Preceden"
          + "ceRule\022\030\n\013first_index\030\001 \001(\005H\000\210\001\001\022\031\n\021firs"
          + "t_is_delivery\030\003 \001(\010\022\031\n\014second_index\030\002 \001("
          + "\005H\001\210\001\001\022\032\n\022second_is_delivery\030\004 \001(\010\0222\n\017of"
          + "fset_duration\030\005 \001(\0132\031.google.protobuf.Du"
          + "rationB\016\n\014_first_indexB\017\n\r_second_index\032"
          + "\261\004\n\tBreakRule\022Z\n\016break_requests\030\001 \003(\0132B."
          + "google.cloud.optimization.v1.ShipmentMod"
          + "el.BreakRule.BreakRequest\022h\n\025frequency_c"
          + "onstraints\030\002 \003(\0132I.google.cloud.optimiza"
          + "tion.v1.ShipmentModel.BreakRule.Frequenc"
          + "yConstraint\032\301\001\n\014BreakRequest\022=\n\023earliest"
          + "_start_time\030\001 \001(\0132\032.google.protobuf.Time"
          + "stampB\004\342A\001\002\022;\n\021latest_start_time\030\002 \001(\0132\032"
          + ".google.protobuf.TimestampB\004\342A\001\002\0225\n\014min_"
          + "duration\030\003 \001(\0132\031.google.protobuf.Duratio"
          + "nB\004\342A\001\002\032\225\001\n\023FrequencyConstraint\022;\n\022min_b"
          + "reak_duration\030\001 \001(\0132\031.google.protobuf.Du"
          + "rationB\004\342A\001\002\022A\n\030max_inter_break_duration"
          + "\030\002 \001(\0132\031.google.protobuf.DurationB\004\342A\001\002:"
          + "\002\030\001B\026\n\024_max_active_vehicles\"\200\014\n\010Shipment"
          + "\022D\n\007pickups\030\001 \003(\01323.google.cloud.optimiz"
          + "ation.v1.Shipment.VisitRequest\022G\n\ndelive"
          + "ries\030\002 \003(\01323.google.cloud.optimization.v"
          + "1.Shipment.VisitRequest\022M\n\014load_demands\030"
          + "\016 \003(\01327.google.cloud.optimization.v1.Shi"
          + "pment.LoadDemandsEntry\022\031\n\014penalty_cost\030\004"
          + " \001(\001H\000\210\001\001\022\037\n\027allowed_vehicle_indices\030\005 \003"
          + "(\005\022\031\n\021costs_per_vehicle\030\006 \003(\001\022!\n\031costs_p"
          + "er_vehicle_indices\030\007 \003(\005\0225\n(pickup_to_de"
          + "livery_relative_detour_limit\030\010 \001(\001H\001\210\001\001\022"
          + "K\n(pickup_to_delivery_absolute_detour_li"
          + "mit\030\t \001(\0132\031.google.protobuf.Duration\022@\n\035"
          + "pickup_to_delivery_time_limit\030\n \001(\0132\031.go"
          + "ogle.protobuf.Duration\022\025\n\rshipment_type\030"
          + "\013 \001(\t\022\r\n\005label\030\014 \001(\t\022\016\n\006ignore\030\r \001(\010\022C\n\007"
          + "demands\030\003 \003(\0132..google.cloud.optimizatio"
          + "n.v1.CapacityQuantityB\002\030\001\032\243\005\n\014VisitReque"
          + "st\022-\n\020arrival_location\030\001 \001(\0132\023.google.ty"
          + "pe.LatLng\022@\n\020arrival_waypoint\030\002 \001(\0132&.go"
          + "ogle.cloud.optimization.v1.Waypoint\022/\n\022d"
          + "eparture_location\030\003 \001(\0132\023.google.type.La"
          + "tLng\022B\n\022departure_waypoint\030\004 \001(\0132&.googl"
          + "e.cloud.optimization.v1.Waypoint\022\014\n\004tags"
          + "\030\005 \003(\t\022>\n\014time_windows\030\006 \003(\0132(.google.cl"
          + "oud.optimization.v1.TimeWindow\022+\n\010durati"
          + "on\030\007 \001(\0132\031.google.protobuf.Duration\022\014\n\004c"
          + "ost\030\010 \001(\001\022Z\n\014load_demands\030\014 \003(\0132D.google"
          + ".cloud.optimization.v1.Shipment.VisitReq"
          + "uest.LoadDemandsEntry\022\023\n\013visit_types\030\n \003"
          + "(\t\022\r\n\005label\030\013 \001(\t\022C\n\007demands\030\t \003(\0132..goo"
          + "gle.cloud.optimization.v1.CapacityQuanti"
          + "tyB\002\030\001\032_\n\020LoadDemandsEntry\022\013\n\003key\030\001 \001(\t\022"
          + ":\n\005value\030\002 \001(\0132+.google.cloud.optimizati"
          + "on.v1.Shipment.Load:\0028\001\032\026\n\004Load\022\016\n\006amoun"
          + "t\030\002 \001(\003\032_\n\020LoadDemandsEntry\022\013\n\003key\030\001 \001(\t"
          + "\022:\n\005value\030\002 \001(\0132+.google.cloud.optimizat"
          + "ion.v1.Shipment.Load:\0028\001B\017\n\r_penalty_cos"
          + "tB+\n)_pickup_to_delivery_relative_detour"
          + "_limit\"\242\002\n\033ShipmentTypeIncompatibility\022\r"
          + "\n\005types\030\001 \003(\t\022k\n\024incompatibility_mode\030\002 "
          + "\001(\0162M.google.cloud.optimization.v1.Shipm"
          + "entTypeIncompatibility.IncompatibilityMo"
          + "de\"\206\001\n\023IncompatibilityMode\022$\n INCOMPATIB"
          + "ILITY_MODE_UNSPECIFIED\020\000\022!\n\035NOT_PERFORME"
          + "D_BY_SAME_VEHICLE\020\001\022&\n\"NOT_IN_SAME_VEHIC"
          + "LE_SIMULTANEOUSLY\020\002\"\350\002\n\027ShipmentTypeRequ"
          + "irement\022+\n#required_shipment_type_altern"
          + "atives\030\001 \003(\t\022 \n\030dependent_shipment_types"
          + "\030\002 \003(\t\022_\n\020requirement_mode\030\003 \001(\0162E.googl"
          + "e.cloud.optimization.v1.ShipmentTypeRequ"
          + "irement.RequirementMode\"\234\001\n\017RequirementM"
          + "ode\022 \n\034REQUIREMENT_MODE_UNSPECIFIED\020\000\022\035\n"
          + "\031PERFORMED_BY_SAME_VEHICLE\020\001\022\"\n\036IN_SAME_"
          + "VEHICLE_AT_PICKUP_TIME\020\002\022$\n IN_SAME_VEHI"
          + "CLE_AT_DELIVERY_TIME\020\003\"\301\024\n\007Vehicle\022E\n\013tr"
          + "avel_mode\030\001 \001(\01620.google.cloud.optimizat"
          + "ion.v1.Vehicle.TravelMode\022+\n\016start_locat"
          + "ion\030\003 \001(\0132\023.google.type.LatLng\022>\n\016start_"
          + "waypoint\030\004 \001(\0132&.google.cloud.optimizati"
          + "on.v1.Waypoint\022)\n\014end_location\030\005 \001(\0132\023.g"
          + "oogle.type.LatLng\022<\n\014end_waypoint\030\006 \001(\0132"
          + "&.google.cloud.optimization.v1.Waypoint\022"
          + "\022\n\nstart_tags\030\007 \003(\t\022\020\n\010end_tags\030\010 \003(\t\022D\n"
          + "\022start_time_windows\030\t \003(\0132(.google.cloud"
          + ".optimization.v1.TimeWindow\022B\n\020end_time_"
          + "windows\030\n \003(\0132(.google.cloud.optimizatio"
          + "n.v1.TimeWindow\022%\n\030travel_duration_multi"
          + "ple\030\013 \001(\001H\000\210\001\001\022O\n\020unloading_policy\030\014 \001(\016"
          + "25.google.cloud.optimization.v1.Vehicle."
          + "UnloadingPolicy\022J\n\013load_limits\030\036 \003(\01325.g"
          + "oogle.cloud.optimization.v1.Vehicle.Load"
          + "LimitsEntry\022\025\n\rcost_per_hour\030\020 \001(\001\022\036\n\026co"
          + "st_per_traveled_hour\030\021 \001(\001\022\032\n\022cost_per_k"
          + "ilometer\030\022 \001(\001\022\022\n\nfixed_cost\030\023 \001(\001\022\036\n\026us"
          + "ed_if_route_is_empty\030\024 \001(\010\022Q\n\024route_dura"
          + "tion_limit\030\025 \001(\01323.google.cloud.optimiza"
          + "tion.v1.Vehicle.DurationLimit\022R\n\025travel_"
          + "duration_limit\030\026 \001(\01323.google.cloud.opti"
          + "mization.v1.Vehicle.DurationLimit\022I\n\024rou"
          + "te_distance_limit\030\027 \001(\0132+.google.cloud.o"
          + "ptimization.v1.DistanceLimit\022v\n#extra_vi"
          + "sit_duration_for_visit_type\030\030 \003(\0132I.goog"
          + "le.cloud.optimization.v1.Vehicle.ExtraVi"
          + "sitDurationForVisitTypeEntry\022;\n\nbreak_ru"
          + "le\030\031 \001(\0132\'.google.cloud.optimization.v1."
          + "BreakRule\022\r\n\005label\030\033 \001(\t\022\016\n\006ignore\030\034 \001(\010"
          + "\022\036\n\022break_rule_indices\030\035 \003(\005B\002\030\001\022F\n\ncapa"
          + "cities\030\r \003(\0132..google.cloud.optimization"
          + ".v1.CapacityQuantityB\002\030\001\022X\n\024start_load_i"
          + "ntervals\030\016 \003(\01326.google.cloud.optimizati"
          + "on.v1.CapacityQuantityIntervalB\002\030\001\022V\n\022en"
          + "d_load_intervals\030\017 \003(\01326.google.cloud.op"
          + "timization.v1.CapacityQuantityIntervalB\002"
          + "\030\001\032\313\002\n\tLoadLimit\022\025\n\010max_load\030\001 \001(\003H\000\210\001\001\022"
          + "\025\n\rsoft_max_load\030\002 \001(\003\022$\n\034cost_per_unit_"
          + "above_soft_max\030\003 \001(\001\022U\n\023start_load_inter"
          + "val\030\004 \001(\01328.google.cloud.optimization.v1"
          + ".Vehicle.LoadLimit.Interval\022S\n\021end_load_"
          + "interval\030\005 \001(\01328.google.cloud.optimizati"
          + "on.v1.Vehicle.LoadLimit.Interval\0321\n\010Inte"
          + "rval\022\013\n\003min\030\001 \001(\003\022\020\n\003max\030\002 \001(\003H\000\210\001\001B\006\n\004_"
          + "maxB\013\n\t_max_load\032\360\002\n\rDurationLimit\022/\n\014ma"
          + "x_duration\030\001 \001(\0132\031.google.protobuf.Durat"
          + "ion\0224\n\021soft_max_duration\030\002 \001(\0132\031.google."
          + "protobuf.Duration\022)\n\034cost_per_hour_after"
          + "_soft_max\030\003 \001(\001H\000\210\001\001\022>\n\033quadratic_soft_m"
          + "ax_duration\030\004 \001(\0132\031.google.protobuf.Dura"
          + "tion\022:\n-cost_per_square_hour_after_quadr"
          + "atic_soft_max\030\005 \001(\001H\001\210\001\001B\037\n\035_cost_per_ho"
          + "ur_after_soft_maxB0\n._cost_per_square_ho"
          + "ur_after_quadratic_soft_max\032b\n\017LoadLimit"
          + "sEntry\022\013\n\003key\030\001 \001(\t\022>\n\005value\030\002 \001(\0132/.goo"
          + "gle.cloud.optimization.v1.Vehicle.LoadLi"
          + "mit:\0028\001\032`\n#ExtraVisitDurationForVisitTyp"
          + "eEntry\022\013\n\003key\030\001 \001(\t\022(\n\005value\030\002 \001(\0132\031.goo"
          + "gle.protobuf.Duration:\0028\001\"6\n\nTravelMode\022"
          + "\033\n\027TRAVEL_MODE_UNSPECIFIED\020\000\022\013\n\007DRIVING\020"
          + "\001\"b\n\017UnloadingPolicy\022 \n\034UNLOADING_POLICY"
          + "_UNSPECIFIED\020\000\022\025\n\021LAST_IN_FIRST_OUT\020\001\022\026\n"
          + "\022FIRST_IN_FIRST_OUT\020\002B\033\n\031_travel_duratio"
          + "n_multiple\"\204\003\n\nTimeWindow\022.\n\nstart_time\030"
          + "\001 \001(\0132\032.google.protobuf.Timestamp\022,\n\010end"
          + "_time\030\002 \001(\0132\032.google.protobuf.Timestamp\022"
          + "3\n\017soft_start_time\030\003 \001(\0132\032.google.protob"
          + "uf.Timestamp\0221\n\rsoft_end_time\030\004 \001(\0132\032.go"
          + "ogle.protobuf.Timestamp\0221\n$cost_per_hour"
          + "_before_soft_start_time\030\005 \001(\001H\000\210\001\001\022.\n!co"
          + "st_per_hour_after_soft_end_time\030\006 \001(\001H\001\210"
          + "\001\001B\'\n%_cost_per_hour_before_soft_start_t"
          + "imeB$\n\"_cost_per_hour_after_soft_end_tim"
          + "e\"3\n\020CapacityQuantity\022\014\n\004type\030\001 \001(\t\022\r\n\005v"
          + "alue\030\002 \001(\003:\002\030\001\"x\n\030CapacityQuantityInterv"
          + "al\022\014\n\004type\030\001 \001(\t\022\026\n\tmin_value\030\002 \001(\003H\000\210\001\001"
          + "\022\026\n\tmax_value\030\003 \001(\003H\001\210\001\001:\002\030\001B\014\n\n_min_val"
          + "ueB\014\n\n_max_value\"\277\001\n\rDistanceLimit\022\027\n\nma"
          + "x_meters\030\001 \001(\003H\000\210\001\001\022\034\n\017soft_max_meters\030\002"
          + " \001(\003H\001\210\001\001\022.\n!cost_per_kilometer_above_so"
          + "ft_max\030\003 \001(\001H\002\210\001\001B\r\n\013_max_metersB\022\n\020_sof"
          + "t_max_metersB$\n\"_cost_per_kilometer_abov"
          + "e_soft_max\"\205\002\n\024TransitionAttributes\022\017\n\007s"
          + "rc_tag\030\001 \001(\t\022\030\n\020excluded_src_tag\030\002 \001(\t\022\017"
          + "\n\007dst_tag\030\003 \001(\t\022\030\n\020excluded_dst_tag\030\004 \001("
          + "\t\022\014\n\004cost\030\005 \001(\001\022\032\n\022cost_per_kilometer\030\006 "
          + "\001(\001\022C\n\016distance_limit\030\007 \001(\0132+.google.clo"
          + "ud.optimization.v1.DistanceLimit\022(\n\005dela"
          + "y\030\010 \001(\0132\031.google.protobuf.Duration\"\201\001\n\010W"
          + "aypoint\022:\n\010location\030\001 \001(\0132&.google.cloud"
          + ".optimization.v1.LocationH\000\022\022\n\010place_id\030"
          + "\002 \001(\tH\000\022\024\n\014side_of_road\030\003 \001(\010B\017\n\rlocatio"
          + "n_type\"R\n\010Location\022$\n\007lat_lng\030\001 \001(\0132\023.go"
          + "ogle.type.LatLng\022\024\n\007heading\030\002 \001(\005H\000\210\001\001B\n"
          + "\n\010_heading\"\221\004\n\tBreakRule\022L\n\016break_reques"
          + "ts\030\001 \003(\01324.google.cloud.optimization.v1."
          + "BreakRule.BreakRequest\022Z\n\025frequency_cons"
          + "traints\030\002 \003(\0132;.google.cloud.optimizatio"
          + "n.v1.BreakRule.FrequencyConstraint\032\301\001\n\014B"
          + "reakRequest\022=\n\023earliest_start_time\030\001 \001(\013"
          + "2\032.google.protobuf.TimestampB\004\342A\001\002\022;\n\021la"
          + "test_start_time\030\002 \001(\0132\032.google.protobuf."
          + "TimestampB\004\342A\001\002\0225\n\014min_duration\030\003 \001(\0132\031."
          + "google.protobuf.DurationB\004\342A\001\002\032\225\001\n\023Frequ"
          + "encyConstraint\022;\n\022min_break_duration\030\001 \001"
          + "(\0132\031.google.protobuf.DurationB\004\342A\001\002\022A\n\030m"
          + "ax_inter_break_duration\030\002 \001(\0132\031.google.p"
          + "rotobuf.DurationB\004\342A\001\002\"\303\026\n\rShipmentRoute"
          + "\022\025\n\rvehicle_index\030\001 \001(\005\022\025\n\rvehicle_label"
          + "\030\002 \001(\t\0226\n\022vehicle_start_time\030\005 \001(\0132\032.goo"
          + "gle.protobuf.Timestamp\0224\n\020vehicle_end_ti"
          + "me\030\006 \001(\0132\032.google.protobuf.Timestamp\022A\n\006"
          + "visits\030\007 \003(\01321.google.cloud.optimization"
          + ".v1.ShipmentRoute.Visit\022K\n\013transitions\030\010"
          + " \003(\01326.google.cloud.optimization.v1.Ship"
          + "mentRoute.Transition\022#\n\033has_traffic_infe"
          + "asibilities\030\t \001(\010\022S\n\016route_polyline\030\n \001("
          + "\0132;.google.cloud.optimization.v1.Shipmen"
          + "tRoute.EncodedPolyline\022A\n\006breaks\030\013 \003(\01321"
          + ".google.cloud.optimization.v1.ShipmentRo"
          + "ute.Break\022@\n\007metrics\030\014 \001(\0132/.google.clou"
          + "d.optimization.v1.AggregatedMetrics\022P\n\013r"
          + "oute_costs\030\021 \003(\0132;.google.cloud.optimiza"
          + "tion.v1.ShipmentRoute.RouteCostsEntry\022\030\n"
          + "\020route_total_cost\030\022 \001(\001\022E\n\tend_loads\030\r \003"
          + "(\0132..google.cloud.optimization.v1.Capaci"
          + "tyQuantityB\002\030\001\022P\n\014travel_steps\030\016 \003(\01326.g"
          + "oogle.cloud.optimization.v1.ShipmentRout"
          + "e.TravelStepB\002\030\001\0225\n\016vehicle_detour\030\017 \001(\013"
          + "2\031.google.protobuf.DurationB\002\030\001\022W\n\030delay"
          + "_before_vehicle_end\030\020 \001(\01321.google.cloud"
          + ".optimization.v1.ShipmentRoute.DelayB\002\030\001"
          + "\032h\n\005Delay\022.\n\nstart_time\030\001 \001(\0132\032.google.p"
          + "rotobuf.Timestamp\022+\n\010duration\030\002 \001(\0132\031.go"
          + "ogle.protobuf.Duration:\002\030\001\032\365\004\n\005Visit\022\026\n\016"
          + "shipment_index\030\001 \001(\005\022\021\n\tis_pickup\030\002 \001(\010\022"
          + "\033\n\023visit_request_index\030\003 \001(\005\022.\n\nstart_ti"
          + "me\030\004 \001(\0132\032.google.protobuf.Timestamp\022X\n\014"
          + "load_demands\030\013 \003(\0132B.google.cloud.optimi"
          + "zation.v1.ShipmentRoute.Visit.LoadDemand"
          + "sEntry\022)\n\006detour\030\006 \001(\0132\031.google.protobuf"
          + ".Duration\022\026\n\016shipment_label\030\007 \001(\t\022\023\n\013vis"
          + "it_label\030\010 \001(\t\022I\n\rarrival_loads\030\t \003(\0132.."
          + "google.cloud.optimization.v1.CapacityQua"
          + "ntityB\002\030\001\022Q\n\022delay_before_start\030\n \001(\01321."
          + "google.cloud.optimization.v1.ShipmentRou"
          + "te.DelayB\002\030\001\022C\n\007demands\030\005 \003(\0132..google.c"
          + "loud.optimization.v1.CapacityQuantityB\002\030"
          + "\001\032_\n\020LoadDemandsEntry\022\013\n\003key\030\001 \001(\t\022:\n\005va"
          + "lue\030\002 \001(\0132+.google.cloud.optimization.v1"
          + ".Shipment.Load:\0028\001\032\344\005\n\nTransition\0222\n\017tra"
          + "vel_duration\030\001 \001(\0132\031.google.protobuf.Dur"
          + "ation\022\036\n\026travel_distance_meters\030\002 \001(\001\022 \n"
          + "\030traffic_info_unavailable\030\003 \001(\010\0221\n\016delay"
          + "_duration\030\004 \001(\0132\031.google.protobuf.Durati"
          + "on\0221\n\016break_duration\030\005 \001(\0132\031.google.prot"
          + "obuf.Duration\0220\n\rwait_duration\030\006 \001(\0132\031.g"
          + "oogle.protobuf.Duration\0221\n\016total_duratio"
          + "n\030\007 \001(\0132\031.google.protobuf.Duration\022.\n\nst"
          + "art_time\030\010 \001(\0132\032.google.protobuf.Timesta"
          + "mp\022S\n\016route_polyline\030\t \001(\0132;.google.clou"
          + "d.optimization.v1.ShipmentRoute.EncodedP"
          + "olyline\022_\n\rvehicle_loads\030\013 \003(\0132H.google."
          + "cloud.optimization.v1.ShipmentRoute.Tran"
          + "sition.VehicleLoadsEntry\022A\n\005loads\030\n \003(\0132"
          + "..google.cloud.optimization.v1.CapacityQ"
          + "uantityB\002\030\001\032l\n\021VehicleLoadsEntry\022\013\n\003key\030"
          + "\001 \001(\t\022F\n\005value\030\002 \001(\01327.google.cloud.opti"
          + "mization.v1.ShipmentRoute.VehicleLoad:\0028"
          + "\001\032\035\n\013VehicleLoad\022\016\n\006amount\030\001 \001(\003\032!\n\017Enco"
          + "dedPolyline\022\016\n\006points\030\001 \001(\t\032d\n\005Break\022.\n\n"
          + "start_time\030\001 \001(\0132\032.google.protobuf.Times"
          + "tamp\022+\n\010duration\030\002 \001(\0132\031.google.protobuf"
          + ".Duration\032\315\001\n\nTravelStep\022+\n\010duration\030\001 \001"
          + "(\0132\031.google.protobuf.Duration\022\027\n\017distanc"
          + "e_meters\030\002 \001(\001\022 \n\030traffic_info_unavailab"
          + "le\030\003 \001(\010\022S\n\016route_polyline\030\004 \001(\0132;.googl"
          + "e.cloud.optimization.v1.ShipmentRoute.En"
          + "codedPolyline:\002\030\001\0321\n\017RouteCostsEntry\022\013\n\003"
          + "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\001:\0028\001\"\376\004\n\017Skipped"
          + "Shipment\022\r\n\005index\030\001 \001(\005\022\r\n\005label\030\002 \001(\t\022E"
          + "\n\007reasons\030\003 \003(\01324.google.cloud.optimizat"
          + "ion.v1.SkippedShipment.Reason\032\205\004\n\006Reason"
          + "\022G\n\004code\030\001 \001(\01629.google.cloud.optimizati"
          + "on.v1.SkippedShipment.Reason.Code\022\"\n\025exa"
          + "mple_vehicle_index\030\002 \001(\005H\000\210\001\001\022&\n\036example"
          + "_exceeded_capacity_type\030\003 \001(\t\"\313\002\n\004Code\022\024"
          + "\n\020CODE_UNSPECIFIED\020\000\022\016\n\nNO_VEHICLE\020\001\022#\n\037"
          + "DEMAND_EXCEEDS_VEHICLE_CAPACITY\020\002\0225\n1CAN"
          + "NOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE"
          + "_LIMIT\020\003\0225\n1CANNOT_BE_PERFORMED_WITHIN_V"
          + "EHICLE_DURATION_LIMIT\020\004\022<\n8CANNOT_BE_PER"
          + "FORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LI"
          + "MIT\020\005\0223\n/CANNOT_BE_PERFORMED_WITHIN_VEHI"
          + "CLE_TIME_WINDOWS\020\006\022\027\n\023VEHICLE_NOT_ALLOWE"
          + "D\020\007B\030\n\026_example_vehicle_index\"\330\005\n\021Aggreg"
          + "atedMetrics\022 \n\030performed_shipment_count\030"
          + "\001 \001(\005\0222\n\017travel_duration\030\002 \001(\0132\031.google."
          + "protobuf.Duration\0220\n\rwait_duration\030\003 \001(\013"
          + "2\031.google.protobuf.Duration\0221\n\016delay_dur"
          + "ation\030\004 \001(\0132\031.google.protobuf.Duration\0221"
          + "\n\016break_duration\030\005 \001(\0132\031.google.protobuf"
          + ".Duration\0221\n\016visit_duration\030\006 \001(\0132\031.goog"
          + "le.protobuf.Duration\0221\n\016total_duration\030\007"
          + " \001(\0132\031.google.protobuf.Duration\022\036\n\026trave"
          + "l_distance_meters\030\010 \001(\001\022P\n\tmax_loads\030\t \003"
          + "(\0132=.google.cloud.optimization.v1.Aggreg"
          + "atedMetrics.MaxLoadsEntry\022M\n\005costs\030\n \003(\013"
          + "2:.google.cloud.optimization.v1.Aggregat"
          + "edMetrics.CostsEntryB\002\030\001\022\026\n\ntotal_cost\030\013"
          + " \001(\001B\002\030\001\032h\n\rMaxLoadsEntry\022\013\n\003key\030\001 \001(\t\022F"
          + "\n\005value\030\002 \001(\01327.google.cloud.optimizatio"
          + "n.v1.ShipmentRoute.VehicleLoad:\0028\001\032,\n\nCo"
          + "stsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\001:\0028\001"
          + "\"\237\006\n\032InjectedSolutionConstraint\022;\n\006route"
          + "s\030\001 \003(\0132+.google.cloud.optimization.v1.S"
          + "hipmentRoute\022H\n\021skipped_shipments\030\002 \003(\0132"
          + "-.google.cloud.optimization.v1.SkippedSh"
          + "ipment\022m\n\026constraint_relaxations\030\003 \003(\0132M"
          + ".google.cloud.optimization.v1.InjectedSo"
          + "lutionConstraint.ConstraintRelaxation\032\212\004"
          + "\n\024ConstraintRelaxation\022m\n\013relaxations\030\001 "
          + "\003(\0132X.google.cloud.optimization.v1.Injec"
          + "tedSolutionConstraint.ConstraintRelaxati"
          + "on.Relaxation\022\027\n\017vehicle_indices\030\002 \003(\005\032\351",
      "\002\n\nRelaxation\022m\n\005level\030\001 \001(\0162^.google.cl"
          + "oud.optimization.v1.InjectedSolutionCons"
          + "traint.ConstraintRelaxation.Relaxation.L"
          + "evel\0222\n\016threshold_time\030\002 \001(\0132\032.google.pr"
          + "otobuf.Timestamp\022\035\n\025threshold_visit_coun"
          + "t\030\003 \001(\005\"\230\001\n\005Level\022\025\n\021LEVEL_UNSPECIFIED\020\000"
          + "\022%\n!RELAX_VISIT_TIMES_AFTER_THRESHOLD\020\001\022"
          + "2\n.RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_"
          + "THRESHOLD\020\002\022\035\n\031RELAX_ALL_AFTER_THRESHOLD"
          + "\020\003\"\375\002\n\034OptimizeToursValidationError\022\014\n\004c"
          + "ode\030\001 \001(\005\022\024\n\014display_name\030\002 \001(\t\022Y\n\006field"
          + "s\030\003 \003(\0132I.google.cloud.optimization.v1.O"
          + "ptimizeToursValidationError.FieldReferen"
          + "ce\022\025\n\rerror_message\030\004 \001(\t\022\030\n\020offending_v"
          + "alues\030\005 \001(\t\032\254\001\n\016FieldReference\022\014\n\004name\030\001"
          + " \001(\t\022\017\n\005index\030\002 \001(\005H\000\022\r\n\003key\030\004 \001(\tH\000\022\\\n\t"
          + "sub_field\030\003 \001(\0132I.google.cloud.optimizat"
          + "ion.v1.OptimizeToursValidationError.Fiel"
          + "dReferenceB\016\n\014index_or_key2\340\004\n\014FleetRout"
          + "ing\022\342\001\n\rOptimizeTours\0222.google.cloud.opt"
          + "imization.v1.OptimizeToursRequest\0323.goog"
          + "le.cloud.optimization.v1.OptimizeToursRe"
          + "sponse\"h\202\323\344\223\002b\"1/v1/{parent=projects/*/l"
          + "ocations/*}:optimizeTours:\001*Z*\"%/v1/{par"
          + "ent=projects/*}:optimizeTours:\001*\022\224\002\n\022Bat"
          + "chOptimizeTours\0227.google.cloud.optimizat"
          + "ion.v1.BatchOptimizeToursRequest\032\035.googl"
          + "e.longrunning.Operation\"\245\001\312A0\n\032BatchOpti"
          + "mizeToursResponse\022\022AsyncModelMetadata\202\323\344"
          + "\223\002l\"6/v1/{parent=projects/*/locations/*}"
          + ":batchOptimizeTours:\001*Z/\"*/v1/{parent=pr"
          + "ojects/*}:batchOptimizeTours:\001*\032T\312A clou"
          + "doptimization.googleapis.com\322A.https://w"
          + "ww.googleapis.com/auth/cloud-platformB}\n"
          + " com.google.cloud.optimization.v1B\021Fleet"
          + "RoutingProtoP\001ZDcloud.google.com/go/opti"
          + "mization/apiv1/optimizationpb;optimizati"
          + "onpbb\006proto3"
    };
    descriptor =
        com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
            descriptorData,
            new com.google.protobuf.Descriptors.FileDescriptor[] {
              com.google.api.AnnotationsProto.getDescriptor(),
              com.google.api.ClientProto.getDescriptor(),
              com.google.api.FieldBehaviorProto.getDescriptor(),
              com.google.cloud.optimization.v1.AsyncModelProto.getDescriptor(),
              com.google.longrunning.OperationsProto.getDescriptor(),
              com.google.protobuf.DurationProto.getDescriptor(),
              com.google.protobuf.TimestampProto.getDescriptor(),
              com.google.type.LatLngProto.getDescriptor(),
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursRequest_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_google_cloud_optimization_v1_OptimizeToursRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursRequest_descriptor,
            new java.lang.String[] {
              "Parent",
              "Timeout",
              "Model",
              "SolvingMode",
              "MaxValidationErrors",
              "SearchMode",
              "InjectedFirstSolutionRoutes",
              "InjectedSolutionConstraint",
              "RefreshDetailsRoutes",
              "InterpretInjectedSolutionsUsingLabels",
              "ConsiderRoadTraffic",
              "PopulatePolylines",
              "PopulateTransitionPolylines",
              "AllowLargeDeadlineDespiteInterruptionRisk",
              "UseGeodesicDistances",
              "GeodesicMetersPerSecond",
              "Label",
              "PopulateTravelStepPolylines",
              "MaxValidationErrors",
              "GeodesicMetersPerSecond",
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursResponse_descriptor,
            new java.lang.String[] {
              "Routes",
              "RequestLabel",
              "SkippedShipments",
              "ValidationErrors",
              "Metrics",
              "TotalCost",
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_descriptor =
        internal_static_google_cloud_optimization_v1_OptimizeToursResponse_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_descriptor,
            new java.lang.String[] {
              "AggregatedRouteMetrics",
              "SkippedMandatoryShipmentCount",
              "UsedVehicleCount",
              "EarliestVehicleStartTime",
              "LatestVehicleEndTime",
              "Costs",
              "TotalCost",
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_CostsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_CostsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursResponse_Metrics_CostsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_descriptor =
        getDescriptor().getMessageTypes().get(2);
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_descriptor,
            new java.lang.String[] {
              "Parent", "ModelConfigs",
            });
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_AsyncModelConfig_descriptor =
        internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_AsyncModelConfig_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BatchOptimizeToursRequest_AsyncModelConfig_descriptor,
            new java.lang.String[] {
              "DisplayName", "InputConfig", "OutputConfig", "EnableCheckpoints",
            });
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursResponse_descriptor =
        getDescriptor().getMessageTypes().get(3);
    internal_static_google_cloud_optimization_v1_BatchOptimizeToursResponse_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BatchOptimizeToursResponse_descriptor,
            new java.lang.String[] {});
    internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor =
        getDescriptor().getMessageTypes().get(4);
    internal_static_google_cloud_optimization_v1_ShipmentModel_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor,
            new java.lang.String[] {
              "Shipments",
              "Vehicles",
              "MaxActiveVehicles",
              "GlobalStartTime",
              "GlobalEndTime",
              "GlobalDurationCostPerHour",
              "DurationDistanceMatrices",
              "DurationDistanceMatrixSrcTags",
              "DurationDistanceMatrixDstTags",
              "TransitionAttributes",
              "ShipmentTypeIncompatibilities",
              "ShipmentTypeRequirements",
              "PrecedenceRules",
              "BreakRules",
              "MaxActiveVehicles",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_descriptor,
            new java.lang.String[] {
              "Rows", "VehicleStartTag",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_Row_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_Row_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_DurationDistanceMatrix_Row_descriptor,
            new java.lang.String[] {
              "Durations", "Meters",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_PrecedenceRule_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor
            .getNestedTypes()
            .get(1);
    internal_static_google_cloud_optimization_v1_ShipmentModel_PrecedenceRule_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_PrecedenceRule_descriptor,
            new java.lang.String[] {
              "FirstIndex",
              "FirstIsDelivery",
              "SecondIndex",
              "SecondIsDelivery",
              "OffsetDuration",
              "FirstIndex",
              "SecondIndex",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_descriptor
            .getNestedTypes()
            .get(2);
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_descriptor,
            new java.lang.String[] {
              "BreakRequests", "FrequencyConstraints",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_BreakRequest_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_BreakRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_BreakRequest_descriptor,
            new java.lang.String[] {
              "EarliestStartTime", "LatestStartTime", "MinDuration",
            });
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_FrequencyConstraint_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_descriptor
            .getNestedTypes()
            .get(1);
    internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_FrequencyConstraint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentModel_BreakRule_FrequencyConstraint_descriptor,
            new java.lang.String[] {
              "MinBreakDuration", "MaxInterBreakDuration",
            });
    internal_static_google_cloud_optimization_v1_Shipment_descriptor =
        getDescriptor().getMessageTypes().get(5);
    internal_static_google_cloud_optimization_v1_Shipment_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Shipment_descriptor,
            new java.lang.String[] {
              "Pickups",
              "Deliveries",
              "LoadDemands",
              "PenaltyCost",
              "AllowedVehicleIndices",
              "CostsPerVehicle",
              "CostsPerVehicleIndices",
              "PickupToDeliveryRelativeDetourLimit",
              "PickupToDeliveryAbsoluteDetourLimit",
              "PickupToDeliveryTimeLimit",
              "ShipmentType",
              "Label",
              "Ignore",
              "Demands",
              "PenaltyCost",
              "PickupToDeliveryRelativeDetourLimit",
            });
    internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_descriptor =
        internal_static_google_cloud_optimization_v1_Shipment_descriptor.getNestedTypes().get(0);
    internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_descriptor,
            new java.lang.String[] {
              "ArrivalLocation",
              "ArrivalWaypoint",
              "DepartureLocation",
              "DepartureWaypoint",
              "Tags",
              "TimeWindows",
              "Duration",
              "Cost",
              "LoadDemands",
              "VisitTypes",
              "Label",
              "Demands",
            });
    internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_LoadDemandsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_LoadDemandsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Shipment_VisitRequest_LoadDemandsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_Shipment_Load_descriptor =
        internal_static_google_cloud_optimization_v1_Shipment_descriptor.getNestedTypes().get(1);
    internal_static_google_cloud_optimization_v1_Shipment_Load_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Shipment_Load_descriptor,
            new java.lang.String[] {
              "Amount",
            });
    internal_static_google_cloud_optimization_v1_Shipment_LoadDemandsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_Shipment_descriptor.getNestedTypes().get(2);
    internal_static_google_cloud_optimization_v1_Shipment_LoadDemandsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Shipment_LoadDemandsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_ShipmentTypeIncompatibility_descriptor =
        getDescriptor().getMessageTypes().get(6);
    internal_static_google_cloud_optimization_v1_ShipmentTypeIncompatibility_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentTypeIncompatibility_descriptor,
            new java.lang.String[] {
              "Types", "IncompatibilityMode",
            });
    internal_static_google_cloud_optimization_v1_ShipmentTypeRequirement_descriptor =
        getDescriptor().getMessageTypes().get(7);
    internal_static_google_cloud_optimization_v1_ShipmentTypeRequirement_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentTypeRequirement_descriptor,
            new java.lang.String[] {
              "RequiredShipmentTypeAlternatives", "DependentShipmentTypes", "RequirementMode",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_descriptor =
        getDescriptor().getMessageTypes().get(8);
    internal_static_google_cloud_optimization_v1_Vehicle_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_descriptor,
            new java.lang.String[] {
              "TravelMode",
              "StartLocation",
              "StartWaypoint",
              "EndLocation",
              "EndWaypoint",
              "StartTags",
              "EndTags",
              "StartTimeWindows",
              "EndTimeWindows",
              "TravelDurationMultiple",
              "UnloadingPolicy",
              "LoadLimits",
              "CostPerHour",
              "CostPerTraveledHour",
              "CostPerKilometer",
              "FixedCost",
              "UsedIfRouteIsEmpty",
              "RouteDurationLimit",
              "TravelDurationLimit",
              "RouteDistanceLimit",
              "ExtraVisitDurationForVisitType",
              "BreakRule",
              "Label",
              "Ignore",
              "BreakRuleIndices",
              "Capacities",
              "StartLoadIntervals",
              "EndLoadIntervals",
              "TravelDurationMultiple",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_descriptor =
        internal_static_google_cloud_optimization_v1_Vehicle_descriptor.getNestedTypes().get(0);
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_descriptor,
            new java.lang.String[] {
              "MaxLoad",
              "SoftMaxLoad",
              "CostPerUnitAboveSoftMax",
              "StartLoadInterval",
              "EndLoadInterval",
              "MaxLoad",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_Interval_descriptor =
        internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_Interval_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_LoadLimit_Interval_descriptor,
            new java.lang.String[] {
              "Min", "Max", "Max",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_DurationLimit_descriptor =
        internal_static_google_cloud_optimization_v1_Vehicle_descriptor.getNestedTypes().get(1);
    internal_static_google_cloud_optimization_v1_Vehicle_DurationLimit_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_DurationLimit_descriptor,
            new java.lang.String[] {
              "MaxDuration",
              "SoftMaxDuration",
              "CostPerHourAfterSoftMax",
              "QuadraticSoftMaxDuration",
              "CostPerSquareHourAfterQuadraticSoftMax",
              "CostPerHourAfterSoftMax",
              "CostPerSquareHourAfterQuadraticSoftMax",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimitsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_Vehicle_descriptor.getNestedTypes().get(2);
    internal_static_google_cloud_optimization_v1_Vehicle_LoadLimitsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_LoadLimitsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_Vehicle_ExtraVisitDurationForVisitTypeEntry_descriptor =
        internal_static_google_cloud_optimization_v1_Vehicle_descriptor.getNestedTypes().get(3);
    internal_static_google_cloud_optimization_v1_Vehicle_ExtraVisitDurationForVisitTypeEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Vehicle_ExtraVisitDurationForVisitTypeEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_TimeWindow_descriptor =
        getDescriptor().getMessageTypes().get(9);
    internal_static_google_cloud_optimization_v1_TimeWindow_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_TimeWindow_descriptor,
            new java.lang.String[] {
              "StartTime",
              "EndTime",
              "SoftStartTime",
              "SoftEndTime",
              "CostPerHourBeforeSoftStartTime",
              "CostPerHourAfterSoftEndTime",
              "CostPerHourBeforeSoftStartTime",
              "CostPerHourAfterSoftEndTime",
            });
    internal_static_google_cloud_optimization_v1_CapacityQuantity_descriptor =
        getDescriptor().getMessageTypes().get(10);
    internal_static_google_cloud_optimization_v1_CapacityQuantity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_CapacityQuantity_descriptor,
            new java.lang.String[] {
              "Type", "Value",
            });
    internal_static_google_cloud_optimization_v1_CapacityQuantityInterval_descriptor =
        getDescriptor().getMessageTypes().get(11);
    internal_static_google_cloud_optimization_v1_CapacityQuantityInterval_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_CapacityQuantityInterval_descriptor,
            new java.lang.String[] {
              "Type", "MinValue", "MaxValue", "MinValue", "MaxValue",
            });
    internal_static_google_cloud_optimization_v1_DistanceLimit_descriptor =
        getDescriptor().getMessageTypes().get(12);
    internal_static_google_cloud_optimization_v1_DistanceLimit_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_DistanceLimit_descriptor,
            new java.lang.String[] {
              "MaxMeters",
              "SoftMaxMeters",
              "CostPerKilometerAboveSoftMax",
              "MaxMeters",
              "SoftMaxMeters",
              "CostPerKilometerAboveSoftMax",
            });
    internal_static_google_cloud_optimization_v1_TransitionAttributes_descriptor =
        getDescriptor().getMessageTypes().get(13);
    internal_static_google_cloud_optimization_v1_TransitionAttributes_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_TransitionAttributes_descriptor,
            new java.lang.String[] {
              "SrcTag",
              "ExcludedSrcTag",
              "DstTag",
              "ExcludedDstTag",
              "Cost",
              "CostPerKilometer",
              "DistanceLimit",
              "Delay",
            });
    internal_static_google_cloud_optimization_v1_Waypoint_descriptor =
        getDescriptor().getMessageTypes().get(14);
    internal_static_google_cloud_optimization_v1_Waypoint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Waypoint_descriptor,
            new java.lang.String[] {
              "Location", "PlaceId", "SideOfRoad", "LocationType",
            });
    internal_static_google_cloud_optimization_v1_Location_descriptor =
        getDescriptor().getMessageTypes().get(15);
    internal_static_google_cloud_optimization_v1_Location_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_Location_descriptor,
            new java.lang.String[] {
              "LatLng", "Heading", "Heading",
            });
    internal_static_google_cloud_optimization_v1_BreakRule_descriptor =
        getDescriptor().getMessageTypes().get(16);
    internal_static_google_cloud_optimization_v1_BreakRule_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BreakRule_descriptor,
            new java.lang.String[] {
              "BreakRequests", "FrequencyConstraints",
            });
    internal_static_google_cloud_optimization_v1_BreakRule_BreakRequest_descriptor =
        internal_static_google_cloud_optimization_v1_BreakRule_descriptor.getNestedTypes().get(0);
    internal_static_google_cloud_optimization_v1_BreakRule_BreakRequest_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BreakRule_BreakRequest_descriptor,
            new java.lang.String[] {
              "EarliestStartTime", "LatestStartTime", "MinDuration",
            });
    internal_static_google_cloud_optimization_v1_BreakRule_FrequencyConstraint_descriptor =
        internal_static_google_cloud_optimization_v1_BreakRule_descriptor.getNestedTypes().get(1);
    internal_static_google_cloud_optimization_v1_BreakRule_FrequencyConstraint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_BreakRule_FrequencyConstraint_descriptor,
            new java.lang.String[] {
              "MinBreakDuration", "MaxInterBreakDuration",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor =
        getDescriptor().getMessageTypes().get(17);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor,
            new java.lang.String[] {
              "VehicleIndex",
              "VehicleLabel",
              "VehicleStartTime",
              "VehicleEndTime",
              "Visits",
              "Transitions",
              "HasTrafficInfeasibilities",
              "RoutePolyline",
              "Breaks",
              "Metrics",
              "RouteCosts",
              "RouteTotalCost",
              "EndLoads",
              "TravelSteps",
              "VehicleDetour",
              "DelayBeforeVehicleEnd",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Delay_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Delay_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Delay_descriptor,
            new java.lang.String[] {
              "StartTime", "Duration",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(1);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_descriptor,
            new java.lang.String[] {
              "ShipmentIndex",
              "IsPickup",
              "VisitRequestIndex",
              "StartTime",
              "LoadDemands",
              "Detour",
              "ShipmentLabel",
              "VisitLabel",
              "ArrivalLoads",
              "DelayBeforeStart",
              "Demands",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_LoadDemandsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_LoadDemandsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Visit_LoadDemandsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(2);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_descriptor,
            new java.lang.String[] {
              "TravelDuration",
              "TravelDistanceMeters",
              "TrafficInfoUnavailable",
              "DelayDuration",
              "BreakDuration",
              "WaitDuration",
              "TotalDuration",
              "StartTime",
              "RoutePolyline",
              "VehicleLoads",
              "Loads",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_VehicleLoadsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_VehicleLoadsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Transition_VehicleLoadsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_VehicleLoad_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(3);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_VehicleLoad_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_VehicleLoad_descriptor,
            new java.lang.String[] {
              "Amount",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_EncodedPolyline_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(4);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_EncodedPolyline_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_EncodedPolyline_descriptor,
            new java.lang.String[] {
              "Points",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Break_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(5);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_Break_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_Break_descriptor,
            new java.lang.String[] {
              "StartTime", "Duration",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_TravelStep_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(6);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_TravelStep_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_TravelStep_descriptor,
            new java.lang.String[] {
              "Duration", "DistanceMeters", "TrafficInfoUnavailable", "RoutePolyline",
            });
    internal_static_google_cloud_optimization_v1_ShipmentRoute_RouteCostsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_ShipmentRoute_descriptor
            .getNestedTypes()
            .get(7);
    internal_static_google_cloud_optimization_v1_ShipmentRoute_RouteCostsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_ShipmentRoute_RouteCostsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_SkippedShipment_descriptor =
        getDescriptor().getMessageTypes().get(18);
    internal_static_google_cloud_optimization_v1_SkippedShipment_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_SkippedShipment_descriptor,
            new java.lang.String[] {
              "Index", "Label", "Reasons",
            });
    internal_static_google_cloud_optimization_v1_SkippedShipment_Reason_descriptor =
        internal_static_google_cloud_optimization_v1_SkippedShipment_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_SkippedShipment_Reason_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_SkippedShipment_Reason_descriptor,
            new java.lang.String[] {
              "Code", "ExampleVehicleIndex", "ExampleExceededCapacityType", "ExampleVehicleIndex",
            });
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_descriptor =
        getDescriptor().getMessageTypes().get(19);
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_AggregatedMetrics_descriptor,
            new java.lang.String[] {
              "PerformedShipmentCount",
              "TravelDuration",
              "WaitDuration",
              "DelayDuration",
              "BreakDuration",
              "VisitDuration",
              "TotalDuration",
              "TravelDistanceMeters",
              "MaxLoads",
              "Costs",
              "TotalCost",
            });
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_MaxLoadsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_AggregatedMetrics_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_MaxLoadsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_AggregatedMetrics_MaxLoadsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_CostsEntry_descriptor =
        internal_static_google_cloud_optimization_v1_AggregatedMetrics_descriptor
            .getNestedTypes()
            .get(1);
    internal_static_google_cloud_optimization_v1_AggregatedMetrics_CostsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_AggregatedMetrics_CostsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_descriptor =
        getDescriptor().getMessageTypes().get(20);
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_descriptor,
            new java.lang.String[] {
              "Routes", "SkippedShipments", "ConstraintRelaxations",
            });
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_descriptor =
        internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_descriptor,
            new java.lang.String[] {
              "Relaxations", "VehicleIndices",
            });
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_descriptor =
        internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_descriptor,
            new java.lang.String[] {
              "Level", "ThresholdTime", "ThresholdVisitCount",
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_descriptor =
        getDescriptor().getMessageTypes().get(21);
    internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_descriptor,
            new java.lang.String[] {
              "Code", "DisplayName", "Fields", "ErrorMessage", "OffendingValues",
            });
    internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_FieldReference_descriptor =
        internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_FieldReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_google_cloud_optimization_v1_OptimizeToursValidationError_FieldReference_descriptor,
            new java.lang.String[] {
              "Name", "Index", "Key", "SubField", "IndexOrKey",
            });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.ClientProto.defaultHost);
    registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
    registry.add(com.google.api.AnnotationsProto.http);
    registry.add(com.google.api.ClientProto.oauthScopes);
    registry.add(com.google.longrunning.OperationsProto.operationInfo);
    com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
        descriptor, registry);
    com.google.api.AnnotationsProto.getDescriptor();
    com.google.api.ClientProto.getDescriptor();
    com.google.api.FieldBehaviorProto.getDescriptor();
    com.google.cloud.optimization.v1.AsyncModelProto.getDescriptor();
    com.google.longrunning.OperationsProto.getDescriptor();
    com.google.protobuf.DurationProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
    com.google.type.LatLngProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
