1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.maps.routing.v2; 18 19import "google/maps/routing/v2/toll_passes.proto"; 20import "google/maps/routing/v2/vehicle_info.proto"; 21 22option cc_enable_arenas = true; 23option csharp_namespace = "Google.Maps.Routing.V2"; 24option go_package = "cloud.google.com/go/maps/routing/apiv2/routingpb;routingpb"; 25option java_multiple_files = true; 26option java_outer_classname = "RouteModifiersProto"; 27option java_package = "com.google.maps.routing.v2"; 28option objc_class_prefix = "GMRV2"; 29option php_namespace = "Google\\Maps\\Routing\\V2"; 30option ruby_package = "Google::Maps::Routing::V2"; 31 32// Encapsulates a set of optional conditions to satisfy when calculating the 33// routes. 34message RouteModifiers { 35 // When set to true, avoids toll roads where reasonable, giving preference to 36 // routes not containing toll roads. Applies only to the `DRIVE` and 37 // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. 38 bool avoid_tolls = 1; 39 40 // When set to true, avoids highways where reasonable, giving preference to 41 // routes not containing highways. Applies only to the `DRIVE` and 42 // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. 43 bool avoid_highways = 2; 44 45 // When set to true, avoids ferries where reasonable, giving preference to 46 // routes not containing ferries. Applies only to the `DRIVE` and`TWO_WHEELER` 47 // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. 48 bool avoid_ferries = 3; 49 50 // When set to true, avoids navigating indoors where reasonable, giving 51 // preference to routes not containing indoor navigation. Applies only to the 52 // `WALK` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. 53 bool avoid_indoor = 4; 54 55 // Specifies the vehicle information. 56 VehicleInfo vehicle_info = 5; 57 58 // Encapsulates information about toll passes. 59 // If toll passes are provided, the API tries to return the pass price. If 60 // toll passes are not provided, the API treats the toll pass as unknown and 61 // tries to return the cash price. 62 // Applies only to the `DRIVE` and `TWO_WHEELER` 63 // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. 64 repeated TollPass toll_passes = 6; 65} 66