1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: grpc/rls/grpc_lookup_v1/rls_config.proto
3
4package grpc_lookup_v1
5
6import (
7	fmt "fmt"
8	proto "github.com/golang/protobuf/proto"
9	duration "github.com/golang/protobuf/ptypes/duration"
10	math "math"
11)
12
13// Reference imports to suppress errors if they are not otherwise used.
14var _ = proto.Marshal
15var _ = fmt.Errorf
16var _ = math.Inf
17
18// This is a compile-time assertion to ensure that this generated file
19// is compatible with the proto package it is being compiled against.
20// A compilation error at this line likely means your copy of the
21// proto package needs to be updated.
22const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
23
24// Specify how to process a request when not already in the cache.
25type RouteLookupConfig_RequestProcessingStrategy int32
26
27const (
28	RouteLookupConfig_STRATEGY_UNSPECIFIED RouteLookupConfig_RequestProcessingStrategy = 0
29	// Query the RLS and process the request using target returned by the
30	// lookup. The target will then be cached and used for processing
31	// subsequent requests for the same key. Any errors during lookup service
32	// processing will fall back to default target for request processing.
33	RouteLookupConfig_SYNC_LOOKUP_DEFAULT_TARGET_ON_ERROR RouteLookupConfig_RequestProcessingStrategy = 1
34	// Query the RLS and process the request using target returned by the
35	// lookup. The target will then be cached and used for processing
36	// subsequent requests for the same key. Any errors during lookup service
37	// processing will return an error back to the client.  Services with
38	// strict regional routing requirements should use this strategy.
39	RouteLookupConfig_SYNC_LOOKUP_CLIENT_SEES_ERROR RouteLookupConfig_RequestProcessingStrategy = 2
40	// Query the RLS asynchronously but respond with the default target.  The
41	// target in the lookup response will then be cached and used for
42	// subsequent requests.  Services with strict latency requirements (but not
43	// strict regional routing requirements) should use this strategy.
44	RouteLookupConfig_ASYNC_LOOKUP_DEFAULT_TARGET_ON_MISS RouteLookupConfig_RequestProcessingStrategy = 3
45)
46
47var RouteLookupConfig_RequestProcessingStrategy_name = map[int32]string{
48	0: "STRATEGY_UNSPECIFIED",
49	1: "SYNC_LOOKUP_DEFAULT_TARGET_ON_ERROR",
50	2: "SYNC_LOOKUP_CLIENT_SEES_ERROR",
51	3: "ASYNC_LOOKUP_DEFAULT_TARGET_ON_MISS",
52}
53
54var RouteLookupConfig_RequestProcessingStrategy_value = map[string]int32{
55	"STRATEGY_UNSPECIFIED":                0,
56	"SYNC_LOOKUP_DEFAULT_TARGET_ON_ERROR": 1,
57	"SYNC_LOOKUP_CLIENT_SEES_ERROR":       2,
58	"ASYNC_LOOKUP_DEFAULT_TARGET_ON_MISS": 3,
59}
60
61func (x RouteLookupConfig_RequestProcessingStrategy) String() string {
62	return proto.EnumName(RouteLookupConfig_RequestProcessingStrategy_name, int32(x))
63}
64
65func (RouteLookupConfig_RequestProcessingStrategy) EnumDescriptor() ([]byte, []int) {
66	return fileDescriptor_f013e3228551a7a8, []int{3, 0}
67}
68
69// Extract a key based on a given name (e.g. header name or query parameter
70// name).  The name must match one of the names listed in the "name" field.  If
71// the "required_match" field is true, one of the specified names must be
72// present for the keybuilder to match.
73type NameMatcher struct {
74	// The name that will be used in the RLS key_map to refer to this value.
75	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
76	// Ordered list of names (headers or query parameter names) that can supply
77	// this value; the first one with a non-empty value is used.
78	Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"`
79	// If true, make this extraction required; the key builder will not match
80	// if no value is found.
81	RequiredMatch        bool     `protobuf:"varint,3,opt,name=required_match,json=requiredMatch,proto3" json:"required_match,omitempty"`
82	XXX_NoUnkeyedLiteral struct{} `json:"-"`
83	XXX_unrecognized     []byte   `json:"-"`
84	XXX_sizecache        int32    `json:"-"`
85}
86
87func (m *NameMatcher) Reset()         { *m = NameMatcher{} }
88func (m *NameMatcher) String() string { return proto.CompactTextString(m) }
89func (*NameMatcher) ProtoMessage()    {}
90func (*NameMatcher) Descriptor() ([]byte, []int) {
91	return fileDescriptor_f013e3228551a7a8, []int{0}
92}
93
94func (m *NameMatcher) XXX_Unmarshal(b []byte) error {
95	return xxx_messageInfo_NameMatcher.Unmarshal(m, b)
96}
97func (m *NameMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
98	return xxx_messageInfo_NameMatcher.Marshal(b, m, deterministic)
99}
100func (m *NameMatcher) XXX_Merge(src proto.Message) {
101	xxx_messageInfo_NameMatcher.Merge(m, src)
102}
103func (m *NameMatcher) XXX_Size() int {
104	return xxx_messageInfo_NameMatcher.Size(m)
105}
106func (m *NameMatcher) XXX_DiscardUnknown() {
107	xxx_messageInfo_NameMatcher.DiscardUnknown(m)
108}
109
110var xxx_messageInfo_NameMatcher proto.InternalMessageInfo
111
112func (m *NameMatcher) GetKey() string {
113	if m != nil {
114		return m.Key
115	}
116	return ""
117}
118
119func (m *NameMatcher) GetNames() []string {
120	if m != nil {
121		return m.Names
122	}
123	return nil
124}
125
126func (m *NameMatcher) GetRequiredMatch() bool {
127	if m != nil {
128		return m.RequiredMatch
129	}
130	return false
131}
132
133// A GrpcKeyBuilder applies to a given gRPC service, name, and headers.
134type GrpcKeyBuilder struct {
135	Names []*GrpcKeyBuilder_Name `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
136	// Extract keys from all listed headers.
137	// For gRPC, it is an error to specify "required_match" on the NameMatcher
138	// protos, and we ignore it if set.
139	Headers              []*NameMatcher `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"`
140	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
141	XXX_unrecognized     []byte         `json:"-"`
142	XXX_sizecache        int32          `json:"-"`
143}
144
145func (m *GrpcKeyBuilder) Reset()         { *m = GrpcKeyBuilder{} }
146func (m *GrpcKeyBuilder) String() string { return proto.CompactTextString(m) }
147func (*GrpcKeyBuilder) ProtoMessage()    {}
148func (*GrpcKeyBuilder) Descriptor() ([]byte, []int) {
149	return fileDescriptor_f013e3228551a7a8, []int{1}
150}
151
152func (m *GrpcKeyBuilder) XXX_Unmarshal(b []byte) error {
153	return xxx_messageInfo_GrpcKeyBuilder.Unmarshal(m, b)
154}
155func (m *GrpcKeyBuilder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
156	return xxx_messageInfo_GrpcKeyBuilder.Marshal(b, m, deterministic)
157}
158func (m *GrpcKeyBuilder) XXX_Merge(src proto.Message) {
159	xxx_messageInfo_GrpcKeyBuilder.Merge(m, src)
160}
161func (m *GrpcKeyBuilder) XXX_Size() int {
162	return xxx_messageInfo_GrpcKeyBuilder.Size(m)
163}
164func (m *GrpcKeyBuilder) XXX_DiscardUnknown() {
165	xxx_messageInfo_GrpcKeyBuilder.DiscardUnknown(m)
166}
167
168var xxx_messageInfo_GrpcKeyBuilder proto.InternalMessageInfo
169
170func (m *GrpcKeyBuilder) GetNames() []*GrpcKeyBuilder_Name {
171	if m != nil {
172		return m.Names
173	}
174	return nil
175}
176
177func (m *GrpcKeyBuilder) GetHeaders() []*NameMatcher {
178	if m != nil {
179		return m.Headers
180	}
181	return nil
182}
183
184// To match, one of the given Name fields must match; the service and method
185// fields are specified as fixed strings.  The service name is required and
186// includes the proto package name.  The method name may be omitted, in
187// which case any method on the given service is matched.
188type GrpcKeyBuilder_Name struct {
189	Service              string   `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
190	Method               string   `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
191	XXX_NoUnkeyedLiteral struct{} `json:"-"`
192	XXX_unrecognized     []byte   `json:"-"`
193	XXX_sizecache        int32    `json:"-"`
194}
195
196func (m *GrpcKeyBuilder_Name) Reset()         { *m = GrpcKeyBuilder_Name{} }
197func (m *GrpcKeyBuilder_Name) String() string { return proto.CompactTextString(m) }
198func (*GrpcKeyBuilder_Name) ProtoMessage()    {}
199func (*GrpcKeyBuilder_Name) Descriptor() ([]byte, []int) {
200	return fileDescriptor_f013e3228551a7a8, []int{1, 0}
201}
202
203func (m *GrpcKeyBuilder_Name) XXX_Unmarshal(b []byte) error {
204	return xxx_messageInfo_GrpcKeyBuilder_Name.Unmarshal(m, b)
205}
206func (m *GrpcKeyBuilder_Name) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
207	return xxx_messageInfo_GrpcKeyBuilder_Name.Marshal(b, m, deterministic)
208}
209func (m *GrpcKeyBuilder_Name) XXX_Merge(src proto.Message) {
210	xxx_messageInfo_GrpcKeyBuilder_Name.Merge(m, src)
211}
212func (m *GrpcKeyBuilder_Name) XXX_Size() int {
213	return xxx_messageInfo_GrpcKeyBuilder_Name.Size(m)
214}
215func (m *GrpcKeyBuilder_Name) XXX_DiscardUnknown() {
216	xxx_messageInfo_GrpcKeyBuilder_Name.DiscardUnknown(m)
217}
218
219var xxx_messageInfo_GrpcKeyBuilder_Name proto.InternalMessageInfo
220
221func (m *GrpcKeyBuilder_Name) GetService() string {
222	if m != nil {
223		return m.Service
224	}
225	return ""
226}
227
228func (m *GrpcKeyBuilder_Name) GetMethod() string {
229	if m != nil {
230		return m.Method
231	}
232	return ""
233}
234
235// An HttpKeyBuilder applies to a given HTTP URL and headers.
236//
237// Path and host patterns use the matching syntax from gRPC transcoding to
238// extract named key/value pairs from the path and host components of the URL:
239// https://github.com/googleapis/googleapis/blob/master/google/api/http.proto
240//
241// It is invalid to specify the same key name in multiple places in a pattern.
242//
243// For a service where the project id can be expressed either as a subdomain or
244// in the path, separate HttpKeyBuilders must be used:
245//     host_pattern: 'example.com' path_pattern: '/{id}/{object}/**'
246//     host_pattern: '{id}.example.com' path_pattern: '/{object}/**'
247// If the host is exactly 'example.com', the first path segment will be used as
248// the id and the second segment as the object. If the host has a subdomain, the
249// subdomain will be used as the id and the first segment as the object. If
250// neither pattern matches, no keys will be extracted.
251type HttpKeyBuilder struct {
252	// host_pattern is an ordered list of host template patterns for the desired
253	// value.  If any host_pattern values are specified, then at least one must
254	// match, and the last one wins and sets any specified variables.  A host
255	// consists of labels separated by dots. Each label is matched against the
256	// label in the pattern as follows:
257	//   - "*": Matches any single label.
258	//   - "**": Matches zero or more labels (first or last part of host only).
259	//   - "{<name>=...}": One or more label capture, where "..." can be any
260	//      template that does not include a capture.
261	//   - "{<name>}": A single label capture. Identical to {<name>=*}.
262	//
263	// Examples:
264	//   - "example.com": Only applies to the exact host example.com.
265	//   - "*.example.com": Matches subdomains of example.com.
266	//   - "**.example.com": matches example.com, and all levels of subdomains.
267	//   - "{project}.example.com": Extracts the third level subdomain.
268	//   - "{project=**}.example.com": Extracts the third level+ subdomains.
269	//   - "{project=**}": Extracts the entire host.
270	HostPatterns []string `protobuf:"bytes,1,rep,name=host_patterns,json=hostPatterns,proto3" json:"host_patterns,omitempty"`
271	// path_pattern is an ordered list of path template patterns for the desired
272	// value.  If any path_pattern values are specified, then at least one must
273	// match, and the last one wins and sets any specified variables.  A path
274	// consists of segments separated by slashes. Each segment is matched against
275	// the segment in the pattern as follows:
276	//   - "*": Matches any single segment.
277	//   - "**": Matches zero or more segments (first or last part of path only).
278	//   - "{<name>=...}": One or more segment capture, where "..." can be any
279	//      template that does not include a capture.
280	//   - "{<name>}": A single segment capture. Identical to {<name>=*}.
281	// A custom method may also be specified by appending ":" and the custom
282	// method name or "*" to indicate any custom method (including no custom
283	// method).  For example, "/*/projects/{project_id}/**:*" extracts
284	// `{project_id}` for any version, resource and custom method that includes
285	// it.  By default, any custom method will be matched.
286	//
287	// Examples:
288	//   - "/v1/{name=messages/*}": extracts a name like "messages/12345".
289	//   - "/v1/messages/{message_id}": extracts a message_id like "12345".
290	//   - "/v1/users/{user_id}/messages/{message_id}": extracts two key values.
291	PathPatterns []string `protobuf:"bytes,2,rep,name=path_patterns,json=pathPatterns,proto3" json:"path_patterns,omitempty"`
292	// List of query parameter names to try to match.
293	// For example: ["parent", "name", "resource.name"]
294	// We extract all the specified query_parameters (case-sensitively).  If any
295	// are marked as "required_match" and are not present, this keybuilder fails
296	// to match.  If a given parameter appears multiple times (?foo=a&foo=b) we
297	// will report it as a comma-separated string (foo=a,b).
298	QueryParameters []*NameMatcher `protobuf:"bytes,3,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"`
299	// List of headers to try to match.
300	// We extract all the specified header values (case-insensitively).  If any
301	// are marked as "required_match" and are not present, this keybuilder fails
302	// to match.  If a given header appears multiple times in the request we will
303	// report it as a comma-separated string, in standard HTTP fashion.
304	Headers              []*NameMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
305	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
306	XXX_unrecognized     []byte         `json:"-"`
307	XXX_sizecache        int32          `json:"-"`
308}
309
310func (m *HttpKeyBuilder) Reset()         { *m = HttpKeyBuilder{} }
311func (m *HttpKeyBuilder) String() string { return proto.CompactTextString(m) }
312func (*HttpKeyBuilder) ProtoMessage()    {}
313func (*HttpKeyBuilder) Descriptor() ([]byte, []int) {
314	return fileDescriptor_f013e3228551a7a8, []int{2}
315}
316
317func (m *HttpKeyBuilder) XXX_Unmarshal(b []byte) error {
318	return xxx_messageInfo_HttpKeyBuilder.Unmarshal(m, b)
319}
320func (m *HttpKeyBuilder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
321	return xxx_messageInfo_HttpKeyBuilder.Marshal(b, m, deterministic)
322}
323func (m *HttpKeyBuilder) XXX_Merge(src proto.Message) {
324	xxx_messageInfo_HttpKeyBuilder.Merge(m, src)
325}
326func (m *HttpKeyBuilder) XXX_Size() int {
327	return xxx_messageInfo_HttpKeyBuilder.Size(m)
328}
329func (m *HttpKeyBuilder) XXX_DiscardUnknown() {
330	xxx_messageInfo_HttpKeyBuilder.DiscardUnknown(m)
331}
332
333var xxx_messageInfo_HttpKeyBuilder proto.InternalMessageInfo
334
335func (m *HttpKeyBuilder) GetHostPatterns() []string {
336	if m != nil {
337		return m.HostPatterns
338	}
339	return nil
340}
341
342func (m *HttpKeyBuilder) GetPathPatterns() []string {
343	if m != nil {
344		return m.PathPatterns
345	}
346	return nil
347}
348
349func (m *HttpKeyBuilder) GetQueryParameters() []*NameMatcher {
350	if m != nil {
351		return m.QueryParameters
352	}
353	return nil
354}
355
356func (m *HttpKeyBuilder) GetHeaders() []*NameMatcher {
357	if m != nil {
358		return m.Headers
359	}
360	return nil
361}
362
363type RouteLookupConfig struct {
364	// Ordered specifications for constructing keys for HTTP requests.  Last
365	// match wins.  If no HttpKeyBuilder matches, an empty key_map will be sent to
366	// the lookup service; it should likely reply with a global default route
367	// and raise an alert.
368	HttpKeybuilders []*HttpKeyBuilder `protobuf:"bytes,1,rep,name=http_keybuilders,json=httpKeybuilders,proto3" json:"http_keybuilders,omitempty"`
369	// Unordered specifications for constructing keys for gRPC requests.  All
370	// GrpcKeyBuilders on this list must have unique "name" fields so that the
371	// client is free to prebuild a hash map keyed by name.  If no GrpcKeyBuilder
372	// matches, an empty key_map will be sent to the lookup service; it should
373	// likely reply with a global default route and raise an alert.
374	GrpcKeybuilders []*GrpcKeyBuilder `protobuf:"bytes,2,rep,name=grpc_keybuilders,json=grpcKeybuilders,proto3" json:"grpc_keybuilders,omitempty"`
375	// The name of the lookup service as a gRPC URI.  Typically, this will be
376	// a subdomain of the target, such as "lookup.datastore.googleapis.com".
377	LookupService string `protobuf:"bytes,3,opt,name=lookup_service,json=lookupService,proto3" json:"lookup_service,omitempty"`
378	// Configure a timeout value for lookup service requests.
379	// Defaults to 10 seconds if not specified.
380	LookupServiceTimeout *duration.Duration `protobuf:"bytes,4,opt,name=lookup_service_timeout,json=lookupServiceTimeout,proto3" json:"lookup_service_timeout,omitempty"`
381	// How long are responses valid for (like HTTP Cache-Control).
382	// If omitted (i.e. 0), responses are considered not to be cacheable.
383	// This value is clamped to 5 minutes to avoid unflushable bad responses.
384	MaxAge *duration.Duration `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
385	// After a response has been in the client cache for this amount of time
386	// and is re-requested, start an asynchronous RPC to re-validate it.
387	// This value should be less than max_age by at least the length of a
388	// typical RTT to the Route Lookup Service to fully mask the RTT latency.
389	// If omitted, keys are only re-requested after they have expired.
390	StaleAge *duration.Duration `protobuf:"bytes,6,opt,name=stale_age,json=staleAge,proto3" json:"stale_age,omitempty"`
391	// Rough indicator of amount of memory to use for the client cache.  Some of
392	// the data structure overhead is not accounted for, so actual memory consumed
393	// will be somewhat greater than this value.  If this field is omitted or set
394	// to zero, a client default will be used.  The value may be capped to a lower
395	// amount based on client configuration.
396	CacheSizeBytes int64 `protobuf:"varint,7,opt,name=cache_size_bytes,json=cacheSizeBytes,proto3" json:"cache_size_bytes,omitempty"`
397	// This is a list of all the possible targets that can be returned by the
398	// lookup service.  If a target not on this list is returned, it will be
399	// treated the same as an RPC error from the RLS.
400	ValidTargets []string `protobuf:"bytes,8,rep,name=valid_targets,json=validTargets,proto3" json:"valid_targets,omitempty"`
401	// This value provides a default target to use if needed.  It will be used for
402	// request processing strategy SYNC_LOOKUP_DEFAULT_TARGET_ON_ERROR if RLS
403	// returns an error, or strategy ASYNC_LOOKUP_DEFAULT_TARGET_ON_MISS if RLS
404	// returns an error or there is a cache miss in the client.  It will also be
405	// used if there are no healthy backends for an RLS target.  Note that
406	// requests can be routed only to a subdomain of the original target,
407	// e.g. "us_east_1.cloudbigtable.googleapis.com".
408	DefaultTarget             string                                      `protobuf:"bytes,9,opt,name=default_target,json=defaultTarget,proto3" json:"default_target,omitempty"`
409	RequestProcessingStrategy RouteLookupConfig_RequestProcessingStrategy `protobuf:"varint,10,opt,name=request_processing_strategy,json=requestProcessingStrategy,proto3,enum=grpc.lookup.v1.RouteLookupConfig_RequestProcessingStrategy" json:"request_processing_strategy,omitempty"`
410	XXX_NoUnkeyedLiteral      struct{}                                    `json:"-"`
411	XXX_unrecognized          []byte                                      `json:"-"`
412	XXX_sizecache             int32                                       `json:"-"`
413}
414
415func (m *RouteLookupConfig) Reset()         { *m = RouteLookupConfig{} }
416func (m *RouteLookupConfig) String() string { return proto.CompactTextString(m) }
417func (*RouteLookupConfig) ProtoMessage()    {}
418func (*RouteLookupConfig) Descriptor() ([]byte, []int) {
419	return fileDescriptor_f013e3228551a7a8, []int{3}
420}
421
422func (m *RouteLookupConfig) XXX_Unmarshal(b []byte) error {
423	return xxx_messageInfo_RouteLookupConfig.Unmarshal(m, b)
424}
425func (m *RouteLookupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
426	return xxx_messageInfo_RouteLookupConfig.Marshal(b, m, deterministic)
427}
428func (m *RouteLookupConfig) XXX_Merge(src proto.Message) {
429	xxx_messageInfo_RouteLookupConfig.Merge(m, src)
430}
431func (m *RouteLookupConfig) XXX_Size() int {
432	return xxx_messageInfo_RouteLookupConfig.Size(m)
433}
434func (m *RouteLookupConfig) XXX_DiscardUnknown() {
435	xxx_messageInfo_RouteLookupConfig.DiscardUnknown(m)
436}
437
438var xxx_messageInfo_RouteLookupConfig proto.InternalMessageInfo
439
440func (m *RouteLookupConfig) GetHttpKeybuilders() []*HttpKeyBuilder {
441	if m != nil {
442		return m.HttpKeybuilders
443	}
444	return nil
445}
446
447func (m *RouteLookupConfig) GetGrpcKeybuilders() []*GrpcKeyBuilder {
448	if m != nil {
449		return m.GrpcKeybuilders
450	}
451	return nil
452}
453
454func (m *RouteLookupConfig) GetLookupService() string {
455	if m != nil {
456		return m.LookupService
457	}
458	return ""
459}
460
461func (m *RouteLookupConfig) GetLookupServiceTimeout() *duration.Duration {
462	if m != nil {
463		return m.LookupServiceTimeout
464	}
465	return nil
466}
467
468func (m *RouteLookupConfig) GetMaxAge() *duration.Duration {
469	if m != nil {
470		return m.MaxAge
471	}
472	return nil
473}
474
475func (m *RouteLookupConfig) GetStaleAge() *duration.Duration {
476	if m != nil {
477		return m.StaleAge
478	}
479	return nil
480}
481
482func (m *RouteLookupConfig) GetCacheSizeBytes() int64 {
483	if m != nil {
484		return m.CacheSizeBytes
485	}
486	return 0
487}
488
489func (m *RouteLookupConfig) GetValidTargets() []string {
490	if m != nil {
491		return m.ValidTargets
492	}
493	return nil
494}
495
496func (m *RouteLookupConfig) GetDefaultTarget() string {
497	if m != nil {
498		return m.DefaultTarget
499	}
500	return ""
501}
502
503func (m *RouteLookupConfig) GetRequestProcessingStrategy() RouteLookupConfig_RequestProcessingStrategy {
504	if m != nil {
505		return m.RequestProcessingStrategy
506	}
507	return RouteLookupConfig_STRATEGY_UNSPECIFIED
508}
509
510func init() {
511	proto.RegisterEnum("grpc.lookup.v1.RouteLookupConfig_RequestProcessingStrategy", RouteLookupConfig_RequestProcessingStrategy_name, RouteLookupConfig_RequestProcessingStrategy_value)
512	proto.RegisterType((*NameMatcher)(nil), "grpc.lookup.v1.NameMatcher")
513	proto.RegisterType((*GrpcKeyBuilder)(nil), "grpc.lookup.v1.GrpcKeyBuilder")
514	proto.RegisterType((*GrpcKeyBuilder_Name)(nil), "grpc.lookup.v1.GrpcKeyBuilder.Name")
515	proto.RegisterType((*HttpKeyBuilder)(nil), "grpc.lookup.v1.HttpKeyBuilder")
516	proto.RegisterType((*RouteLookupConfig)(nil), "grpc.lookup.v1.RouteLookupConfig")
517}
518
519func init() {
520	proto.RegisterFile("grpc/rls/grpc_lookup_v1/rls_config.proto", fileDescriptor_f013e3228551a7a8)
521}
522
523var fileDescriptor_f013e3228551a7a8 = []byte{
524	// 742 bytes of a gzipped FileDescriptorProto
525	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdd, 0x6e, 0xdb, 0x36,
526	0x18, 0x9d, 0xa2, 0xd4, 0x89, 0x99, 0x46, 0x71, 0x85, 0xa0, 0x50, 0x5a, 0xac, 0xf0, 0x1c, 0x14,
527	0xd3, 0xc5, 0x20, 0xa3, 0x1e, 0x36, 0x6c, 0xd8, 0x95, 0xed, 0x28, 0x99, 0x51, 0xd7, 0x36, 0x28,
528	0xe5, 0xa2, 0xc3, 0x00, 0x82, 0x96, 0xbf, 0x48, 0x42, 0x24, 0x53, 0xa5, 0x28, 0xa3, 0xee, 0xde,
529	0x68, 0xc0, 0xde, 0x60, 0x2f, 0xb2, 0xb7, 0x19, 0x28, 0x4a, 0x9e, 0xed, 0x2d, 0x4b, 0xef, 0xf4,
530	0x1d, 0x9e, 0x73, 0xc4, 0xef, 0x8f, 0xc8, 0x0e, 0x79, 0x16, 0x74, 0x79, 0x92, 0x77, 0xe5, 0x07,
531	0x49, 0x18, 0xbb, 0x2f, 0x32, 0xb2, 0x7a, 0x23, 0x21, 0x12, 0xb0, 0xe5, 0x5d, 0x1c, 0x3a, 0x19,
532	0x67, 0x82, 0x99, 0x86, 0x24, 0x38, 0x8a, 0xe0, 0xac, 0xde, 0xbc, 0x78, 0x15, 0x32, 0x16, 0x26,
533	0xd0, 0x2d, 0x4f, 0xe7, 0xc5, 0x5d, 0x77, 0x51, 0x70, 0x2a, 0x62, 0xb6, 0x54, 0xfc, 0xce, 0xaf,
534	0xe8, 0x64, 0x42, 0x53, 0x78, 0x47, 0x45, 0x10, 0x01, 0x37, 0x5b, 0x48, 0xbf, 0x87, 0xb5, 0xa5,
535	0xb5, 0x35, 0xbb, 0x89, 0xe5, 0xa7, 0x79, 0x8e, 0x9e, 0x2c, 0x69, 0x0a, 0xb9, 0x75, 0xd0, 0xd6,
536	0xed, 0x26, 0x56, 0x81, 0xf9, 0x1a, 0x19, 0x1c, 0x3e, 0x14, 0x31, 0x87, 0x05, 0x49, 0xa5, 0xd6,
537	0xd2, 0xdb, 0x9a, 0x7d, 0x8c, 0x4f, 0x6b, 0xb4, 0x34, 0xec, 0xfc, 0xa9, 0x21, 0xe3, 0x86, 0x67,
538	0xc1, 0x5b, 0x58, 0x0f, 0x8a, 0x38, 0x59, 0x00, 0x37, 0x7f, 0xac, 0xfd, 0xb4, 0xb6, 0x6e, 0x9f,
539	0xf4, 0x2e, 0x9d, 0xdd, 0x0b, 0x3b, 0xbb, 0x74, 0x47, 0x5e, 0xae, 0xfe, 0xe9, 0x77, 0xe8, 0x28,
540	0x02, 0xba, 0x00, 0xae, 0x2e, 0x73, 0xd2, 0x7b, 0xb9, 0x2f, 0xde, 0x4a, 0x05, 0xd7, 0xdc, 0x17,
541	0x3f, 0xa0, 0x43, 0x89, 0x9b, 0x16, 0x3a, 0xca, 0x81, 0xaf, 0xe2, 0x00, 0xaa, 0xfc, 0xea, 0xd0,
542	0x7c, 0x8e, 0x1a, 0x29, 0x88, 0x88, 0x2d, 0xac, 0x83, 0xf2, 0xa0, 0x8a, 0x3a, 0x7f, 0x69, 0xc8,
543	0xf8, 0x59, 0x88, 0x6c, 0xeb, 0xfa, 0x97, 0xe8, 0x34, 0x62, 0xb9, 0x20, 0x19, 0x15, 0x02, 0xf8,
544	0x52, 0xa5, 0xd1, 0xc4, 0x4f, 0x25, 0x38, 0xab, 0x30, 0x49, 0xca, 0xa8, 0x88, 0xfe, 0x21, 0xa9,
545	0xda, 0x3d, 0x95, 0xe0, 0x86, 0x74, 0x8d, 0x5a, 0x1f, 0x0a, 0xe0, 0x6b, 0x92, 0x51, 0x4e, 0x53,
546	0x10, 0x32, 0x2d, 0xfd, 0xf1, 0xb4, 0xce, 0x4a, 0xd1, 0x6c, 0xa3, 0xd9, 0xae, 0xca, 0xe1, 0xe7,
547	0x57, 0xa5, 0xf3, 0x47, 0x03, 0x3d, 0xc3, 0xac, 0x10, 0x30, 0x2e, 0x79, 0xc3, 0x72, 0x88, 0xcc,
548	0x11, 0x6a, 0x45, 0x42, 0x64, 0xe4, 0x1e, 0xd6, 0x73, 0x95, 0x71, 0xdd, 0xa8, 0x57, 0xfb, 0xae,
549	0xbb, 0x85, 0xc1, 0x67, 0x91, 0x8a, 0x6b, 0x99, 0xb4, 0x2a, 0x87, 0x75, 0xdb, 0xea, 0xe0, 0xbf,
550	0xad, 0x76, 0x7b, 0x8e, 0xcf, 0x42, 0x15, 0x6f, 0xac, 0x5e, 0x23, 0xa3, 0x1a, 0xf9, 0xba, 0x81,
551	0x7a, 0xd9, 0xa7, 0x53, 0x85, 0x7a, 0x55, 0x1b, 0xa7, 0xe8, 0xf9, 0x2e, 0x8d, 0x88, 0x38, 0x05,
552	0x56, 0x08, 0xeb, 0xb0, 0xad, 0xd9, 0x27, 0xbd, 0x0b, 0x47, 0x2d, 0x83, 0x53, 0x2f, 0x83, 0x73,
553	0x55, 0x2d, 0x03, 0x3e, 0xdf, 0x71, 0xf2, 0x95, 0xcc, 0xec, 0xa1, 0xa3, 0x94, 0x7e, 0x24, 0x34,
554	0x04, 0xeb, 0xc9, 0x63, 0x0e, 0x8d, 0x94, 0x7e, 0xec, 0x87, 0x60, 0x7e, 0x8f, 0x9a, 0xb9, 0xa0,
555	0x09, 0x94, 0xaa, 0xc6, 0x63, 0xaa, 0xe3, 0x92, 0x2b, 0x75, 0x36, 0x6a, 0x05, 0x34, 0x88, 0x80,
556	0xe4, 0xf1, 0x27, 0x20, 0xf3, 0xb5, 0x80, 0xdc, 0x3a, 0x6a, 0x6b, 0xb6, 0x8e, 0x8d, 0x12, 0xf7,
557	0xe2, 0x4f, 0x30, 0x90, 0xa8, 0x9c, 0xae, 0x15, 0x4d, 0xe2, 0x05, 0x11, 0x94, 0x87, 0x20, 0x72,
558	0xeb, 0x58, 0x4d, 0x57, 0x09, 0xfa, 0x0a, 0x93, 0x25, 0x5b, 0xc0, 0x1d, 0x2d, 0x12, 0x51, 0xd1,
559	0xac, 0xa6, 0x2a, 0x59, 0x85, 0x2a, 0x9e, 0xf9, 0x1b, 0x7a, 0x29, 0x37, 0x16, 0xe4, 0x44, 0x73,
560	0x16, 0x40, 0x9e, 0xc7, 0xcb, 0x90, 0xe4, 0x82, 0x53, 0x01, 0xe1, 0xda, 0x42, 0x6d, 0xcd, 0x36,
561	0x7a, 0x3f, 0xed, 0xf7, 0xeb, 0x5f, 0x73, 0xe3, 0x60, 0x65, 0x32, 0xdb, 0x78, 0x78, 0x95, 0x05,
562	0xbe, 0xe0, 0x0f, 0x1d, 0x75, 0x7e, 0xd7, 0xd0, 0xc5, 0x83, 0x42, 0xd3, 0x42, 0xe7, 0x9e, 0x8f,
563	0xfb, 0xbe, 0x7b, 0xf3, 0x9e, 0xdc, 0x4e, 0xbc, 0x99, 0x3b, 0x1c, 0x5d, 0x8f, 0xdc, 0xab, 0xd6,
564	0x17, 0xe6, 0xd7, 0xe8, 0xd2, 0x7b, 0x3f, 0x19, 0x92, 0xf1, 0x74, 0xfa, 0xf6, 0x76, 0x46, 0xae,
565	0xdc, 0xeb, 0xfe, 0xed, 0xd8, 0x27, 0x7e, 0x1f, 0xdf, 0xb8, 0x3e, 0x99, 0x4e, 0x88, 0x8b, 0xf1,
566	0x14, 0xb7, 0x34, 0xf3, 0x2b, 0xf4, 0xe5, 0x36, 0x71, 0x38, 0x1e, 0xb9, 0x13, 0x9f, 0x78, 0xae,
567	0xeb, 0x55, 0x94, 0x03, 0xe9, 0xd5, 0xff, 0x7f, 0xb3, 0x77, 0x23, 0xcf, 0x6b, 0xe9, 0x03, 0x0f,
568	0x3d, 0x8b, 0xd9, 0x5e, 0x21, 0x06, 0x06, 0x4e, 0x72, 0x55, 0x81, 0x99, 0x6c, 0xed, 0x4c, 0xfb,
569	0xe5, 0x9b, 0xaa, 0xd5, 0x21, 0x4b, 0xe8, 0x32, 0x74, 0x18, 0x0f, 0xcb, 0x27, 0xbb, 0xab, 0x34,
570	0x7b, 0xcf, 0xf7, 0xbc, 0x51, 0x4e, 0xc4, 0xb7, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x47, 0xa7,
571	0x94, 0xbe, 0xe0, 0x05, 0x00, 0x00,
572}
573