1// Copyright 2020 The gRPC Authors
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
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.25.0
18// 	protoc        v3.14.0
19// source: grpc/lookup/v1/rls_config.proto
20
21package grpc_lookup_v1
22
23import (
24	proto "github.com/golang/protobuf/proto"
25	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
26	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
27	durationpb "google.golang.org/protobuf/types/known/durationpb"
28	reflect "reflect"
29	sync "sync"
30)
31
32const (
33	// Verify that this generated code is sufficiently up-to-date.
34	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
35	// Verify that runtime/protoimpl is sufficiently up-to-date.
36	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
37)
38
39// This is a compile-time assertion that a sufficiently up-to-date version
40// of the legacy proto package is being used.
41const _ = proto.ProtoPackageIsVersion4
42
43// Extract a key based on a given name (e.g. header name or query parameter
44// name).  The name must match one of the names listed in the "name" field.  If
45// the "required_match" field is true, one of the specified names must be
46// present for the keybuilder to match.
47type NameMatcher struct {
48	state         protoimpl.MessageState
49	sizeCache     protoimpl.SizeCache
50	unknownFields protoimpl.UnknownFields
51
52	// The name that will be used in the RLS key_map to refer to this value.
53	// If required_match is true, you may omit this field or set it to an empty
54	// string, in which case the matcher will require a match, but won't update
55	// the key_map.
56	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
57	// Ordered list of names (headers or query parameter names) that can supply
58	// this value; the first one with a non-empty value is used.
59	Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"`
60	// If true, make this extraction required; the key builder will not match
61	// if no value is found.
62	RequiredMatch bool `protobuf:"varint,3,opt,name=required_match,json=requiredMatch,proto3" json:"required_match,omitempty"`
63}
64
65func (x *NameMatcher) Reset() {
66	*x = NameMatcher{}
67	if protoimpl.UnsafeEnabled {
68		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[0]
69		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
70		ms.StoreMessageInfo(mi)
71	}
72}
73
74func (x *NameMatcher) String() string {
75	return protoimpl.X.MessageStringOf(x)
76}
77
78func (*NameMatcher) ProtoMessage() {}
79
80func (x *NameMatcher) ProtoReflect() protoreflect.Message {
81	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[0]
82	if protoimpl.UnsafeEnabled && x != nil {
83		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
84		if ms.LoadMessageInfo() == nil {
85			ms.StoreMessageInfo(mi)
86		}
87		return ms
88	}
89	return mi.MessageOf(x)
90}
91
92// Deprecated: Use NameMatcher.ProtoReflect.Descriptor instead.
93func (*NameMatcher) Descriptor() ([]byte, []int) {
94	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{0}
95}
96
97func (x *NameMatcher) GetKey() string {
98	if x != nil {
99		return x.Key
100	}
101	return ""
102}
103
104func (x *NameMatcher) GetNames() []string {
105	if x != nil {
106		return x.Names
107	}
108	return nil
109}
110
111func (x *NameMatcher) GetRequiredMatch() bool {
112	if x != nil {
113		return x.RequiredMatch
114	}
115	return false
116}
117
118// A GrpcKeyBuilder applies to a given gRPC service, name, and headers.
119type GrpcKeyBuilder struct {
120	state         protoimpl.MessageState
121	sizeCache     protoimpl.SizeCache
122	unknownFields protoimpl.UnknownFields
123
124	Names     []*GrpcKeyBuilder_Name    `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
125	ExtraKeys *GrpcKeyBuilder_ExtraKeys `protobuf:"bytes,3,opt,name=extra_keys,json=extraKeys,proto3" json:"extra_keys,omitempty"`
126	// Extract keys from all listed headers.
127	// For gRPC, it is an error to specify "required_match" on the NameMatcher
128	// protos.
129	Headers []*NameMatcher `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"`
130	// You can optionally set one or more specific key/value pairs to be added to
131	// the key_map.  This can be useful to identify which builder built the key,
132	// for example if you are suppressing the actual method, but need to
133	// separately cache and request all the matched methods.
134	ConstantKeys map[string]string `protobuf:"bytes,4,rep,name=constant_keys,json=constantKeys,proto3" json:"constant_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
135}
136
137func (x *GrpcKeyBuilder) Reset() {
138	*x = GrpcKeyBuilder{}
139	if protoimpl.UnsafeEnabled {
140		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[1]
141		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
142		ms.StoreMessageInfo(mi)
143	}
144}
145
146func (x *GrpcKeyBuilder) String() string {
147	return protoimpl.X.MessageStringOf(x)
148}
149
150func (*GrpcKeyBuilder) ProtoMessage() {}
151
152func (x *GrpcKeyBuilder) ProtoReflect() protoreflect.Message {
153	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[1]
154	if protoimpl.UnsafeEnabled && x != nil {
155		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
156		if ms.LoadMessageInfo() == nil {
157			ms.StoreMessageInfo(mi)
158		}
159		return ms
160	}
161	return mi.MessageOf(x)
162}
163
164// Deprecated: Use GrpcKeyBuilder.ProtoReflect.Descriptor instead.
165func (*GrpcKeyBuilder) Descriptor() ([]byte, []int) {
166	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{1}
167}
168
169func (x *GrpcKeyBuilder) GetNames() []*GrpcKeyBuilder_Name {
170	if x != nil {
171		return x.Names
172	}
173	return nil
174}
175
176func (x *GrpcKeyBuilder) GetExtraKeys() *GrpcKeyBuilder_ExtraKeys {
177	if x != nil {
178		return x.ExtraKeys
179	}
180	return nil
181}
182
183func (x *GrpcKeyBuilder) GetHeaders() []*NameMatcher {
184	if x != nil {
185		return x.Headers
186	}
187	return nil
188}
189
190func (x *GrpcKeyBuilder) GetConstantKeys() map[string]string {
191	if x != nil {
192		return x.ConstantKeys
193	}
194	return nil
195}
196
197// An HttpKeyBuilder applies to a given HTTP URL and headers.
198//
199// Path and host patterns use the matching syntax from gRPC transcoding to
200// extract named key/value pairs from the path and host components of the URL:
201// https://github.com/googleapis/googleapis/blob/master/google/api/http.proto
202//
203// It is invalid to specify the same key name in multiple places in a pattern.
204//
205// For a service where the project id can be expressed either as a subdomain or
206// in the path, separate HttpKeyBuilders must be used:
207//     host_pattern: 'example.com' path_pattern: '/{id}/{object}/**'
208//     host_pattern: '{id}.example.com' path_pattern: '/{object}/**'
209// If the host is exactly 'example.com', the first path segment will be used as
210// the id and the second segment as the object. If the host has a subdomain, the
211// subdomain will be used as the id and the first segment as the object. If
212// neither pattern matches, no keys will be extracted.
213type HttpKeyBuilder struct {
214	state         protoimpl.MessageState
215	sizeCache     protoimpl.SizeCache
216	unknownFields protoimpl.UnknownFields
217
218	// host_pattern is an ordered list of host template patterns for the desired
219	// value.  If any host_pattern values are specified, then at least one must
220	// match, and the last one wins and sets any specified variables.  A host
221	// consists of labels separated by dots. Each label is matched against the
222	// label in the pattern as follows:
223	//   - "*": Matches any single label.
224	//   - "**": Matches zero or more labels (first or last part of host only).
225	//   - "{<name>=...}": One or more label capture, where "..." can be any
226	//      template that does not include a capture.
227	//   - "{<name>}": A single label capture. Identical to {<name>=*}.
228	//
229	// Examples:
230	//   - "example.com": Only applies to the exact host example.com.
231	//   - "*.example.com": Matches subdomains of example.com.
232	//   - "**.example.com": matches example.com, and all levels of subdomains.
233	//   - "{project}.example.com": Extracts the third level subdomain.
234	//   - "{project=**}.example.com": Extracts the third level+ subdomains.
235	//   - "{project=**}": Extracts the entire host.
236	HostPatterns []string `protobuf:"bytes,1,rep,name=host_patterns,json=hostPatterns,proto3" json:"host_patterns,omitempty"`
237	// path_pattern is an ordered list of path template patterns for the desired
238	// value.  If any path_pattern values are specified, then at least one must
239	// match, and the last one wins and sets any specified variables.  A path
240	// consists of segments separated by slashes. Each segment is matched against
241	// the segment in the pattern as follows:
242	//   - "*": Matches any single segment.
243	//   - "**": Matches zero or more segments (first or last part of path only).
244	//   - "{<name>=...}": One or more segment capture, where "..." can be any
245	//      template that does not include a capture.
246	//   - "{<name>}": A single segment capture. Identical to {<name>=*}.
247	// A custom method may also be specified by appending ":" and the custom
248	// method name or "*" to indicate any custom method (including no custom
249	// method).  For example, "/*/projects/{project_id}/**:*" extracts
250	// `{project_id}` for any version, resource and custom method that includes
251	// it.  By default, any custom method will be matched.
252	//
253	// Examples:
254	//   - "/v1/{name=messages/*}": extracts a name like "messages/12345".
255	//   - "/v1/messages/{message_id}": extracts a message_id like "12345".
256	//   - "/v1/users/{user_id}/messages/{message_id}": extracts two key values.
257	PathPatterns []string `protobuf:"bytes,2,rep,name=path_patterns,json=pathPatterns,proto3" json:"path_patterns,omitempty"`
258	// List of query parameter names to try to match.
259	// For example: ["parent", "name", "resource.name"]
260	// We extract all the specified query_parameters (case-sensitively).  If any
261	// are marked as "required_match" and are not present, this keybuilder fails
262	// to match.  If a given parameter appears multiple times (?foo=a&foo=b) we
263	// will report it as a comma-separated string (foo=a,b).
264	QueryParameters []*NameMatcher `protobuf:"bytes,3,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"`
265	// List of headers to try to match.
266	// We extract all the specified header values (case-insensitively).  If any
267	// are marked as "required_match" and are not present, this keybuilder fails
268	// to match.  If a given header appears multiple times in the request we will
269	// report it as a comma-separated string, in standard HTTP fashion.
270	Headers []*NameMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
271	// You can optionally set one or more specific key/value pairs to be added to
272	// the key_map.  This can be useful to identify which builder built the key,
273	// for example if you are suppressing a lot of information from the URL, but
274	// need to separately cache and request URLs with that content.
275	ConstantKeys map[string]string `protobuf:"bytes,5,rep,name=constant_keys,json=constantKeys,proto3" json:"constant_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
276}
277
278func (x *HttpKeyBuilder) Reset() {
279	*x = HttpKeyBuilder{}
280	if protoimpl.UnsafeEnabled {
281		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[2]
282		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
283		ms.StoreMessageInfo(mi)
284	}
285}
286
287func (x *HttpKeyBuilder) String() string {
288	return protoimpl.X.MessageStringOf(x)
289}
290
291func (*HttpKeyBuilder) ProtoMessage() {}
292
293func (x *HttpKeyBuilder) ProtoReflect() protoreflect.Message {
294	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[2]
295	if protoimpl.UnsafeEnabled && x != nil {
296		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
297		if ms.LoadMessageInfo() == nil {
298			ms.StoreMessageInfo(mi)
299		}
300		return ms
301	}
302	return mi.MessageOf(x)
303}
304
305// Deprecated: Use HttpKeyBuilder.ProtoReflect.Descriptor instead.
306func (*HttpKeyBuilder) Descriptor() ([]byte, []int) {
307	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{2}
308}
309
310func (x *HttpKeyBuilder) GetHostPatterns() []string {
311	if x != nil {
312		return x.HostPatterns
313	}
314	return nil
315}
316
317func (x *HttpKeyBuilder) GetPathPatterns() []string {
318	if x != nil {
319		return x.PathPatterns
320	}
321	return nil
322}
323
324func (x *HttpKeyBuilder) GetQueryParameters() []*NameMatcher {
325	if x != nil {
326		return x.QueryParameters
327	}
328	return nil
329}
330
331func (x *HttpKeyBuilder) GetHeaders() []*NameMatcher {
332	if x != nil {
333		return x.Headers
334	}
335	return nil
336}
337
338func (x *HttpKeyBuilder) GetConstantKeys() map[string]string {
339	if x != nil {
340		return x.ConstantKeys
341	}
342	return nil
343}
344
345type RouteLookupConfig struct {
346	state         protoimpl.MessageState
347	sizeCache     protoimpl.SizeCache
348	unknownFields protoimpl.UnknownFields
349
350	// Ordered specifications for constructing keys for HTTP requests.  Last
351	// match wins.  If no HttpKeyBuilder matches, an empty key_map will be sent to
352	// the lookup service; it should likely reply with a global default route
353	// and raise an alert.
354	HttpKeybuilders []*HttpKeyBuilder `protobuf:"bytes,1,rep,name=http_keybuilders,json=httpKeybuilders,proto3" json:"http_keybuilders,omitempty"`
355	// Unordered specifications for constructing keys for gRPC requests.  All
356	// GrpcKeyBuilders on this list must have unique "name" fields so that the
357	// client is free to prebuild a hash map keyed by name.  If no GrpcKeyBuilder
358	// matches, an empty key_map will be sent to the lookup service; it should
359	// likely reply with a global default route and raise an alert.
360	GrpcKeybuilders []*GrpcKeyBuilder `protobuf:"bytes,2,rep,name=grpc_keybuilders,json=grpcKeybuilders,proto3" json:"grpc_keybuilders,omitempty"`
361	// The name of the lookup service as a gRPC URI.  Typically, this will be
362	// a subdomain of the target, such as "lookup.datastore.googleapis.com".
363	LookupService string `protobuf:"bytes,3,opt,name=lookup_service,json=lookupService,proto3" json:"lookup_service,omitempty"`
364	// Configure a timeout value for lookup service requests.
365	// Defaults to 10 seconds if not specified.
366	LookupServiceTimeout *durationpb.Duration `protobuf:"bytes,4,opt,name=lookup_service_timeout,json=lookupServiceTimeout,proto3" json:"lookup_service_timeout,omitempty"`
367	// How long are responses valid for (like HTTP Cache-Control).
368	// If omitted or zero, the longest valid cache time is used.
369	// This value is clamped to 5 minutes to avoid unflushable bad responses.
370	MaxAge *durationpb.Duration `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
371	// After a response has been in the client cache for this amount of time
372	// and is re-requested, start an asynchronous RPC to re-validate it.
373	// This value should be less than max_age by at least the length of a
374	// typical RTT to the Route Lookup Service to fully mask the RTT latency.
375	// If omitted, keys are only re-requested after they have expired.
376	StaleAge *durationpb.Duration `protobuf:"bytes,6,opt,name=stale_age,json=staleAge,proto3" json:"stale_age,omitempty"`
377	// Rough indicator of amount of memory to use for the client cache.  Some of
378	// the data structure overhead is not accounted for, so actual memory consumed
379	// will be somewhat greater than this value.  If this field is omitted or set
380	// to zero, a client default will be used.  The value may be capped to a lower
381	// amount based on client configuration.
382	CacheSizeBytes int64 `protobuf:"varint,7,opt,name=cache_size_bytes,json=cacheSizeBytes,proto3" json:"cache_size_bytes,omitempty"`
383	// This is a list of all the possible targets that can be returned by the
384	// lookup service.  If a target not on this list is returned, it will be
385	// treated the same as an unhealthy target.
386	ValidTargets []string `protobuf:"bytes,8,rep,name=valid_targets,json=validTargets,proto3" json:"valid_targets,omitempty"`
387	// This value provides a default target to use if needed.  If set, it will be
388	// used if RLS returns an error, times out, or returns an invalid response.
389	// Note that requests can be routed only to a subdomain of the original
390	// target, e.g. "us_east_1.cloudbigtable.googleapis.com".
391	DefaultTarget string `protobuf:"bytes,9,opt,name=default_target,json=defaultTarget,proto3" json:"default_target,omitempty"`
392}
393
394func (x *RouteLookupConfig) Reset() {
395	*x = RouteLookupConfig{}
396	if protoimpl.UnsafeEnabled {
397		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[3]
398		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
399		ms.StoreMessageInfo(mi)
400	}
401}
402
403func (x *RouteLookupConfig) String() string {
404	return protoimpl.X.MessageStringOf(x)
405}
406
407func (*RouteLookupConfig) ProtoMessage() {}
408
409func (x *RouteLookupConfig) ProtoReflect() protoreflect.Message {
410	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[3]
411	if protoimpl.UnsafeEnabled && x != nil {
412		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
413		if ms.LoadMessageInfo() == nil {
414			ms.StoreMessageInfo(mi)
415		}
416		return ms
417	}
418	return mi.MessageOf(x)
419}
420
421// Deprecated: Use RouteLookupConfig.ProtoReflect.Descriptor instead.
422func (*RouteLookupConfig) Descriptor() ([]byte, []int) {
423	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{3}
424}
425
426func (x *RouteLookupConfig) GetHttpKeybuilders() []*HttpKeyBuilder {
427	if x != nil {
428		return x.HttpKeybuilders
429	}
430	return nil
431}
432
433func (x *RouteLookupConfig) GetGrpcKeybuilders() []*GrpcKeyBuilder {
434	if x != nil {
435		return x.GrpcKeybuilders
436	}
437	return nil
438}
439
440func (x *RouteLookupConfig) GetLookupService() string {
441	if x != nil {
442		return x.LookupService
443	}
444	return ""
445}
446
447func (x *RouteLookupConfig) GetLookupServiceTimeout() *durationpb.Duration {
448	if x != nil {
449		return x.LookupServiceTimeout
450	}
451	return nil
452}
453
454func (x *RouteLookupConfig) GetMaxAge() *durationpb.Duration {
455	if x != nil {
456		return x.MaxAge
457	}
458	return nil
459}
460
461func (x *RouteLookupConfig) GetStaleAge() *durationpb.Duration {
462	if x != nil {
463		return x.StaleAge
464	}
465	return nil
466}
467
468func (x *RouteLookupConfig) GetCacheSizeBytes() int64 {
469	if x != nil {
470		return x.CacheSizeBytes
471	}
472	return 0
473}
474
475func (x *RouteLookupConfig) GetValidTargets() []string {
476	if x != nil {
477		return x.ValidTargets
478	}
479	return nil
480}
481
482func (x *RouteLookupConfig) GetDefaultTarget() string {
483	if x != nil {
484		return x.DefaultTarget
485	}
486	return ""
487}
488
489// To match, one of the given Name fields must match; the service and method
490// fields are specified as fixed strings.  The service name is required and
491// includes the proto package name.  The method name may be omitted, in
492// which case any method on the given service is matched.
493type GrpcKeyBuilder_Name struct {
494	state         protoimpl.MessageState
495	sizeCache     protoimpl.SizeCache
496	unknownFields protoimpl.UnknownFields
497
498	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
499	Method  string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
500}
501
502func (x *GrpcKeyBuilder_Name) Reset() {
503	*x = GrpcKeyBuilder_Name{}
504	if protoimpl.UnsafeEnabled {
505		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[4]
506		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
507		ms.StoreMessageInfo(mi)
508	}
509}
510
511func (x *GrpcKeyBuilder_Name) String() string {
512	return protoimpl.X.MessageStringOf(x)
513}
514
515func (*GrpcKeyBuilder_Name) ProtoMessage() {}
516
517func (x *GrpcKeyBuilder_Name) ProtoReflect() protoreflect.Message {
518	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[4]
519	if protoimpl.UnsafeEnabled && x != nil {
520		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
521		if ms.LoadMessageInfo() == nil {
522			ms.StoreMessageInfo(mi)
523		}
524		return ms
525	}
526	return mi.MessageOf(x)
527}
528
529// Deprecated: Use GrpcKeyBuilder_Name.ProtoReflect.Descriptor instead.
530func (*GrpcKeyBuilder_Name) Descriptor() ([]byte, []int) {
531	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{1, 0}
532}
533
534func (x *GrpcKeyBuilder_Name) GetService() string {
535	if x != nil {
536		return x.Service
537	}
538	return ""
539}
540
541func (x *GrpcKeyBuilder_Name) GetMethod() string {
542	if x != nil {
543		return x.Method
544	}
545	return ""
546}
547
548// If you wish to include the host, service, or method names as keys in the
549// generated RouteLookupRequest, specify key names to use in the extra_keys
550// submessage. If a key name is empty, no key will be set for that value.
551// If this submessage is specified, the normal host/path fields will be left
552// unset in the RouteLookupRequest. We are deprecating host/path in the
553// RouteLookupRequest, so services should migrate to the ExtraKeys approach.
554type GrpcKeyBuilder_ExtraKeys struct {
555	state         protoimpl.MessageState
556	sizeCache     protoimpl.SizeCache
557	unknownFields protoimpl.UnknownFields
558
559	Host    string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
560	Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
561	Method  string `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"`
562}
563
564func (x *GrpcKeyBuilder_ExtraKeys) Reset() {
565	*x = GrpcKeyBuilder_ExtraKeys{}
566	if protoimpl.UnsafeEnabled {
567		mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[5]
568		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
569		ms.StoreMessageInfo(mi)
570	}
571}
572
573func (x *GrpcKeyBuilder_ExtraKeys) String() string {
574	return protoimpl.X.MessageStringOf(x)
575}
576
577func (*GrpcKeyBuilder_ExtraKeys) ProtoMessage() {}
578
579func (x *GrpcKeyBuilder_ExtraKeys) ProtoReflect() protoreflect.Message {
580	mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[5]
581	if protoimpl.UnsafeEnabled && x != nil {
582		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
583		if ms.LoadMessageInfo() == nil {
584			ms.StoreMessageInfo(mi)
585		}
586		return ms
587	}
588	return mi.MessageOf(x)
589}
590
591// Deprecated: Use GrpcKeyBuilder_ExtraKeys.ProtoReflect.Descriptor instead.
592func (*GrpcKeyBuilder_ExtraKeys) Descriptor() ([]byte, []int) {
593	return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{1, 1}
594}
595
596func (x *GrpcKeyBuilder_ExtraKeys) GetHost() string {
597	if x != nil {
598		return x.Host
599	}
600	return ""
601}
602
603func (x *GrpcKeyBuilder_ExtraKeys) GetService() string {
604	if x != nil {
605		return x.Service
606	}
607	return ""
608}
609
610func (x *GrpcKeyBuilder_ExtraKeys) GetMethod() string {
611	if x != nil {
612		return x.Method
613	}
614	return ""
615}
616
617var File_grpc_lookup_v1_rls_config_proto protoreflect.FileDescriptor
618
619var file_grpc_lookup_v1_rls_config_proto_rawDesc = []byte{
620	0x0a, 0x1f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31,
621	0x2f, 0x72, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
622	0x6f, 0x12, 0x0e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76,
623	0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
624	0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
625	0x6f, 0x22, 0x5c, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
626	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
627	0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
628	0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75,
629	0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
630	0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22,
631	0xf0, 0x03, 0x0a, 0x0e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64,
632	0x65, 0x72, 0x12, 0x39, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
633	0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e,
634	0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
635	0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x47, 0x0a,
636	0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
637	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e,
638	0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
639	0x72, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x09, 0x65, 0x78, 0x74,
640	0x72, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
641	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c,
642	0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74,
643	0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a,
644	0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04,
645	0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b,
646	0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69,
647	0x6c, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79,
648	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74,
649	0x4b, 0x65, 0x79, 0x73, 0x1a, 0x38, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
650	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
651	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
652	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x1a, 0x51,
653	0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68,
654	0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12,
655	0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
656	0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74,
657	0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f,
658	0x64, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79,
659	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
660	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
661	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
662	0x38, 0x01, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x48, 0x74, 0x74, 0x70, 0x4b, 0x65, 0x79, 0x42, 0x75,
663	0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61,
664	0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x6f,
665	0x73, 0x74, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61,
666	0x74, 0x68, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
667	0x09, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12,
668	0x46, 0x0a, 0x10, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
669	0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63,
670	0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x4d,
671	0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72,
672	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65,
673	0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
674	0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61,
675	0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x55,
676	0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18,
677	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f,
678	0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x4b, 0x65, 0x79, 0x42, 0x75,
679	0x69, 0x6c, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4b, 0x65,
680	0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e,
681	0x74, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e,
682	0x74, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
683	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
684	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
685	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa6, 0x04, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, 0x65,
686	0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x10,
687	0x68, 0x74, 0x74, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73,
688	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f,
689	0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x4b, 0x65, 0x79, 0x42,
690	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x4b, 0x65, 0x79, 0x62,
691	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x67, 0x72, 0x70, 0x63, 0x5f,
692	0x6b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
693	0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e,
694	0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
695	0x72, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65,
696	0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x72,
697	0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x6b,
698	0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x16, 0x6c, 0x6f, 0x6f,
699	0x6b, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
700	0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
701	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
702	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76,
703	0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x61,
704	0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
705	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
706	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x36,
707	0x0a, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
708	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
709	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74,
710	0x61, 0x6c, 0x65, 0x41, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f,
711	0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
712	0x52, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73,
713	0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
714	0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x61,
715	0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
716	0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64,
717	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x04, 0x08, 0x0a,
718	0x10, 0x0b, 0x52, 0x1b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63,
719	0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42,
720	0x53, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75,
721	0x70, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x52, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50,
722	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,
723	0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6c,
724	0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75,
725	0x70, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
726}
727
728var (
729	file_grpc_lookup_v1_rls_config_proto_rawDescOnce sync.Once
730	file_grpc_lookup_v1_rls_config_proto_rawDescData = file_grpc_lookup_v1_rls_config_proto_rawDesc
731)
732
733func file_grpc_lookup_v1_rls_config_proto_rawDescGZIP() []byte {
734	file_grpc_lookup_v1_rls_config_proto_rawDescOnce.Do(func() {
735		file_grpc_lookup_v1_rls_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_lookup_v1_rls_config_proto_rawDescData)
736	})
737	return file_grpc_lookup_v1_rls_config_proto_rawDescData
738}
739
740var file_grpc_lookup_v1_rls_config_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
741var file_grpc_lookup_v1_rls_config_proto_goTypes = []interface{}{
742	(*NameMatcher)(nil),              // 0: grpc.lookup.v1.NameMatcher
743	(*GrpcKeyBuilder)(nil),           // 1: grpc.lookup.v1.GrpcKeyBuilder
744	(*HttpKeyBuilder)(nil),           // 2: grpc.lookup.v1.HttpKeyBuilder
745	(*RouteLookupConfig)(nil),        // 3: grpc.lookup.v1.RouteLookupConfig
746	(*GrpcKeyBuilder_Name)(nil),      // 4: grpc.lookup.v1.GrpcKeyBuilder.Name
747	(*GrpcKeyBuilder_ExtraKeys)(nil), // 5: grpc.lookup.v1.GrpcKeyBuilder.ExtraKeys
748	nil,                              // 6: grpc.lookup.v1.GrpcKeyBuilder.ConstantKeysEntry
749	nil,                              // 7: grpc.lookup.v1.HttpKeyBuilder.ConstantKeysEntry
750	(*durationpb.Duration)(nil),      // 8: google.protobuf.Duration
751}
752var file_grpc_lookup_v1_rls_config_proto_depIdxs = []int32{
753	4,  // 0: grpc.lookup.v1.GrpcKeyBuilder.names:type_name -> grpc.lookup.v1.GrpcKeyBuilder.Name
754	5,  // 1: grpc.lookup.v1.GrpcKeyBuilder.extra_keys:type_name -> grpc.lookup.v1.GrpcKeyBuilder.ExtraKeys
755	0,  // 2: grpc.lookup.v1.GrpcKeyBuilder.headers:type_name -> grpc.lookup.v1.NameMatcher
756	6,  // 3: grpc.lookup.v1.GrpcKeyBuilder.constant_keys:type_name -> grpc.lookup.v1.GrpcKeyBuilder.ConstantKeysEntry
757	0,  // 4: grpc.lookup.v1.HttpKeyBuilder.query_parameters:type_name -> grpc.lookup.v1.NameMatcher
758	0,  // 5: grpc.lookup.v1.HttpKeyBuilder.headers:type_name -> grpc.lookup.v1.NameMatcher
759	7,  // 6: grpc.lookup.v1.HttpKeyBuilder.constant_keys:type_name -> grpc.lookup.v1.HttpKeyBuilder.ConstantKeysEntry
760	2,  // 7: grpc.lookup.v1.RouteLookupConfig.http_keybuilders:type_name -> grpc.lookup.v1.HttpKeyBuilder
761	1,  // 8: grpc.lookup.v1.RouteLookupConfig.grpc_keybuilders:type_name -> grpc.lookup.v1.GrpcKeyBuilder
762	8,  // 9: grpc.lookup.v1.RouteLookupConfig.lookup_service_timeout:type_name -> google.protobuf.Duration
763	8,  // 10: grpc.lookup.v1.RouteLookupConfig.max_age:type_name -> google.protobuf.Duration
764	8,  // 11: grpc.lookup.v1.RouteLookupConfig.stale_age:type_name -> google.protobuf.Duration
765	12, // [12:12] is the sub-list for method output_type
766	12, // [12:12] is the sub-list for method input_type
767	12, // [12:12] is the sub-list for extension type_name
768	12, // [12:12] is the sub-list for extension extendee
769	0,  // [0:12] is the sub-list for field type_name
770}
771
772func init() { file_grpc_lookup_v1_rls_config_proto_init() }
773func file_grpc_lookup_v1_rls_config_proto_init() {
774	if File_grpc_lookup_v1_rls_config_proto != nil {
775		return
776	}
777	if !protoimpl.UnsafeEnabled {
778		file_grpc_lookup_v1_rls_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
779			switch v := v.(*NameMatcher); i {
780			case 0:
781				return &v.state
782			case 1:
783				return &v.sizeCache
784			case 2:
785				return &v.unknownFields
786			default:
787				return nil
788			}
789		}
790		file_grpc_lookup_v1_rls_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
791			switch v := v.(*GrpcKeyBuilder); i {
792			case 0:
793				return &v.state
794			case 1:
795				return &v.sizeCache
796			case 2:
797				return &v.unknownFields
798			default:
799				return nil
800			}
801		}
802		file_grpc_lookup_v1_rls_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
803			switch v := v.(*HttpKeyBuilder); i {
804			case 0:
805				return &v.state
806			case 1:
807				return &v.sizeCache
808			case 2:
809				return &v.unknownFields
810			default:
811				return nil
812			}
813		}
814		file_grpc_lookup_v1_rls_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
815			switch v := v.(*RouteLookupConfig); i {
816			case 0:
817				return &v.state
818			case 1:
819				return &v.sizeCache
820			case 2:
821				return &v.unknownFields
822			default:
823				return nil
824			}
825		}
826		file_grpc_lookup_v1_rls_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
827			switch v := v.(*GrpcKeyBuilder_Name); i {
828			case 0:
829				return &v.state
830			case 1:
831				return &v.sizeCache
832			case 2:
833				return &v.unknownFields
834			default:
835				return nil
836			}
837		}
838		file_grpc_lookup_v1_rls_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
839			switch v := v.(*GrpcKeyBuilder_ExtraKeys); i {
840			case 0:
841				return &v.state
842			case 1:
843				return &v.sizeCache
844			case 2:
845				return &v.unknownFields
846			default:
847				return nil
848			}
849		}
850	}
851	type x struct{}
852	out := protoimpl.TypeBuilder{
853		File: protoimpl.DescBuilder{
854			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
855			RawDescriptor: file_grpc_lookup_v1_rls_config_proto_rawDesc,
856			NumEnums:      0,
857			NumMessages:   8,
858			NumExtensions: 0,
859			NumServices:   0,
860		},
861		GoTypes:           file_grpc_lookup_v1_rls_config_proto_goTypes,
862		DependencyIndexes: file_grpc_lookup_v1_rls_config_proto_depIdxs,
863		MessageInfos:      file_grpc_lookup_v1_rls_config_proto_msgTypes,
864	}.Build()
865	File_grpc_lookup_v1_rls_config_proto = out.File
866	file_grpc_lookup_v1_rls_config_proto_rawDesc = nil
867	file_grpc_lookup_v1_rls_config_proto_goTypes = nil
868	file_grpc_lookup_v1_rls_config_proto_depIdxs = nil
869}
870