| // Copyright 2020 The gRPC Authors |
| // |
| // 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 grpc.lookup.v1; |
| |
| option go_package = "google.golang.org/grpc/lookup/grpc_lookup_v1"; |
| option java_multiple_files = true; |
| option java_package = "io.grpc.lookup.v1"; |
| option java_outer_classname = "RlsProto"; |
| |
| message RouteLookupRequest { |
| // Target type allows the client to specify what kind of target format it |
| // would like from RLS to allow it to find the regional server, e.g. "grpc". |
| string target_type = 3; |
| // Possible reasons for making a request. |
| enum Reason { |
| REASON_UNKNOWN = 0; // Unused |
| REASON_MISS = 1; // No data available in local cache |
| REASON_STALE = 2; // Data in local cache is stale |
| } |
| // Reason for making this request. |
| Reason reason = 5; |
| // For REASON_STALE, the header_data from the stale response, if any. |
| string stale_header_data = 6; |
| // Map of key values extracted via key builders for the gRPC or HTTP request. |
| map<string, string> key_map = 4; |
| |
| reserved 1, 2; |
| reserved "server", "path"; |
| } |
| |
| message RouteLookupResponse { |
| // Prioritized list (best one first) of addressable entities to use |
| // for routing, using syntax requested by the request target_type. |
| // The targets will be tried in order until a healthy one is found. |
| repeated string targets = 3; |
| // Optional header value to pass along to AFE in the X-Google-RLS-Data header. |
| // Cached with "target" and sent with all requests that match the request key. |
| // Allows the RLS to pass its work product to the eventual target. |
| string header_data = 2; |
| |
| reserved 1; |
| reserved "target"; |
| } |
| |
| service RouteLookupService { |
| // Lookup returns a target for a single key. |
| rpc RouteLookup(RouteLookupRequest) returns (RouteLookupResponse) {} |
| } |