1// Code generated by protoc-gen-go. DO NOT EDIT.
2// versions:
3// 	protoc-gen-go v1.25.0
4// 	protoc        v3.16.0
5// source: envoy/extensions/filters/network/thrift_proxy/v3/route.proto
6
7package envoy_extensions_filters_network_thrift_proxy_v3
8
9import (
10	_ "github.com/cncf/xds/go/udpa/annotations"
11	v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
12	v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
13	_ "github.com/envoyproxy/protoc-gen-validate/validate"
14	proto "github.com/golang/protobuf/proto"
15	wrappers "github.com/golang/protobuf/ptypes/wrappers"
16	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
17	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
18	reflect "reflect"
19	sync "sync"
20)
21
22const (
23	// Verify that this generated code is sufficiently up-to-date.
24	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
25	// Verify that runtime/protoimpl is sufficiently up-to-date.
26	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
27)
28
29// This is a compile-time assertion that a sufficiently up-to-date version
30// of the legacy proto package is being used.
31const _ = proto.ProtoPackageIsVersion4
32
33type RouteConfiguration struct {
34	state         protoimpl.MessageState
35	sizeCache     protoimpl.SizeCache
36	unknownFields protoimpl.UnknownFields
37
38	// The name of the route configuration. Reserved for future use in asynchronous route discovery.
39	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
40	// The list of routes that will be matched, in order, against incoming requests. The first route
41	// that matches will be used.
42	Routes []*Route `protobuf:"bytes,2,rep,name=routes,proto3" json:"routes,omitempty"`
43}
44
45func (x *RouteConfiguration) Reset() {
46	*x = RouteConfiguration{}
47	if protoimpl.UnsafeEnabled {
48		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0]
49		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
50		ms.StoreMessageInfo(mi)
51	}
52}
53
54func (x *RouteConfiguration) String() string {
55	return protoimpl.X.MessageStringOf(x)
56}
57
58func (*RouteConfiguration) ProtoMessage() {}
59
60func (x *RouteConfiguration) ProtoReflect() protoreflect.Message {
61	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0]
62	if protoimpl.UnsafeEnabled && x != nil {
63		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
64		if ms.LoadMessageInfo() == nil {
65			ms.StoreMessageInfo(mi)
66		}
67		return ms
68	}
69	return mi.MessageOf(x)
70}
71
72// Deprecated: Use RouteConfiguration.ProtoReflect.Descriptor instead.
73func (*RouteConfiguration) Descriptor() ([]byte, []int) {
74	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{0}
75}
76
77func (x *RouteConfiguration) GetName() string {
78	if x != nil {
79		return x.Name
80	}
81	return ""
82}
83
84func (x *RouteConfiguration) GetRoutes() []*Route {
85	if x != nil {
86		return x.Routes
87	}
88	return nil
89}
90
91type Route struct {
92	state         protoimpl.MessageState
93	sizeCache     protoimpl.SizeCache
94	unknownFields protoimpl.UnknownFields
95
96	// Route matching parameters.
97	Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
98	// Route request to some upstream cluster.
99	Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
100}
101
102func (x *Route) Reset() {
103	*x = Route{}
104	if protoimpl.UnsafeEnabled {
105		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1]
106		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
107		ms.StoreMessageInfo(mi)
108	}
109}
110
111func (x *Route) String() string {
112	return protoimpl.X.MessageStringOf(x)
113}
114
115func (*Route) ProtoMessage() {}
116
117func (x *Route) ProtoReflect() protoreflect.Message {
118	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1]
119	if protoimpl.UnsafeEnabled && x != nil {
120		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
121		if ms.LoadMessageInfo() == nil {
122			ms.StoreMessageInfo(mi)
123		}
124		return ms
125	}
126	return mi.MessageOf(x)
127}
128
129// Deprecated: Use Route.ProtoReflect.Descriptor instead.
130func (*Route) Descriptor() ([]byte, []int) {
131	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{1}
132}
133
134func (x *Route) GetMatch() *RouteMatch {
135	if x != nil {
136		return x.Match
137	}
138	return nil
139}
140
141func (x *Route) GetRoute() *RouteAction {
142	if x != nil {
143		return x.Route
144	}
145	return nil
146}
147
148type RouteMatch struct {
149	state         protoimpl.MessageState
150	sizeCache     protoimpl.SizeCache
151	unknownFields protoimpl.UnknownFields
152
153	// Types that are assignable to MatchSpecifier:
154	//	*RouteMatch_MethodName
155	//	*RouteMatch_ServiceName
156	MatchSpecifier isRouteMatch_MatchSpecifier `protobuf_oneof:"match_specifier"`
157	// Inverts whatever matching is done in the :ref:`method_name
158	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or
159	// :ref:`service_name
160	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields.
161	// Cannot be combined with wildcard matching as that would result in routes never being matched.
162	//
163	// .. note::
164	//
165	//   This does not invert matching done as part of the :ref:`headers field
166	//   <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To
167	//   invert header matching, see :ref:`invert_match
168	//   <envoy_v3_api_field_config.route.v3.HeaderMatcher.invert_match>`.
169	Invert bool `protobuf:"varint,3,opt,name=invert,proto3" json:"invert,omitempty"`
170	// Specifies a set of headers that the route should match on. The router will check the request’s
171	// headers against all the specified headers in the route config. A match will happen if all the
172	// headers in the route are present in the request with the same values (or based on presence if
173	// the value field is not in the config). Note that this only applies for Thrift transports and/or
174	// protocols that support headers.
175	Headers []*v3.HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
176}
177
178func (x *RouteMatch) Reset() {
179	*x = RouteMatch{}
180	if protoimpl.UnsafeEnabled {
181		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2]
182		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
183		ms.StoreMessageInfo(mi)
184	}
185}
186
187func (x *RouteMatch) String() string {
188	return protoimpl.X.MessageStringOf(x)
189}
190
191func (*RouteMatch) ProtoMessage() {}
192
193func (x *RouteMatch) ProtoReflect() protoreflect.Message {
194	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2]
195	if protoimpl.UnsafeEnabled && x != nil {
196		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
197		if ms.LoadMessageInfo() == nil {
198			ms.StoreMessageInfo(mi)
199		}
200		return ms
201	}
202	return mi.MessageOf(x)
203}
204
205// Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead.
206func (*RouteMatch) Descriptor() ([]byte, []int) {
207	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{2}
208}
209
210func (m *RouteMatch) GetMatchSpecifier() isRouteMatch_MatchSpecifier {
211	if m != nil {
212		return m.MatchSpecifier
213	}
214	return nil
215}
216
217func (x *RouteMatch) GetMethodName() string {
218	if x, ok := x.GetMatchSpecifier().(*RouteMatch_MethodName); ok {
219		return x.MethodName
220	}
221	return ""
222}
223
224func (x *RouteMatch) GetServiceName() string {
225	if x, ok := x.GetMatchSpecifier().(*RouteMatch_ServiceName); ok {
226		return x.ServiceName
227	}
228	return ""
229}
230
231func (x *RouteMatch) GetInvert() bool {
232	if x != nil {
233		return x.Invert
234	}
235	return false
236}
237
238func (x *RouteMatch) GetHeaders() []*v3.HeaderMatcher {
239	if x != nil {
240		return x.Headers
241	}
242	return nil
243}
244
245type isRouteMatch_MatchSpecifier interface {
246	isRouteMatch_MatchSpecifier()
247}
248
249type RouteMatch_MethodName struct {
250	// If specified, the route must exactly match the request method name. As a special case, an
251	// empty string matches any request method name.
252	MethodName string `protobuf:"bytes,1,opt,name=method_name,json=methodName,proto3,oneof"`
253}
254
255type RouteMatch_ServiceName struct {
256	// If specified, the route must have the service name as the request method name prefix. As a
257	// special case, an empty string matches any service name. Only relevant when service
258	// multiplexing.
259	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3,oneof"`
260}
261
262func (*RouteMatch_MethodName) isRouteMatch_MatchSpecifier() {}
263
264func (*RouteMatch_ServiceName) isRouteMatch_MatchSpecifier() {}
265
266// [#next-free-field: 7]
267type RouteAction struct {
268	state         protoimpl.MessageState
269	sizeCache     protoimpl.SizeCache
270	unknownFields protoimpl.UnknownFields
271
272	// Types that are assignable to ClusterSpecifier:
273	//	*RouteAction_Cluster
274	//	*RouteAction_WeightedClusters
275	//	*RouteAction_ClusterHeader
276	ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
277	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
278	// the upstream cluster with metadata matching what is set in this field will be considered.
279	// Note that this will be merged with what's provided in :ref:`WeightedCluster.metadata_match
280	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`,
281	// with values there taking precedence. Keys and values should be provided under the "envoy.lb"
282	// metadata key.
283	MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
284	// Specifies a set of rate limit configurations that could be applied to the route.
285	// N.B. Thrift service or method name matching can be achieved by specifying a RequestHeaders
286	// action with the header name ":method-name".
287	RateLimits []*v3.RateLimit `protobuf:"bytes,4,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
288	// Strip the service prefix from the method name, if there's a prefix. For
289	// example, the method call Service:method would end up being just method.
290	StripServiceName bool `protobuf:"varint,5,opt,name=strip_service_name,json=stripServiceName,proto3" json:"strip_service_name,omitempty"`
291}
292
293func (x *RouteAction) Reset() {
294	*x = RouteAction{}
295	if protoimpl.UnsafeEnabled {
296		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3]
297		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
298		ms.StoreMessageInfo(mi)
299	}
300}
301
302func (x *RouteAction) String() string {
303	return protoimpl.X.MessageStringOf(x)
304}
305
306func (*RouteAction) ProtoMessage() {}
307
308func (x *RouteAction) ProtoReflect() protoreflect.Message {
309	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3]
310	if protoimpl.UnsafeEnabled && x != nil {
311		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
312		if ms.LoadMessageInfo() == nil {
313			ms.StoreMessageInfo(mi)
314		}
315		return ms
316	}
317	return mi.MessageOf(x)
318}
319
320// Deprecated: Use RouteAction.ProtoReflect.Descriptor instead.
321func (*RouteAction) Descriptor() ([]byte, []int) {
322	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{3}
323}
324
325func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier {
326	if m != nil {
327		return m.ClusterSpecifier
328	}
329	return nil
330}
331
332func (x *RouteAction) GetCluster() string {
333	if x, ok := x.GetClusterSpecifier().(*RouteAction_Cluster); ok {
334		return x.Cluster
335	}
336	return ""
337}
338
339func (x *RouteAction) GetWeightedClusters() *WeightedCluster {
340	if x, ok := x.GetClusterSpecifier().(*RouteAction_WeightedClusters); ok {
341		return x.WeightedClusters
342	}
343	return nil
344}
345
346func (x *RouteAction) GetClusterHeader() string {
347	if x, ok := x.GetClusterSpecifier().(*RouteAction_ClusterHeader); ok {
348		return x.ClusterHeader
349	}
350	return ""
351}
352
353func (x *RouteAction) GetMetadataMatch() *v31.Metadata {
354	if x != nil {
355		return x.MetadataMatch
356	}
357	return nil
358}
359
360func (x *RouteAction) GetRateLimits() []*v3.RateLimit {
361	if x != nil {
362		return x.RateLimits
363	}
364	return nil
365}
366
367func (x *RouteAction) GetStripServiceName() bool {
368	if x != nil {
369		return x.StripServiceName
370	}
371	return false
372}
373
374type isRouteAction_ClusterSpecifier interface {
375	isRouteAction_ClusterSpecifier()
376}
377
378type RouteAction_Cluster struct {
379	// Indicates a single upstream cluster to which the request should be routed
380	// to.
381	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"`
382}
383
384type RouteAction_WeightedClusters struct {
385	// Multiple upstream clusters can be specified for a given route. The
386	// request is routed to one of the upstream clusters based on weights
387	// assigned to each cluster.
388	WeightedClusters *WeightedCluster `protobuf:"bytes,2,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
389}
390
391type RouteAction_ClusterHeader struct {
392	// Envoy will determine the cluster to route to by reading the value of the
393	// Thrift header named by cluster_header from the request headers. If the
394	// header is not found or the referenced cluster does not exist Envoy will
395	// respond with an unknown method exception or an internal error exception,
396	// respectively.
397	ClusterHeader string `protobuf:"bytes,6,opt,name=cluster_header,json=clusterHeader,proto3,oneof"`
398}
399
400func (*RouteAction_Cluster) isRouteAction_ClusterSpecifier() {}
401
402func (*RouteAction_WeightedClusters) isRouteAction_ClusterSpecifier() {}
403
404func (*RouteAction_ClusterHeader) isRouteAction_ClusterSpecifier() {}
405
406// Allows for specification of multiple upstream clusters along with weights that indicate the
407// percentage of traffic to be forwarded to each cluster. The router selects an upstream cluster
408// based on these weights.
409type WeightedCluster struct {
410	state         protoimpl.MessageState
411	sizeCache     protoimpl.SizeCache
412	unknownFields protoimpl.UnknownFields
413
414	// Specifies one or more upstream clusters associated with the route.
415	Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
416}
417
418func (x *WeightedCluster) Reset() {
419	*x = WeightedCluster{}
420	if protoimpl.UnsafeEnabled {
421		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4]
422		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
423		ms.StoreMessageInfo(mi)
424	}
425}
426
427func (x *WeightedCluster) String() string {
428	return protoimpl.X.MessageStringOf(x)
429}
430
431func (*WeightedCluster) ProtoMessage() {}
432
433func (x *WeightedCluster) ProtoReflect() protoreflect.Message {
434	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4]
435	if protoimpl.UnsafeEnabled && x != nil {
436		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
437		if ms.LoadMessageInfo() == nil {
438			ms.StoreMessageInfo(mi)
439		}
440		return ms
441	}
442	return mi.MessageOf(x)
443}
444
445// Deprecated: Use WeightedCluster.ProtoReflect.Descriptor instead.
446func (*WeightedCluster) Descriptor() ([]byte, []int) {
447	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{4}
448}
449
450func (x *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight {
451	if x != nil {
452		return x.Clusters
453	}
454	return nil
455}
456
457type WeightedCluster_ClusterWeight struct {
458	state         protoimpl.MessageState
459	sizeCache     protoimpl.SizeCache
460	unknownFields protoimpl.UnknownFields
461
462	// Name of the upstream cluster.
463	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
464	// When a request matches the route, the choice of an upstream cluster is determined by its
465	// weight. The sum of weights across all entries in the clusters array determines the total
466	// weight.
467	Weight *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"`
468	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
469	// the upstream cluster with metadata matching what is set in this field, combined with what's
470	// provided in :ref:`RouteAction's metadata_match
471	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`,
472	// will be considered. Values here will take precedence. Keys and values should be provided
473	// under the "envoy.lb" metadata key.
474	MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
475}
476
477func (x *WeightedCluster_ClusterWeight) Reset() {
478	*x = WeightedCluster_ClusterWeight{}
479	if protoimpl.UnsafeEnabled {
480		mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5]
481		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
482		ms.StoreMessageInfo(mi)
483	}
484}
485
486func (x *WeightedCluster_ClusterWeight) String() string {
487	return protoimpl.X.MessageStringOf(x)
488}
489
490func (*WeightedCluster_ClusterWeight) ProtoMessage() {}
491
492func (x *WeightedCluster_ClusterWeight) ProtoReflect() protoreflect.Message {
493	mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5]
494	if protoimpl.UnsafeEnabled && x != nil {
495		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
496		if ms.LoadMessageInfo() == nil {
497			ms.StoreMessageInfo(mi)
498		}
499		return ms
500	}
501	return mi.MessageOf(x)
502}
503
504// Deprecated: Use WeightedCluster_ClusterWeight.ProtoReflect.Descriptor instead.
505func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) {
506	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{4, 0}
507}
508
509func (x *WeightedCluster_ClusterWeight) GetName() string {
510	if x != nil {
511		return x.Name
512	}
513	return ""
514}
515
516func (x *WeightedCluster_ClusterWeight) GetWeight() *wrappers.UInt32Value {
517	if x != nil {
518		return x.Weight
519	}
520	return nil
521}
522
523func (x *WeightedCluster_ClusterWeight) GetMetadataMatch() *v31.Metadata {
524	if x != nil {
525		return x.MetadataMatch
526	}
527	return nil
528}
529
530var File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto protoreflect.FileDescriptor
531
532var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc = []byte{
533	0x0a, 0x3c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
534	0x6e, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f,
535	0x72, 0x6b, 0x2f, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f,
536	0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x30,
537	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
538	0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
539	0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33,
540	0x1a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63,
541	0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
542	0x6f, 0x1a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
543	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63,
544	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
545	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
546	0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
547	0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
548	0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21,
549	0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
550	0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
551	0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69,
552	0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x52,
553	0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
554	0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
555	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18,
556	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78,
557	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
558	0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f,
559	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06,
560	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x3a, 0x4b, 0x9a, 0xc5, 0x88, 0x1e, 0x46, 0x0a, 0x44, 0x65,
561	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74,
562	0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66,
563	0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
564	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
565	0x69, 0x6f, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x5c, 0x0a,
566	0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x65,
567	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
568	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e,
569	0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e,
570	0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a,
571	0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x5d, 0x0a, 0x05, 0x72,
572	0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x65, 0x6e, 0x76,
573	0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69,
574	0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68,
575	0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f,
576	0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01,
577	0x02, 0x10, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x3a, 0x3e, 0x9a, 0xc5, 0x88, 0x1e,
578	0x39, 0x0a, 0x37, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
579	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74,
580	0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c,
581	0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x0a, 0x52,
582	0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0b, 0x6d, 0x65, 0x74,
583	0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
584	0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0c,
585	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
586	0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
587	0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
588	0x08, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x68, 0x65, 0x61,
589	0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76,
590	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
591	0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
592	0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x43, 0x9a, 0xc5, 0x88, 0x1e, 0x3e,
593	0x0a, 0x3c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66,
594	0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68,
595	0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
596	0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x16,
597	0x0a, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
598	0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xf4, 0x03, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65,
599	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
600	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
601	0x48, 0x00, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x11, 0x77,
602	0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
603	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65,
604	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
605	0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74,
606	0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
607	0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x77, 0x65, 0x69,
608	0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a,
609	0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
610	0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01,
611	0x02, 0xc8, 0x01, 0x00, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48,
612	0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
613	0x61, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
614	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72,
615	0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d,
616	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x0b,
617	0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
618	0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
619	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69,
620	0x6d, 0x69, 0x74, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12,
621	0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
622	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x74, 0x72,
623	0x69, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x44, 0x9a,
624	0xc5, 0x88, 0x1e, 0x3f, 0x0a, 0x3d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
625	0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
626	0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76,
627	0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74,
628	0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73,
629	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xdf, 0x03,
630	0x0a, 0x0f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
631	0x72, 0x12, 0x75, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
632	0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65,
633	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e,
634	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72,
635	0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43,
636	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65,
637	0x69, 0x67, 0x68, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x08,
638	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x8a, 0x02, 0x0a, 0x0d, 0x43, 0x6c, 0x75,
639	0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61,
640	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
641	0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68,
642	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
643	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32,
644	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x06,
645	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
646	0x74, 0x61, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
647	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
648	0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d,
649	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x56, 0x9a,
650	0xc5, 0x88, 0x1e, 0x51, 0x0a, 0x4f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
651	0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
652	0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76,
653	0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64,
654	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57,
655	0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x48, 0x9a, 0xc5, 0x88, 0x1e, 0x43, 0x0a, 0x41, 0x65, 0x6e,
656	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65,
657	0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74,
658	0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,
659	0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42,
660	0x56, 0x0a, 0x3e, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79,
661	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
662	0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
663	0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76,
664	0x33, 0x42, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba,
665	0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
666}
667
668var (
669	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescOnce sync.Once
670	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData = file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc
671)
672
673func file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP() []byte {
674	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescOnce.Do(func() {
675		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData)
676	})
677	return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData
678}
679
680var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
681var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes = []interface{}{
682	(*RouteConfiguration)(nil),            // 0: envoy.extensions.filters.network.thrift_proxy.v3.RouteConfiguration
683	(*Route)(nil),                         // 1: envoy.extensions.filters.network.thrift_proxy.v3.Route
684	(*RouteMatch)(nil),                    // 2: envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch
685	(*RouteAction)(nil),                   // 3: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction
686	(*WeightedCluster)(nil),               // 4: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster
687	(*WeightedCluster_ClusterWeight)(nil), // 5: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight
688	(*v3.HeaderMatcher)(nil),              // 6: envoy.config.route.v3.HeaderMatcher
689	(*v31.Metadata)(nil),                  // 7: envoy.config.core.v3.Metadata
690	(*v3.RateLimit)(nil),                  // 8: envoy.config.route.v3.RateLimit
691	(*wrappers.UInt32Value)(nil),          // 9: google.protobuf.UInt32Value
692}
693var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs = []int32{
694	1,  // 0: envoy.extensions.filters.network.thrift_proxy.v3.RouteConfiguration.routes:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.Route
695	2,  // 1: envoy.extensions.filters.network.thrift_proxy.v3.Route.match:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch
696	3,  // 2: envoy.extensions.filters.network.thrift_proxy.v3.Route.route:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.RouteAction
697	6,  // 3: envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch.headers:type_name -> envoy.config.route.v3.HeaderMatcher
698	4,  // 4: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.weighted_clusters:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster
699	7,  // 5: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match:type_name -> envoy.config.core.v3.Metadata
700	8,  // 6: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.rate_limits:type_name -> envoy.config.route.v3.RateLimit
701	5,  // 7: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.clusters:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight
702	9,  // 8: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.weight:type_name -> google.protobuf.UInt32Value
703	7,  // 9: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match:type_name -> envoy.config.core.v3.Metadata
704	10, // [10:10] is the sub-list for method output_type
705	10, // [10:10] is the sub-list for method input_type
706	10, // [10:10] is the sub-list for extension type_name
707	10, // [10:10] is the sub-list for extension extendee
708	0,  // [0:10] is the sub-list for field type_name
709}
710
711func init() { file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_init() }
712func file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_init() {
713	if File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto != nil {
714		return
715	}
716	if !protoimpl.UnsafeEnabled {
717		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
718			switch v := v.(*RouteConfiguration); i {
719			case 0:
720				return &v.state
721			case 1:
722				return &v.sizeCache
723			case 2:
724				return &v.unknownFields
725			default:
726				return nil
727			}
728		}
729		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
730			switch v := v.(*Route); i {
731			case 0:
732				return &v.state
733			case 1:
734				return &v.sizeCache
735			case 2:
736				return &v.unknownFields
737			default:
738				return nil
739			}
740		}
741		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
742			switch v := v.(*RouteMatch); i {
743			case 0:
744				return &v.state
745			case 1:
746				return &v.sizeCache
747			case 2:
748				return &v.unknownFields
749			default:
750				return nil
751			}
752		}
753		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
754			switch v := v.(*RouteAction); i {
755			case 0:
756				return &v.state
757			case 1:
758				return &v.sizeCache
759			case 2:
760				return &v.unknownFields
761			default:
762				return nil
763			}
764		}
765		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
766			switch v := v.(*WeightedCluster); i {
767			case 0:
768				return &v.state
769			case 1:
770				return &v.sizeCache
771			case 2:
772				return &v.unknownFields
773			default:
774				return nil
775			}
776		}
777		file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
778			switch v := v.(*WeightedCluster_ClusterWeight); i {
779			case 0:
780				return &v.state
781			case 1:
782				return &v.sizeCache
783			case 2:
784				return &v.unknownFields
785			default:
786				return nil
787			}
788		}
789	}
790	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2].OneofWrappers = []interface{}{
791		(*RouteMatch_MethodName)(nil),
792		(*RouteMatch_ServiceName)(nil),
793	}
794	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3].OneofWrappers = []interface{}{
795		(*RouteAction_Cluster)(nil),
796		(*RouteAction_WeightedClusters)(nil),
797		(*RouteAction_ClusterHeader)(nil),
798	}
799	type x struct{}
800	out := protoimpl.TypeBuilder{
801		File: protoimpl.DescBuilder{
802			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
803			RawDescriptor: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc,
804			NumEnums:      0,
805			NumMessages:   6,
806			NumExtensions: 0,
807			NumServices:   0,
808		},
809		GoTypes:           file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes,
810		DependencyIndexes: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs,
811		MessageInfos:      file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes,
812	}.Build()
813	File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto = out.File
814	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc = nil
815	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes = nil
816	file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs = nil
817}
818