private/google/maps/routes/v1/route_service.proto
// Copyright 2020 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
//
// http://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.
syntax = "proto3";
package google.maps.routes.v1;
import "google/api/annotations.proto";
import "google/maps/routes/v1/compute_routes_request.proto";
import "google/maps/routes/v1/compute_routes_response.proto";
import "google/api/client.proto";
option cc_enable_arenas = true;
option csharp_namespace = "Google.Maps.Routes.V1";
option go_package = "google.golang.org/genproto/googleapis/maps/routes/v1;routes";
option java_multiple_files = true;
option java_outer_classname = "RoutesServiceProto";
option java_package = "com.google.maps.routes.v1";
option objc_class_prefix = "GMRS";
option php_namespace = "Google\\Maps\\Routes\\V1";
// The Routes Preferred API.
service RoutesPreferred {
option (google.api.default_host) = "routespreferred.googleapis.com";
// Returns the primary route along with optional alternate routes, given a set
// of terminal and intermediate waypoints.
//
// **NOTE:** This method requires that you specify a response field mask in
// the input. You can provide the response field mask by using URL parameter
// `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask`
// (see the [available URL parameters and
// headers](https://cloud.google.com/apis/docs/system-parameters). The value
// is a comma separated list of field paths. See detailed documentation about
// [how to construct the field
// paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto).
//
// For example, in this method:
//
// * Field mask of all available fields (for manual inspection):
// `X-Goog-FieldMask: *`
// * Field mask of Route-level duration, distance, and polyline (an example
// production setup):
// `X-Goog-FieldMask:
// routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline`
//
// Google discourage the use of the wildcard (`*`) response field mask, or
// specifying the field mask at the top level (`routes`), because:
//
// * Selecting only the fields that you need helps our server save computation
// cycles, allowing us to return the result to you with a lower latency.
// * Selecting only the fields that you need
// in your production job ensures stable latency performance. We might add
// more response fields in the future, and those new fields might require
// extra computation time. If you select all fields, or if you select all
// fields at the top level, then you might experience performance degradation
// because any new field we add will be automatically included in the
// response.
// * Selecting only the fields that you need results in a smaller response
// size, and thus higher network throughput.
rpc ComputeRoutes(ComputeRoutesRequest) returns (ComputeRoutesResponse) {
option (google.api.http) = {
post: "/v1:computeRoutes"
body: "*"
};
}
}