1// Code generated by protoc-gen-go. DO NOT EDIT.
2// versions:
3// 	protoc-gen-go v1.25.0
4// 	protoc        v3.19.1
5// source: envoy/api/v2/route/route_components.proto
6
7package envoy_api_v2_route
8
9import (
10	_ "github.com/cncf/xds/go/udpa/annotations"
11	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
12	core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core"
13	_type "github.com/envoyproxy/go-control-plane/envoy/type"
14	matcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher"
15	v2 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v2"
16	_ "github.com/envoyproxy/protoc-gen-validate/validate"
17	proto "github.com/golang/protobuf/proto"
18	any "github.com/golang/protobuf/ptypes/any"
19	duration "github.com/golang/protobuf/ptypes/duration"
20	_struct "github.com/golang/protobuf/ptypes/struct"
21	wrappers "github.com/golang/protobuf/ptypes/wrappers"
22	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
23	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
24	reflect "reflect"
25	sync "sync"
26)
27
28const (
29	// Verify that this generated code is sufficiently up-to-date.
30	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
31	// Verify that runtime/protoimpl is sufficiently up-to-date.
32	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
33)
34
35// This is a compile-time assertion that a sufficiently up-to-date version
36// of the legacy proto package is being used.
37const _ = proto.ProtoPackageIsVersion4
38
39type VirtualHost_TlsRequirementType int32
40
41const (
42	// No TLS requirement for the virtual host.
43	VirtualHost_NONE VirtualHost_TlsRequirementType = 0
44	// External requests must use TLS. If a request is external and it is not
45	// using TLS, a 301 redirect will be sent telling the client to use HTTPS.
46	VirtualHost_EXTERNAL_ONLY VirtualHost_TlsRequirementType = 1
47	// All requests must use TLS. If a request is not using TLS, a 301 redirect
48	// will be sent telling the client to use HTTPS.
49	VirtualHost_ALL VirtualHost_TlsRequirementType = 2
50)
51
52// Enum value maps for VirtualHost_TlsRequirementType.
53var (
54	VirtualHost_TlsRequirementType_name = map[int32]string{
55		0: "NONE",
56		1: "EXTERNAL_ONLY",
57		2: "ALL",
58	}
59	VirtualHost_TlsRequirementType_value = map[string]int32{
60		"NONE":          0,
61		"EXTERNAL_ONLY": 1,
62		"ALL":           2,
63	}
64)
65
66func (x VirtualHost_TlsRequirementType) Enum() *VirtualHost_TlsRequirementType {
67	p := new(VirtualHost_TlsRequirementType)
68	*p = x
69	return p
70}
71
72func (x VirtualHost_TlsRequirementType) String() string {
73	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
74}
75
76func (VirtualHost_TlsRequirementType) Descriptor() protoreflect.EnumDescriptor {
77	return file_envoy_api_v2_route_route_components_proto_enumTypes[0].Descriptor()
78}
79
80func (VirtualHost_TlsRequirementType) Type() protoreflect.EnumType {
81	return &file_envoy_api_v2_route_route_components_proto_enumTypes[0]
82}
83
84func (x VirtualHost_TlsRequirementType) Number() protoreflect.EnumNumber {
85	return protoreflect.EnumNumber(x)
86}
87
88// Deprecated: Use VirtualHost_TlsRequirementType.Descriptor instead.
89func (VirtualHost_TlsRequirementType) EnumDescriptor() ([]byte, []int) {
90	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{0, 0}
91}
92
93type RouteAction_ClusterNotFoundResponseCode int32
94
95const (
96	// HTTP status code - 503 Service Unavailable.
97	RouteAction_SERVICE_UNAVAILABLE RouteAction_ClusterNotFoundResponseCode = 0
98	// HTTP status code - 404 Not Found.
99	RouteAction_NOT_FOUND RouteAction_ClusterNotFoundResponseCode = 1
100)
101
102// Enum value maps for RouteAction_ClusterNotFoundResponseCode.
103var (
104	RouteAction_ClusterNotFoundResponseCode_name = map[int32]string{
105		0: "SERVICE_UNAVAILABLE",
106		1: "NOT_FOUND",
107	}
108	RouteAction_ClusterNotFoundResponseCode_value = map[string]int32{
109		"SERVICE_UNAVAILABLE": 0,
110		"NOT_FOUND":           1,
111	}
112)
113
114func (x RouteAction_ClusterNotFoundResponseCode) Enum() *RouteAction_ClusterNotFoundResponseCode {
115	p := new(RouteAction_ClusterNotFoundResponseCode)
116	*p = x
117	return p
118}
119
120func (x RouteAction_ClusterNotFoundResponseCode) String() string {
121	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
122}
123
124func (RouteAction_ClusterNotFoundResponseCode) Descriptor() protoreflect.EnumDescriptor {
125	return file_envoy_api_v2_route_route_components_proto_enumTypes[1].Descriptor()
126}
127
128func (RouteAction_ClusterNotFoundResponseCode) Type() protoreflect.EnumType {
129	return &file_envoy_api_v2_route_route_components_proto_enumTypes[1]
130}
131
132func (x RouteAction_ClusterNotFoundResponseCode) Number() protoreflect.EnumNumber {
133	return protoreflect.EnumNumber(x)
134}
135
136// Deprecated: Use RouteAction_ClusterNotFoundResponseCode.Descriptor instead.
137func (RouteAction_ClusterNotFoundResponseCode) EnumDescriptor() ([]byte, []int) {
138	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 0}
139}
140
141// Configures :ref:`internal redirect <arch_overview_internal_redirects>` behavior.
142type RouteAction_InternalRedirectAction int32
143
144const (
145	RouteAction_PASS_THROUGH_INTERNAL_REDIRECT RouteAction_InternalRedirectAction = 0
146	RouteAction_HANDLE_INTERNAL_REDIRECT       RouteAction_InternalRedirectAction = 1
147)
148
149// Enum value maps for RouteAction_InternalRedirectAction.
150var (
151	RouteAction_InternalRedirectAction_name = map[int32]string{
152		0: "PASS_THROUGH_INTERNAL_REDIRECT",
153		1: "HANDLE_INTERNAL_REDIRECT",
154	}
155	RouteAction_InternalRedirectAction_value = map[string]int32{
156		"PASS_THROUGH_INTERNAL_REDIRECT": 0,
157		"HANDLE_INTERNAL_REDIRECT":       1,
158	}
159)
160
161func (x RouteAction_InternalRedirectAction) Enum() *RouteAction_InternalRedirectAction {
162	p := new(RouteAction_InternalRedirectAction)
163	*p = x
164	return p
165}
166
167func (x RouteAction_InternalRedirectAction) String() string {
168	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
169}
170
171func (RouteAction_InternalRedirectAction) Descriptor() protoreflect.EnumDescriptor {
172	return file_envoy_api_v2_route_route_components_proto_enumTypes[2].Descriptor()
173}
174
175func (RouteAction_InternalRedirectAction) Type() protoreflect.EnumType {
176	return &file_envoy_api_v2_route_route_components_proto_enumTypes[2]
177}
178
179func (x RouteAction_InternalRedirectAction) Number() protoreflect.EnumNumber {
180	return protoreflect.EnumNumber(x)
181}
182
183// Deprecated: Use RouteAction_InternalRedirectAction.Descriptor instead.
184func (RouteAction_InternalRedirectAction) EnumDescriptor() ([]byte, []int) {
185	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1}
186}
187
188type RedirectAction_RedirectResponseCode int32
189
190const (
191	// Moved Permanently HTTP Status Code - 301.
192	RedirectAction_MOVED_PERMANENTLY RedirectAction_RedirectResponseCode = 0
193	// Found HTTP Status Code - 302.
194	RedirectAction_FOUND RedirectAction_RedirectResponseCode = 1
195	// See Other HTTP Status Code - 303.
196	RedirectAction_SEE_OTHER RedirectAction_RedirectResponseCode = 2
197	// Temporary Redirect HTTP Status Code - 307.
198	RedirectAction_TEMPORARY_REDIRECT RedirectAction_RedirectResponseCode = 3
199	// Permanent Redirect HTTP Status Code - 308.
200	RedirectAction_PERMANENT_REDIRECT RedirectAction_RedirectResponseCode = 4
201)
202
203// Enum value maps for RedirectAction_RedirectResponseCode.
204var (
205	RedirectAction_RedirectResponseCode_name = map[int32]string{
206		0: "MOVED_PERMANENTLY",
207		1: "FOUND",
208		2: "SEE_OTHER",
209		3: "TEMPORARY_REDIRECT",
210		4: "PERMANENT_REDIRECT",
211	}
212	RedirectAction_RedirectResponseCode_value = map[string]int32{
213		"MOVED_PERMANENTLY":  0,
214		"FOUND":              1,
215		"SEE_OTHER":          2,
216		"TEMPORARY_REDIRECT": 3,
217		"PERMANENT_REDIRECT": 4,
218	}
219)
220
221func (x RedirectAction_RedirectResponseCode) Enum() *RedirectAction_RedirectResponseCode {
222	p := new(RedirectAction_RedirectResponseCode)
223	*p = x
224	return p
225}
226
227func (x RedirectAction_RedirectResponseCode) String() string {
228	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
229}
230
231func (RedirectAction_RedirectResponseCode) Descriptor() protoreflect.EnumDescriptor {
232	return file_envoy_api_v2_route_route_components_proto_enumTypes[3].Descriptor()
233}
234
235func (RedirectAction_RedirectResponseCode) Type() protoreflect.EnumType {
236	return &file_envoy_api_v2_route_route_components_proto_enumTypes[3]
237}
238
239func (x RedirectAction_RedirectResponseCode) Number() protoreflect.EnumNumber {
240	return protoreflect.EnumNumber(x)
241}
242
243// Deprecated: Use RedirectAction_RedirectResponseCode.Descriptor instead.
244func (RedirectAction_RedirectResponseCode) EnumDescriptor() ([]byte, []int) {
245	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{9, 0}
246}
247
248// The top level element in the routing configuration is a virtual host. Each virtual host has
249// a logical name as well as a set of domains that get routed to it based on the incoming request's
250// host header. This allows a single listener to service multiple top level domain path trees. Once
251// a virtual host is selected based on the domain, the routes are processed in order to see which
252// upstream cluster to route to or whether to perform a redirect.
253// [#next-free-field: 21]
254type VirtualHost struct {
255	state         protoimpl.MessageState
256	sizeCache     protoimpl.SizeCache
257	unknownFields protoimpl.UnknownFields
258
259	// The logical name of the virtual host. This is used when emitting certain
260	// statistics but is not relevant for routing.
261	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
262	// A list of domains (host/authority header) that will be matched to this
263	// virtual host. Wildcard hosts are supported in the suffix or prefix form.
264	//
265	// Domain search order:
266	//  1. Exact domain names: ``www.foo.com``.
267	//  2. Suffix domain wildcards: ``*.foo.com`` or ``*-bar.foo.com``.
268	//  3. Prefix domain wildcards: ``foo.*`` or ``foo-*``.
269	//  4. Special wildcard ``*`` matching any domain.
270	//
271	// .. note::
272	//
273	//   The wildcard will not match the empty string.
274	//   e.g. ``*-bar.foo.com`` will match ``baz-bar.foo.com`` but not ``-bar.foo.com``.
275	//   The longest wildcards match first.
276	//   Only a single virtual host in the entire route configuration can match on ``*``. A domain
277	//   must be unique across all virtual hosts or the config will fail to load.
278	//
279	// Domains cannot contain control characters. This is validated by the well_known_regex HTTP_HEADER_VALUE.
280	Domains []string `protobuf:"bytes,2,rep,name=domains,proto3" json:"domains,omitempty"`
281	// The list of routes that will be matched, in order, for incoming requests.
282	// The first route that matches will be used.
283	Routes []*Route `protobuf:"bytes,3,rep,name=routes,proto3" json:"routes,omitempty"`
284	// Specifies the type of TLS enforcement the virtual host expects. If this option is not
285	// specified, there is no TLS requirement for the virtual host.
286	RequireTls VirtualHost_TlsRequirementType `protobuf:"varint,4,opt,name=require_tls,json=requireTls,proto3,enum=envoy.api.v2.route.VirtualHost_TlsRequirementType" json:"require_tls,omitempty"`
287	// A list of virtual clusters defined for this virtual host. Virtual clusters
288	// are used for additional statistics gathering.
289	VirtualClusters []*VirtualCluster `protobuf:"bytes,5,rep,name=virtual_clusters,json=virtualClusters,proto3" json:"virtual_clusters,omitempty"`
290	// Specifies a set of rate limit configurations that will be applied to the
291	// virtual host.
292	RateLimits []*RateLimit `protobuf:"bytes,6,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
293	// Specifies a list of HTTP headers that should be added to each request
294	// handled by this virtual host. Headers specified at this level are applied
295	// after headers from enclosed :ref:`envoy_api_msg_route.Route` and before headers from the
296	// enclosing :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
297	// details on header value syntax, see the documentation on :ref:`custom request headers
298	// <config_http_conn_man_headers_custom_request_headers>`.
299	RequestHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,7,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
300	// Specifies a list of HTTP headers that should be removed from each request
301	// handled by this virtual host.
302	RequestHeadersToRemove []string `protobuf:"bytes,13,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
303	// Specifies a list of HTTP headers that should be added to each response
304	// handled by this virtual host. Headers specified at this level are applied
305	// after headers from enclosed :ref:`envoy_api_msg_route.Route` and before headers from the
306	// enclosing :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
307	// details on header value syntax, see the documentation on :ref:`custom request headers
308	// <config_http_conn_man_headers_custom_request_headers>`.
309	ResponseHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
310	// Specifies a list of HTTP headers that should be removed from each response
311	// handled by this virtual host.
312	ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
313	// Indicates that the virtual host has a CORS policy.
314	Cors *CorsPolicy `protobuf:"bytes,8,opt,name=cors,proto3" json:"cors,omitempty"`
315	// The per_filter_config field can be used to provide virtual host-specific
316	// configurations for filters. The key should match the filter name, such as
317	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
318	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
319	// for if and how it is utilized.
320	//
321	// Deprecated: Do not use.
322	PerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,12,rep,name=per_filter_config,json=perFilterConfig,proto3" json:"per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
323	// The per_filter_config field can be used to provide virtual host-specific
324	// configurations for filters. The key should match the filter name, such as
325	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
326	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
327	// for if and how it is utilized.
328	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,15,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
329	// Decides whether the :ref:`x-envoy-attempt-count
330	// <config_http_filters_router_x-envoy-attempt-count>` header should be included
331	// in the upstream request. Setting this option will cause it to override any existing header
332	// value, so in the case of two Envoys on the request path with this option enabled, the upstream
333	// will see the attempt count as perceived by the second Envoy. Defaults to false.
334	// This header is unaffected by the
335	// :ref:`suppress_envoy_headers
336	// <envoy_api_field_config.filter.http.router.v2.Router.suppress_envoy_headers>` flag.
337	//
338	// [#next-major-version: rename to include_attempt_count_in_request.]
339	IncludeRequestAttemptCount bool `protobuf:"varint,14,opt,name=include_request_attempt_count,json=includeRequestAttemptCount,proto3" json:"include_request_attempt_count,omitempty"`
340	// Decides whether the :ref:`x-envoy-attempt-count
341	// <config_http_filters_router_x-envoy-attempt-count>` header should be included
342	// in the downstream response. Setting this option will cause the router to override any existing header
343	// value, so in the case of two Envoys on the request path with this option enabled, the downstream
344	// will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
345	// This header is unaffected by the
346	// :ref:`suppress_envoy_headers
347	// <envoy_api_field_config.filter.http.router.v2.Router.suppress_envoy_headers>` flag.
348	IncludeAttemptCountInResponse bool `protobuf:"varint,19,opt,name=include_attempt_count_in_response,json=includeAttemptCountInResponse,proto3" json:"include_attempt_count_in_response,omitempty"`
349	// Indicates the retry policy for all routes in this virtual host. Note that setting a
350	// route level entry will take precedence over this config and it'll be treated
351	// independently (e.g.: values are not inherited).
352	RetryPolicy *RetryPolicy `protobuf:"bytes,16,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"`
353	// [#not-implemented-hide:]
354	// Specifies the configuration for retry policy extension. Note that setting a route level entry
355	// will take precedence over this config and it'll be treated independently (e.g.: values are not
356	// inherited). :ref:`Retry policy <envoy_api_field_route.VirtualHost.retry_policy>` should not be
357	// set if this field is used.
358	RetryPolicyTypedConfig *any.Any `protobuf:"bytes,20,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"`
359	// Indicates the hedge policy for all routes in this virtual host. Note that setting a
360	// route level entry will take precedence over this config and it'll be treated
361	// independently (e.g.: values are not inherited).
362	HedgePolicy *HedgePolicy `protobuf:"bytes,17,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"`
363	// The maximum bytes which will be buffered for retries and shadowing.
364	// If set and a route-specific limit is not set, the bytes actually buffered will be the minimum
365	// value of this and the listener per_connection_buffer_limit_bytes.
366	PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,18,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"`
367}
368
369func (x *VirtualHost) Reset() {
370	*x = VirtualHost{}
371	if protoimpl.UnsafeEnabled {
372		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[0]
373		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
374		ms.StoreMessageInfo(mi)
375	}
376}
377
378func (x *VirtualHost) String() string {
379	return protoimpl.X.MessageStringOf(x)
380}
381
382func (*VirtualHost) ProtoMessage() {}
383
384func (x *VirtualHost) ProtoReflect() protoreflect.Message {
385	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[0]
386	if protoimpl.UnsafeEnabled && x != nil {
387		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
388		if ms.LoadMessageInfo() == nil {
389			ms.StoreMessageInfo(mi)
390		}
391		return ms
392	}
393	return mi.MessageOf(x)
394}
395
396// Deprecated: Use VirtualHost.ProtoReflect.Descriptor instead.
397func (*VirtualHost) Descriptor() ([]byte, []int) {
398	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{0}
399}
400
401func (x *VirtualHost) GetName() string {
402	if x != nil {
403		return x.Name
404	}
405	return ""
406}
407
408func (x *VirtualHost) GetDomains() []string {
409	if x != nil {
410		return x.Domains
411	}
412	return nil
413}
414
415func (x *VirtualHost) GetRoutes() []*Route {
416	if x != nil {
417		return x.Routes
418	}
419	return nil
420}
421
422func (x *VirtualHost) GetRequireTls() VirtualHost_TlsRequirementType {
423	if x != nil {
424		return x.RequireTls
425	}
426	return VirtualHost_NONE
427}
428
429func (x *VirtualHost) GetVirtualClusters() []*VirtualCluster {
430	if x != nil {
431		return x.VirtualClusters
432	}
433	return nil
434}
435
436func (x *VirtualHost) GetRateLimits() []*RateLimit {
437	if x != nil {
438		return x.RateLimits
439	}
440	return nil
441}
442
443func (x *VirtualHost) GetRequestHeadersToAdd() []*core.HeaderValueOption {
444	if x != nil {
445		return x.RequestHeadersToAdd
446	}
447	return nil
448}
449
450func (x *VirtualHost) GetRequestHeadersToRemove() []string {
451	if x != nil {
452		return x.RequestHeadersToRemove
453	}
454	return nil
455}
456
457func (x *VirtualHost) GetResponseHeadersToAdd() []*core.HeaderValueOption {
458	if x != nil {
459		return x.ResponseHeadersToAdd
460	}
461	return nil
462}
463
464func (x *VirtualHost) GetResponseHeadersToRemove() []string {
465	if x != nil {
466		return x.ResponseHeadersToRemove
467	}
468	return nil
469}
470
471func (x *VirtualHost) GetCors() *CorsPolicy {
472	if x != nil {
473		return x.Cors
474	}
475	return nil
476}
477
478// Deprecated: Do not use.
479func (x *VirtualHost) GetPerFilterConfig() map[string]*_struct.Struct {
480	if x != nil {
481		return x.PerFilterConfig
482	}
483	return nil
484}
485
486func (x *VirtualHost) GetTypedPerFilterConfig() map[string]*any.Any {
487	if x != nil {
488		return x.TypedPerFilterConfig
489	}
490	return nil
491}
492
493func (x *VirtualHost) GetIncludeRequestAttemptCount() bool {
494	if x != nil {
495		return x.IncludeRequestAttemptCount
496	}
497	return false
498}
499
500func (x *VirtualHost) GetIncludeAttemptCountInResponse() bool {
501	if x != nil {
502		return x.IncludeAttemptCountInResponse
503	}
504	return false
505}
506
507func (x *VirtualHost) GetRetryPolicy() *RetryPolicy {
508	if x != nil {
509		return x.RetryPolicy
510	}
511	return nil
512}
513
514func (x *VirtualHost) GetRetryPolicyTypedConfig() *any.Any {
515	if x != nil {
516		return x.RetryPolicyTypedConfig
517	}
518	return nil
519}
520
521func (x *VirtualHost) GetHedgePolicy() *HedgePolicy {
522	if x != nil {
523		return x.HedgePolicy
524	}
525	return nil
526}
527
528func (x *VirtualHost) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value {
529	if x != nil {
530		return x.PerRequestBufferLimitBytes
531	}
532	return nil
533}
534
535// A filter-defined action type.
536type FilterAction struct {
537	state         protoimpl.MessageState
538	sizeCache     protoimpl.SizeCache
539	unknownFields protoimpl.UnknownFields
540
541	Action *any.Any `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
542}
543
544func (x *FilterAction) Reset() {
545	*x = FilterAction{}
546	if protoimpl.UnsafeEnabled {
547		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[1]
548		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
549		ms.StoreMessageInfo(mi)
550	}
551}
552
553func (x *FilterAction) String() string {
554	return protoimpl.X.MessageStringOf(x)
555}
556
557func (*FilterAction) ProtoMessage() {}
558
559func (x *FilterAction) ProtoReflect() protoreflect.Message {
560	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[1]
561	if protoimpl.UnsafeEnabled && x != nil {
562		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
563		if ms.LoadMessageInfo() == nil {
564			ms.StoreMessageInfo(mi)
565		}
566		return ms
567	}
568	return mi.MessageOf(x)
569}
570
571// Deprecated: Use FilterAction.ProtoReflect.Descriptor instead.
572func (*FilterAction) Descriptor() ([]byte, []int) {
573	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{1}
574}
575
576func (x *FilterAction) GetAction() *any.Any {
577	if x != nil {
578		return x.Action
579	}
580	return nil
581}
582
583// A route is both a specification of how to match a request as well as an indication of what to do
584// next (e.g., redirect, forward, rewrite, etc.).
585//
586// .. attention::
587//
588//   Envoy supports routing on HTTP method via :ref:`header matching
589//   <envoy_api_msg_route.HeaderMatcher>`.
590// [#next-free-field: 18]
591type Route struct {
592	state         protoimpl.MessageState
593	sizeCache     protoimpl.SizeCache
594	unknownFields protoimpl.UnknownFields
595
596	// Name for the route.
597	Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"`
598	// Route matching parameters.
599	Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
600	// Types that are assignable to Action:
601	//	*Route_Route
602	//	*Route_Redirect
603	//	*Route_DirectResponse
604	//	*Route_FilterAction
605	Action isRoute_Action `protobuf_oneof:"action"`
606	// The Metadata field can be used to provide additional information
607	// about the route. It can be used for configuration, stats, and logging.
608	// The metadata should go under the filter namespace that will need it.
609	// For instance, if the metadata is intended for the Router filter,
610	// the filter name should be specified as *envoy.filters.http.router*.
611	Metadata *core.Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
612	// Decorator for the matched route.
613	Decorator *Decorator `protobuf:"bytes,5,opt,name=decorator,proto3" json:"decorator,omitempty"`
614	// The per_filter_config field can be used to provide route-specific
615	// configurations for filters. The key should match the filter name, such as
616	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
617	// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
618	// if and how it is utilized.
619	//
620	// Deprecated: Do not use.
621	PerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=per_filter_config,json=perFilterConfig,proto3" json:"per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
622	// The typed_per_filter_config field can be used to provide route-specific
623	// configurations for filters. The key should match the filter name, such as
624	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
625	// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
626	// if and how it is utilized.
627	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,13,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
628	// Specifies a set of headers that will be added to requests matching this
629	// route. Headers specified at this level are applied before headers from the
630	// enclosing :ref:`envoy_api_msg_route.VirtualHost` and
631	// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
632	// header value syntax, see the documentation on :ref:`custom request headers
633	// <config_http_conn_man_headers_custom_request_headers>`.
634	RequestHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,9,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
635	// Specifies a list of HTTP headers that should be removed from each request
636	// matching this route.
637	RequestHeadersToRemove []string `protobuf:"bytes,12,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
638	// Specifies a set of headers that will be added to responses to requests
639	// matching this route. Headers specified at this level are applied before
640	// headers from the enclosing :ref:`envoy_api_msg_route.VirtualHost` and
641	// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
642	// details on header value syntax, see the documentation on
643	// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
644	ResponseHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
645	// Specifies a list of HTTP headers that should be removed from each response
646	// to requests matching this route.
647	ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
648	// Presence of the object defines whether the connection manager's tracing configuration
649	// is overridden by this route specific instance.
650	Tracing *Tracing `protobuf:"bytes,15,opt,name=tracing,proto3" json:"tracing,omitempty"`
651	// The maximum bytes which will be buffered for retries and shadowing.
652	// If set, the bytes actually buffered will be the minimum value of this and the
653	// listener per_connection_buffer_limit_bytes.
654	PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"`
655}
656
657func (x *Route) Reset() {
658	*x = Route{}
659	if protoimpl.UnsafeEnabled {
660		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[2]
661		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
662		ms.StoreMessageInfo(mi)
663	}
664}
665
666func (x *Route) String() string {
667	return protoimpl.X.MessageStringOf(x)
668}
669
670func (*Route) ProtoMessage() {}
671
672func (x *Route) ProtoReflect() protoreflect.Message {
673	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[2]
674	if protoimpl.UnsafeEnabled && x != nil {
675		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
676		if ms.LoadMessageInfo() == nil {
677			ms.StoreMessageInfo(mi)
678		}
679		return ms
680	}
681	return mi.MessageOf(x)
682}
683
684// Deprecated: Use Route.ProtoReflect.Descriptor instead.
685func (*Route) Descriptor() ([]byte, []int) {
686	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{2}
687}
688
689func (x *Route) GetName() string {
690	if x != nil {
691		return x.Name
692	}
693	return ""
694}
695
696func (x *Route) GetMatch() *RouteMatch {
697	if x != nil {
698		return x.Match
699	}
700	return nil
701}
702
703func (m *Route) GetAction() isRoute_Action {
704	if m != nil {
705		return m.Action
706	}
707	return nil
708}
709
710func (x *Route) GetRoute() *RouteAction {
711	if x, ok := x.GetAction().(*Route_Route); ok {
712		return x.Route
713	}
714	return nil
715}
716
717func (x *Route) GetRedirect() *RedirectAction {
718	if x, ok := x.GetAction().(*Route_Redirect); ok {
719		return x.Redirect
720	}
721	return nil
722}
723
724func (x *Route) GetDirectResponse() *DirectResponseAction {
725	if x, ok := x.GetAction().(*Route_DirectResponse); ok {
726		return x.DirectResponse
727	}
728	return nil
729}
730
731func (x *Route) GetFilterAction() *FilterAction {
732	if x, ok := x.GetAction().(*Route_FilterAction); ok {
733		return x.FilterAction
734	}
735	return nil
736}
737
738func (x *Route) GetMetadata() *core.Metadata {
739	if x != nil {
740		return x.Metadata
741	}
742	return nil
743}
744
745func (x *Route) GetDecorator() *Decorator {
746	if x != nil {
747		return x.Decorator
748	}
749	return nil
750}
751
752// Deprecated: Do not use.
753func (x *Route) GetPerFilterConfig() map[string]*_struct.Struct {
754	if x != nil {
755		return x.PerFilterConfig
756	}
757	return nil
758}
759
760func (x *Route) GetTypedPerFilterConfig() map[string]*any.Any {
761	if x != nil {
762		return x.TypedPerFilterConfig
763	}
764	return nil
765}
766
767func (x *Route) GetRequestHeadersToAdd() []*core.HeaderValueOption {
768	if x != nil {
769		return x.RequestHeadersToAdd
770	}
771	return nil
772}
773
774func (x *Route) GetRequestHeadersToRemove() []string {
775	if x != nil {
776		return x.RequestHeadersToRemove
777	}
778	return nil
779}
780
781func (x *Route) GetResponseHeadersToAdd() []*core.HeaderValueOption {
782	if x != nil {
783		return x.ResponseHeadersToAdd
784	}
785	return nil
786}
787
788func (x *Route) GetResponseHeadersToRemove() []string {
789	if x != nil {
790		return x.ResponseHeadersToRemove
791	}
792	return nil
793}
794
795func (x *Route) GetTracing() *Tracing {
796	if x != nil {
797		return x.Tracing
798	}
799	return nil
800}
801
802func (x *Route) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value {
803	if x != nil {
804		return x.PerRequestBufferLimitBytes
805	}
806	return nil
807}
808
809type isRoute_Action interface {
810	isRoute_Action()
811}
812
813type Route_Route struct {
814	// Route request to some upstream cluster.
815	Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3,oneof"`
816}
817
818type Route_Redirect struct {
819	// Return a redirect.
820	Redirect *RedirectAction `protobuf:"bytes,3,opt,name=redirect,proto3,oneof"`
821}
822
823type Route_DirectResponse struct {
824	// Return an arbitrary HTTP response directly, without proxying.
825	DirectResponse *DirectResponseAction `protobuf:"bytes,7,opt,name=direct_response,json=directResponse,proto3,oneof"`
826}
827
828type Route_FilterAction struct {
829	// [#not-implemented-hide:]
830	// If true, a filter will define the action (e.g., it could dynamically generate the
831	// RouteAction).
832	FilterAction *FilterAction `protobuf:"bytes,17,opt,name=filter_action,json=filterAction,proto3,oneof"`
833}
834
835func (*Route_Route) isRoute_Action() {}
836
837func (*Route_Redirect) isRoute_Action() {}
838
839func (*Route_DirectResponse) isRoute_Action() {}
840
841func (*Route_FilterAction) isRoute_Action() {}
842
843// Compared to the :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` field that specifies a
844// single upstream cluster as the target of a request, the :ref:`weighted_clusters
845// <envoy_api_field_route.RouteAction.weighted_clusters>` option allows for specification of
846// multiple upstream clusters along with weights that indicate the percentage of
847// traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
848// weights.
849type WeightedCluster struct {
850	state         protoimpl.MessageState
851	sizeCache     protoimpl.SizeCache
852	unknownFields protoimpl.UnknownFields
853
854	// Specifies one or more upstream clusters associated with the route.
855	Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
856	// Specifies the total weight across all clusters. The sum of all cluster weights must equal this
857	// value, which must be greater than 0. Defaults to 100.
858	TotalWeight *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=total_weight,json=totalWeight,proto3" json:"total_weight,omitempty"`
859	// Specifies the runtime key prefix that should be used to construct the
860	// runtime keys associated with each cluster. When the *runtime_key_prefix* is
861	// specified, the router will look for weights associated with each upstream
862	// cluster under the key *runtime_key_prefix* + "." + *cluster[i].name* where
863	// *cluster[i]* denotes an entry in the clusters array field. If the runtime
864	// key for the cluster does not exist, the value specified in the
865	// configuration file will be used as the default weight. See the :ref:`runtime documentation
866	// <operations_runtime>` for how key names map to the underlying implementation.
867	RuntimeKeyPrefix string `protobuf:"bytes,2,opt,name=runtime_key_prefix,json=runtimeKeyPrefix,proto3" json:"runtime_key_prefix,omitempty"`
868}
869
870func (x *WeightedCluster) Reset() {
871	*x = WeightedCluster{}
872	if protoimpl.UnsafeEnabled {
873		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[3]
874		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
875		ms.StoreMessageInfo(mi)
876	}
877}
878
879func (x *WeightedCluster) String() string {
880	return protoimpl.X.MessageStringOf(x)
881}
882
883func (*WeightedCluster) ProtoMessage() {}
884
885func (x *WeightedCluster) ProtoReflect() protoreflect.Message {
886	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[3]
887	if protoimpl.UnsafeEnabled && x != nil {
888		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
889		if ms.LoadMessageInfo() == nil {
890			ms.StoreMessageInfo(mi)
891		}
892		return ms
893	}
894	return mi.MessageOf(x)
895}
896
897// Deprecated: Use WeightedCluster.ProtoReflect.Descriptor instead.
898func (*WeightedCluster) Descriptor() ([]byte, []int) {
899	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{3}
900}
901
902func (x *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight {
903	if x != nil {
904		return x.Clusters
905	}
906	return nil
907}
908
909func (x *WeightedCluster) GetTotalWeight() *wrappers.UInt32Value {
910	if x != nil {
911		return x.TotalWeight
912	}
913	return nil
914}
915
916func (x *WeightedCluster) GetRuntimeKeyPrefix() string {
917	if x != nil {
918		return x.RuntimeKeyPrefix
919	}
920	return ""
921}
922
923// [#next-free-field: 12]
924type RouteMatch struct {
925	state         protoimpl.MessageState
926	sizeCache     protoimpl.SizeCache
927	unknownFields protoimpl.UnknownFields
928
929	// Types that are assignable to PathSpecifier:
930	//	*RouteMatch_Prefix
931	//	*RouteMatch_Path
932	//	*RouteMatch_Regex
933	//	*RouteMatch_SafeRegex
934	PathSpecifier isRouteMatch_PathSpecifier `protobuf_oneof:"path_specifier"`
935	// Indicates that prefix/path matching should be case sensitive. The default
936	// is true.
937	CaseSensitive *wrappers.BoolValue `protobuf:"bytes,4,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"`
938	// Indicates that the route should additionally match on a runtime key. Every time the route
939	// is considered for a match, it must also fall under the percentage of matches indicated by
940	// this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
941	// number is <= the value of the numerator N, or if the key is not present, the default
942	// value, the router continues to evaluate the remaining match criteria. A runtime_fraction
943	// route configuration can be used to roll out route changes in a gradual manner without full
944	// code/config deploys. Refer to the :ref:`traffic shifting
945	// <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
946	//
947	// .. note::
948	//
949	//    Parsing this field is implemented such that the runtime key's data may be represented
950	//    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
951	//    integer with the assumption that the value is an integral percentage out of 100. For
952	//    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
953	//    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
954	RuntimeFraction *core.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
955	// Specifies a set of headers that the route should match on. The router will
956	// check the request’s headers against all the specified headers in the route
957	// config. A match will happen if all the headers in the route are present in
958	// the request with the same values (or based on presence if the value field
959	// is not in the config).
960	Headers []*HeaderMatcher `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty"`
961	// Specifies a set of URL query parameters on which the route should
962	// match. The router will check the query string from the *path* header
963	// against all the specified query parameters. If the number of specified
964	// query parameters is nonzero, they all must match the *path* header's
965	// query string for a match to occur.
966	QueryParameters []*QueryParameterMatcher `protobuf:"bytes,7,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"`
967	// If specified, only gRPC requests will be matched. The router will check
968	// that the content-type header has a application/grpc or one of the various
969	// application/grpc+ values.
970	Grpc *RouteMatch_GrpcRouteMatchOptions `protobuf:"bytes,8,opt,name=grpc,proto3" json:"grpc,omitempty"`
971	// If specified, the client tls context will be matched against the defined
972	// match options.
973	//
974	// [#next-major-version: unify with RBAC]
975	TlsContext *RouteMatch_TlsContextMatchOptions `protobuf:"bytes,11,opt,name=tls_context,json=tlsContext,proto3" json:"tls_context,omitempty"`
976}
977
978func (x *RouteMatch) Reset() {
979	*x = RouteMatch{}
980	if protoimpl.UnsafeEnabled {
981		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[4]
982		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
983		ms.StoreMessageInfo(mi)
984	}
985}
986
987func (x *RouteMatch) String() string {
988	return protoimpl.X.MessageStringOf(x)
989}
990
991func (*RouteMatch) ProtoMessage() {}
992
993func (x *RouteMatch) ProtoReflect() protoreflect.Message {
994	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[4]
995	if protoimpl.UnsafeEnabled && x != nil {
996		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
997		if ms.LoadMessageInfo() == nil {
998			ms.StoreMessageInfo(mi)
999		}
1000		return ms
1001	}
1002	return mi.MessageOf(x)
1003}
1004
1005// Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead.
1006func (*RouteMatch) Descriptor() ([]byte, []int) {
1007	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{4}
1008}
1009
1010func (m *RouteMatch) GetPathSpecifier() isRouteMatch_PathSpecifier {
1011	if m != nil {
1012		return m.PathSpecifier
1013	}
1014	return nil
1015}
1016
1017func (x *RouteMatch) GetPrefix() string {
1018	if x, ok := x.GetPathSpecifier().(*RouteMatch_Prefix); ok {
1019		return x.Prefix
1020	}
1021	return ""
1022}
1023
1024func (x *RouteMatch) GetPath() string {
1025	if x, ok := x.GetPathSpecifier().(*RouteMatch_Path); ok {
1026		return x.Path
1027	}
1028	return ""
1029}
1030
1031// Deprecated: Do not use.
1032func (x *RouteMatch) GetRegex() string {
1033	if x, ok := x.GetPathSpecifier().(*RouteMatch_Regex); ok {
1034		return x.Regex
1035	}
1036	return ""
1037}
1038
1039func (x *RouteMatch) GetSafeRegex() *matcher.RegexMatcher {
1040	if x, ok := x.GetPathSpecifier().(*RouteMatch_SafeRegex); ok {
1041		return x.SafeRegex
1042	}
1043	return nil
1044}
1045
1046func (x *RouteMatch) GetCaseSensitive() *wrappers.BoolValue {
1047	if x != nil {
1048		return x.CaseSensitive
1049	}
1050	return nil
1051}
1052
1053func (x *RouteMatch) GetRuntimeFraction() *core.RuntimeFractionalPercent {
1054	if x != nil {
1055		return x.RuntimeFraction
1056	}
1057	return nil
1058}
1059
1060func (x *RouteMatch) GetHeaders() []*HeaderMatcher {
1061	if x != nil {
1062		return x.Headers
1063	}
1064	return nil
1065}
1066
1067func (x *RouteMatch) GetQueryParameters() []*QueryParameterMatcher {
1068	if x != nil {
1069		return x.QueryParameters
1070	}
1071	return nil
1072}
1073
1074func (x *RouteMatch) GetGrpc() *RouteMatch_GrpcRouteMatchOptions {
1075	if x != nil {
1076		return x.Grpc
1077	}
1078	return nil
1079}
1080
1081func (x *RouteMatch) GetTlsContext() *RouteMatch_TlsContextMatchOptions {
1082	if x != nil {
1083		return x.TlsContext
1084	}
1085	return nil
1086}
1087
1088type isRouteMatch_PathSpecifier interface {
1089	isRouteMatch_PathSpecifier()
1090}
1091
1092type RouteMatch_Prefix struct {
1093	// If specified, the route is a prefix rule meaning that the prefix must
1094	// match the beginning of the *:path* header.
1095	Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof"`
1096}
1097
1098type RouteMatch_Path struct {
1099	// If specified, the route is an exact path rule meaning that the path must
1100	// exactly match the *:path* header once the query string is removed.
1101	Path string `protobuf:"bytes,2,opt,name=path,proto3,oneof"`
1102}
1103
1104type RouteMatch_Regex struct {
1105	// If specified, the route is a regular expression rule meaning that the
1106	// regex must match the *:path* header once the query string is removed. The entire path
1107	// (without the query string) must match the regex. The rule will not match if only a
1108	// subsequence of the *:path* header matches the regex. The regex grammar is defined `here
1109	// <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
1110	//
1111	// Examples:
1112	//
1113	// * The regex ``/b[io]t`` matches the path */bit*
1114	// * The regex ``/b[io]t`` matches the path */bot*
1115	// * The regex ``/b[io]t`` does not match the path */bite*
1116	// * The regex ``/b[io]t`` does not match the path */bit/bot*
1117	//
1118	// .. attention::
1119	//   This field has been deprecated in favor of `safe_regex` as it is not safe for use with
1120	//   untrusted input in all cases.
1121	//
1122	// Deprecated: Do not use.
1123	Regex string `protobuf:"bytes,3,opt,name=regex,proto3,oneof"`
1124}
1125
1126type RouteMatch_SafeRegex struct {
1127	// If specified, the route is a regular expression rule meaning that the
1128	// regex must match the *:path* header once the query string is removed. The entire path
1129	// (without the query string) must match the regex. The rule will not match if only a
1130	// subsequence of the *:path* header matches the regex.
1131	//
1132	// [#next-major-version: In the v3 API we should redo how path specification works such
1133	// that we utilize StringMatcher, and additionally have consistent options around whether we
1134	// strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
1135	// to deprecate the existing options. We should even consider whether we want to do away with
1136	// path_specifier entirely and just rely on a set of header matchers which can already match
1137	// on :path, etc. The issue with that is it is unclear how to generically deal with query string
1138	// stripping. This needs more thought.]
1139	SafeRegex *matcher.RegexMatcher `protobuf:"bytes,10,opt,name=safe_regex,json=safeRegex,proto3,oneof"`
1140}
1141
1142func (*RouteMatch_Prefix) isRouteMatch_PathSpecifier() {}
1143
1144func (*RouteMatch_Path) isRouteMatch_PathSpecifier() {}
1145
1146func (*RouteMatch_Regex) isRouteMatch_PathSpecifier() {}
1147
1148func (*RouteMatch_SafeRegex) isRouteMatch_PathSpecifier() {}
1149
1150// [#next-free-field: 12]
1151type CorsPolicy struct {
1152	state         protoimpl.MessageState
1153	sizeCache     protoimpl.SizeCache
1154	unknownFields protoimpl.UnknownFields
1155
1156	// Specifies the origins that will be allowed to do CORS requests.
1157	//
1158	// An origin is allowed if either allow_origin or allow_origin_regex match.
1159	//
1160	// .. attention::
1161	//  This field has been deprecated in favor of `allow_origin_string_match`.
1162	//
1163	// Deprecated: Do not use.
1164	AllowOrigin []string `protobuf:"bytes,1,rep,name=allow_origin,json=allowOrigin,proto3" json:"allow_origin,omitempty"`
1165	// Specifies regex patterns that match allowed origins.
1166	//
1167	// An origin is allowed if either allow_origin or allow_origin_regex match.
1168	//
1169	// .. attention::
1170	//   This field has been deprecated in favor of `allow_origin_string_match` as it is not safe for
1171	//   use with untrusted input in all cases.
1172	//
1173	// Deprecated: Do not use.
1174	AllowOriginRegex []string `protobuf:"bytes,8,rep,name=allow_origin_regex,json=allowOriginRegex,proto3" json:"allow_origin_regex,omitempty"`
1175	// Specifies string patterns that match allowed origins. An origin is allowed if any of the
1176	// string matchers match.
1177	AllowOriginStringMatch []*matcher.StringMatcher `protobuf:"bytes,11,rep,name=allow_origin_string_match,json=allowOriginStringMatch,proto3" json:"allow_origin_string_match,omitempty"`
1178	// Specifies the content for the *access-control-allow-methods* header.
1179	AllowMethods string `protobuf:"bytes,2,opt,name=allow_methods,json=allowMethods,proto3" json:"allow_methods,omitempty"`
1180	// Specifies the content for the *access-control-allow-headers* header.
1181	AllowHeaders string `protobuf:"bytes,3,opt,name=allow_headers,json=allowHeaders,proto3" json:"allow_headers,omitempty"`
1182	// Specifies the content for the *access-control-expose-headers* header.
1183	ExposeHeaders string `protobuf:"bytes,4,opt,name=expose_headers,json=exposeHeaders,proto3" json:"expose_headers,omitempty"`
1184	// Specifies the content for the *access-control-max-age* header.
1185	MaxAge string `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
1186	// Specifies whether the resource allows credentials.
1187	AllowCredentials *wrappers.BoolValue `protobuf:"bytes,6,opt,name=allow_credentials,json=allowCredentials,proto3" json:"allow_credentials,omitempty"`
1188	// Types that are assignable to EnabledSpecifier:
1189	//	*CorsPolicy_Enabled
1190	//	*CorsPolicy_FilterEnabled
1191	EnabledSpecifier isCorsPolicy_EnabledSpecifier `protobuf_oneof:"enabled_specifier"`
1192	// Specifies the % of requests for which the CORS policies will be evaluated and tracked, but not
1193	// enforced.
1194	//
1195	// This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
1196	// fields have to explicitly disable the filter in order for this setting to take effect.
1197	//
1198	// If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is specified,
1199	// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
1200	// and track the request's *Origin* to determine if it's valid but will not enforce any policies.
1201	ShadowEnabled *core.RuntimeFractionalPercent `protobuf:"bytes,10,opt,name=shadow_enabled,json=shadowEnabled,proto3" json:"shadow_enabled,omitempty"`
1202}
1203
1204func (x *CorsPolicy) Reset() {
1205	*x = CorsPolicy{}
1206	if protoimpl.UnsafeEnabled {
1207		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[5]
1208		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1209		ms.StoreMessageInfo(mi)
1210	}
1211}
1212
1213func (x *CorsPolicy) String() string {
1214	return protoimpl.X.MessageStringOf(x)
1215}
1216
1217func (*CorsPolicy) ProtoMessage() {}
1218
1219func (x *CorsPolicy) ProtoReflect() protoreflect.Message {
1220	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[5]
1221	if protoimpl.UnsafeEnabled && x != nil {
1222		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1223		if ms.LoadMessageInfo() == nil {
1224			ms.StoreMessageInfo(mi)
1225		}
1226		return ms
1227	}
1228	return mi.MessageOf(x)
1229}
1230
1231// Deprecated: Use CorsPolicy.ProtoReflect.Descriptor instead.
1232func (*CorsPolicy) Descriptor() ([]byte, []int) {
1233	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{5}
1234}
1235
1236// Deprecated: Do not use.
1237func (x *CorsPolicy) GetAllowOrigin() []string {
1238	if x != nil {
1239		return x.AllowOrigin
1240	}
1241	return nil
1242}
1243
1244// Deprecated: Do not use.
1245func (x *CorsPolicy) GetAllowOriginRegex() []string {
1246	if x != nil {
1247		return x.AllowOriginRegex
1248	}
1249	return nil
1250}
1251
1252func (x *CorsPolicy) GetAllowOriginStringMatch() []*matcher.StringMatcher {
1253	if x != nil {
1254		return x.AllowOriginStringMatch
1255	}
1256	return nil
1257}
1258
1259func (x *CorsPolicy) GetAllowMethods() string {
1260	if x != nil {
1261		return x.AllowMethods
1262	}
1263	return ""
1264}
1265
1266func (x *CorsPolicy) GetAllowHeaders() string {
1267	if x != nil {
1268		return x.AllowHeaders
1269	}
1270	return ""
1271}
1272
1273func (x *CorsPolicy) GetExposeHeaders() string {
1274	if x != nil {
1275		return x.ExposeHeaders
1276	}
1277	return ""
1278}
1279
1280func (x *CorsPolicy) GetMaxAge() string {
1281	if x != nil {
1282		return x.MaxAge
1283	}
1284	return ""
1285}
1286
1287func (x *CorsPolicy) GetAllowCredentials() *wrappers.BoolValue {
1288	if x != nil {
1289		return x.AllowCredentials
1290	}
1291	return nil
1292}
1293
1294func (m *CorsPolicy) GetEnabledSpecifier() isCorsPolicy_EnabledSpecifier {
1295	if m != nil {
1296		return m.EnabledSpecifier
1297	}
1298	return nil
1299}
1300
1301// Deprecated: Do not use.
1302func (x *CorsPolicy) GetEnabled() *wrappers.BoolValue {
1303	if x, ok := x.GetEnabledSpecifier().(*CorsPolicy_Enabled); ok {
1304		return x.Enabled
1305	}
1306	return nil
1307}
1308
1309func (x *CorsPolicy) GetFilterEnabled() *core.RuntimeFractionalPercent {
1310	if x, ok := x.GetEnabledSpecifier().(*CorsPolicy_FilterEnabled); ok {
1311		return x.FilterEnabled
1312	}
1313	return nil
1314}
1315
1316func (x *CorsPolicy) GetShadowEnabled() *core.RuntimeFractionalPercent {
1317	if x != nil {
1318		return x.ShadowEnabled
1319	}
1320	return nil
1321}
1322
1323type isCorsPolicy_EnabledSpecifier interface {
1324	isCorsPolicy_EnabledSpecifier()
1325}
1326
1327type CorsPolicy_Enabled struct {
1328	// Specifies if the CORS filter is enabled. Defaults to true. Only effective on route.
1329	//
1330	// .. attention::
1331	//
1332	//   **This field is deprecated**. Set the
1333	//   :ref:`filter_enabled<envoy_api_field_route.CorsPolicy.filter_enabled>` field instead.
1334	//
1335	// Deprecated: Do not use.
1336	Enabled *wrappers.BoolValue `protobuf:"bytes,7,opt,name=enabled,proto3,oneof"`
1337}
1338
1339type CorsPolicy_FilterEnabled struct {
1340	// Specifies the % of requests for which the CORS filter is enabled.
1341	//
1342	// If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
1343	// filter will be enabled for 100% of the requests.
1344	//
1345	// If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is
1346	// specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
1347	FilterEnabled *core.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=filter_enabled,json=filterEnabled,proto3,oneof"`
1348}
1349
1350func (*CorsPolicy_Enabled) isCorsPolicy_EnabledSpecifier() {}
1351
1352func (*CorsPolicy_FilterEnabled) isCorsPolicy_EnabledSpecifier() {}
1353
1354// [#next-free-field: 34]
1355type RouteAction struct {
1356	state         protoimpl.MessageState
1357	sizeCache     protoimpl.SizeCache
1358	unknownFields protoimpl.UnknownFields
1359
1360	// Types that are assignable to ClusterSpecifier:
1361	//	*RouteAction_Cluster
1362	//	*RouteAction_ClusterHeader
1363	//	*RouteAction_WeightedClusters
1364	ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
1365	// The HTTP status code to use when configured cluster is not found.
1366	// The default response code is 503 Service Unavailable.
1367	ClusterNotFoundResponseCode RouteAction_ClusterNotFoundResponseCode `protobuf:"varint,20,opt,name=cluster_not_found_response_code,json=clusterNotFoundResponseCode,proto3,enum=envoy.api.v2.route.RouteAction_ClusterNotFoundResponseCode" json:"cluster_not_found_response_code,omitempty"`
1368	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
1369	// in the upstream cluster with metadata matching what's set in this field will be considered
1370	// for load balancing. If using :ref:`weighted_clusters
1371	// <envoy_api_field_route.RouteAction.weighted_clusters>`, metadata will be merged, with values
1372	// provided there taking precedence. The filter name should be specified as *envoy.lb*.
1373	MetadataMatch *core.Metadata `protobuf:"bytes,4,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
1374	// Indicates that during forwarding, the matched prefix (or path) should be
1375	// swapped with this value. This option allows application URLs to be rooted
1376	// at a different path from those exposed at the reverse proxy layer. The router filter will
1377	// place the original path before rewrite into the :ref:`x-envoy-original-path
1378	// <config_http_filters_router_x-envoy-original-path>` header.
1379	//
1380	// Only one of *prefix_rewrite* or
1381	// :ref:`regex_rewrite <envoy_api_field_route.RouteAction.regex_rewrite>`
1382	// may be specified.
1383	//
1384	// .. attention::
1385	//
1386	//   Pay careful attention to the use of trailing slashes in the
1387	//   :ref:`route's match <envoy_api_field_route.Route.match>` prefix value.
1388	//   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
1389	//   rewriting */prefix* to */* and */prefix/etc* to */etc* cannot be done in a single
1390	//   :ref:`Route <envoy_api_msg_route.Route>`, as shown by the below config entries:
1391	//
1392	//   .. code-block:: yaml
1393	//
1394	//     - match:
1395	//         prefix: "/prefix/"
1396	//       route:
1397	//         prefix_rewrite: "/"
1398	//     - match:
1399	//         prefix: "/prefix"
1400	//       route:
1401	//         prefix_rewrite: "/"
1402	//
1403	//   Having above entries in the config, requests to */prefix* will be stripped to */*, while
1404	//   requests to */prefix/etc* will be stripped to */etc*.
1405	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"`
1406	// Indicates that during forwarding, portions of the path that match the
1407	// pattern should be rewritten, even allowing the substitution of capture
1408	// groups from the pattern into the new path as specified by the rewrite
1409	// substitution string. This is useful to allow application paths to be
1410	// rewritten in a way that is aware of segments with variable content like
1411	// identifiers. The router filter will place the original path as it was
1412	// before the rewrite into the :ref:`x-envoy-original-path
1413	// <config_http_filters_router_x-envoy-original-path>` header.
1414	//
1415	// Only one of :ref:`prefix_rewrite <envoy_api_field_route.RouteAction.prefix_rewrite>`
1416	// or *regex_rewrite* may be specified.
1417	//
1418	// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
1419	//
1420	// * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
1421	//   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
1422	//   into ``/v1/api/instance/foo``.
1423	//
1424	// * The pattern ``one`` paired with a substitution string of ``two`` would
1425	//   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
1426	//
1427	// * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
1428	//   ``\1two\2`` would replace only the first occurrence of ``one``,
1429	//   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
1430	//
1431	// * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
1432	//   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
1433	//   ``/aaa/yyy/bbb``.
1434	RegexRewrite *matcher.RegexMatchAndSubstitute `protobuf:"bytes,32,opt,name=regex_rewrite,json=regexRewrite,proto3" json:"regex_rewrite,omitempty"`
1435	// Types that are assignable to HostRewriteSpecifier:
1436	//	*RouteAction_HostRewrite
1437	//	*RouteAction_AutoHostRewrite
1438	//	*RouteAction_AutoHostRewriteHeader
1439	HostRewriteSpecifier isRouteAction_HostRewriteSpecifier `protobuf_oneof:"host_rewrite_specifier"`
1440	// Specifies the upstream timeout for the route. If not specified, the default is 15s. This
1441	// spans between the point at which the entire downstream request (i.e. end-of-stream) has been
1442	// processed and when the upstream response has been completely processed. A value of 0 will
1443	// disable the route's timeout.
1444	//
1445	// .. note::
1446	//
1447	//   This timeout includes all retries. See also
1448	//   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
1449	//   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
1450	//   :ref:`retry overview <arch_overview_http_routing_retry>`.
1451	Timeout *duration.Duration `protobuf:"bytes,8,opt,name=timeout,proto3" json:"timeout,omitempty"`
1452	// Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
1453	// although the connection manager wide :ref:`stream_idle_timeout
1454	// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.stream_idle_timeout>`
1455	// will still apply. A value of 0 will completely disable the route's idle timeout, even if a
1456	// connection manager stream idle timeout is configured.
1457	//
1458	// The idle timeout is distinct to :ref:`timeout
1459	// <envoy_api_field_route.RouteAction.timeout>`, which provides an upper bound
1460	// on the upstream response time; :ref:`idle_timeout
1461	// <envoy_api_field_route.RouteAction.idle_timeout>` instead bounds the amount
1462	// of time the request's stream may be idle.
1463	//
1464	// After header decoding, the idle timeout will apply on downstream and
1465	// upstream request events. Each time an encode/decode event for headers or
1466	// data is processed for the stream, the timer will be reset. If the timeout
1467	// fires, the stream is terminated with a 408 Request Timeout error code if no
1468	// upstream response header has been received, otherwise a stream reset
1469	// occurs.
1470	IdleTimeout *duration.Duration `protobuf:"bytes,24,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
1471	// Indicates that the route has a retry policy. Note that if this is set,
1472	// it'll take precedence over the virtual host level retry policy entirely
1473	// (e.g.: policies are not merged, most internal one becomes the enforced policy).
1474	RetryPolicy *RetryPolicy `protobuf:"bytes,9,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"`
1475	// [#not-implemented-hide:]
1476	// Specifies the configuration for retry policy extension. Note that if this is set, it'll take
1477	// precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
1478	// most internal one becomes the enforced policy). :ref:`Retry policy <envoy_api_field_route.VirtualHost.retry_policy>`
1479	// should not be set if this field is used.
1480	RetryPolicyTypedConfig *any.Any `protobuf:"bytes,33,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"`
1481	// Indicates that the route has a request mirroring policy.
1482	//
1483	// .. attention::
1484	//   This field has been deprecated in favor of `request_mirror_policies` which supports one or
1485	//   more mirroring policies.
1486	//
1487	// Deprecated: Do not use.
1488	RequestMirrorPolicy *RouteAction_RequestMirrorPolicy `protobuf:"bytes,10,opt,name=request_mirror_policy,json=requestMirrorPolicy,proto3" json:"request_mirror_policy,omitempty"`
1489	// Indicates that the route has request mirroring policies.
1490	RequestMirrorPolicies []*RouteAction_RequestMirrorPolicy `protobuf:"bytes,30,rep,name=request_mirror_policies,json=requestMirrorPolicies,proto3" json:"request_mirror_policies,omitempty"`
1491	// Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
1492	Priority core.RoutingPriority `protobuf:"varint,11,opt,name=priority,proto3,enum=envoy.api.v2.core.RoutingPriority" json:"priority,omitempty"`
1493	// Specifies a set of rate limit configurations that could be applied to the
1494	// route.
1495	RateLimits []*RateLimit `protobuf:"bytes,13,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
1496	// Specifies if the rate limit filter should include the virtual host rate
1497	// limits. By default, if the route configured rate limits, the virtual host
1498	// :ref:`rate_limits <envoy_api_field_route.VirtualHost.rate_limits>` are not applied to the
1499	// request.
1500	IncludeVhRateLimits *wrappers.BoolValue `protobuf:"bytes,14,opt,name=include_vh_rate_limits,json=includeVhRateLimits,proto3" json:"include_vh_rate_limits,omitempty"`
1501	// Specifies a list of hash policies to use for ring hash load balancing. Each
1502	// hash policy is evaluated individually and the combined result is used to
1503	// route the request. The method of combination is deterministic such that
1504	// identical lists of hash policies will produce the same hash. Since a hash
1505	// policy examines specific parts of a request, it can fail to produce a hash
1506	// (i.e. if the hashed header is not present). If (and only if) all configured
1507	// hash policies fail to generate a hash, no hash will be produced for
1508	// the route. In this case, the behavior is the same as if no hash policies
1509	// were specified (i.e. the ring hash load balancer will choose a random
1510	// backend). If a hash policy has the "terminal" attribute set to true, and
1511	// there is already a hash generated, the hash is returned immediately,
1512	// ignoring the rest of the hash policy list.
1513	HashPolicy []*RouteAction_HashPolicy `protobuf:"bytes,15,rep,name=hash_policy,json=hashPolicy,proto3" json:"hash_policy,omitempty"`
1514	// Indicates that the route has a CORS policy.
1515	Cors *CorsPolicy `protobuf:"bytes,17,opt,name=cors,proto3" json:"cors,omitempty"`
1516	// If present, and the request is a gRPC request, use the
1517	// `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
1518	// or its default value (infinity) instead of
1519	// :ref:`timeout <envoy_api_field_route.RouteAction.timeout>`, but limit the applied timeout
1520	// to the maximum value specified here. If configured as 0, the maximum allowed timeout for
1521	// gRPC requests is infinity. If not configured at all, the `grpc-timeout` header is not used
1522	// and gRPC requests time out like any other requests using
1523	// :ref:`timeout <envoy_api_field_route.RouteAction.timeout>` or its default.
1524	// This can be used to prevent unexpected upstream request timeouts due to potentially long
1525	// time gaps between gRPC request and response in gRPC streaming mode.
1526	//
1527	// .. note::
1528	//
1529	//    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
1530	//    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
1531	//    both are present. See also
1532	//    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
1533	//    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
1534	//    :ref:`retry overview <arch_overview_http_routing_retry>`.
1535	MaxGrpcTimeout *duration.Duration `protobuf:"bytes,23,opt,name=max_grpc_timeout,json=maxGrpcTimeout,proto3" json:"max_grpc_timeout,omitempty"`
1536	// If present, Envoy will adjust the timeout provided by the `grpc-timeout` header by subtracting
1537	// the provided duration from the header. This is useful in allowing Envoy to set its global
1538	// timeout to be less than that of the deadline imposed by the calling client, which makes it more
1539	// likely that Envoy will handle the timeout instead of having the call canceled by the client.
1540	// The offset will only be applied if the provided grpc_timeout is greater than the offset. This
1541	// ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
1542	// infinity).
1543	GrpcTimeoutOffset      *duration.Duration                 `protobuf:"bytes,28,opt,name=grpc_timeout_offset,json=grpcTimeoutOffset,proto3" json:"grpc_timeout_offset,omitempty"`
1544	UpgradeConfigs         []*RouteAction_UpgradeConfig       `protobuf:"bytes,25,rep,name=upgrade_configs,json=upgradeConfigs,proto3" json:"upgrade_configs,omitempty"`
1545	InternalRedirectAction RouteAction_InternalRedirectAction `protobuf:"varint,26,opt,name=internal_redirect_action,json=internalRedirectAction,proto3,enum=envoy.api.v2.route.RouteAction_InternalRedirectAction" json:"internal_redirect_action,omitempty"`
1546	// An internal redirect is handled, iff the number of previous internal redirects that a
1547	// downstream request has encountered is lower than this value, and
1548	// :ref:`internal_redirect_action <envoy_api_field_route.RouteAction.internal_redirect_action>`
1549	// is set to :ref:`HANDLE_INTERNAL_REDIRECT
1550	// <envoy_api_enum_value_route.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
1551	// In the case where a downstream request is bounced among multiple routes by internal redirect,
1552	// the first route that hits this threshold, or has
1553	// :ref:`internal_redirect_action <envoy_api_field_route.RouteAction.internal_redirect_action>`
1554	// set to
1555	// :ref:`PASS_THROUGH_INTERNAL_REDIRECT
1556	// <envoy_api_enum_value_route.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
1557	// will pass the redirect back to downstream.
1558	//
1559	// If not specified, at most one redirect will be followed.
1560	MaxInternalRedirects *wrappers.UInt32Value `protobuf:"bytes,31,opt,name=max_internal_redirects,json=maxInternalRedirects,proto3" json:"max_internal_redirects,omitempty"`
1561	// Indicates that the route has a hedge policy. Note that if this is set,
1562	// it'll take precedence over the virtual host level hedge policy entirely
1563	// (e.g.: policies are not merged, most internal one becomes the enforced policy).
1564	HedgePolicy *HedgePolicy `protobuf:"bytes,27,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"`
1565}
1566
1567func (x *RouteAction) Reset() {
1568	*x = RouteAction{}
1569	if protoimpl.UnsafeEnabled {
1570		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[6]
1571		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1572		ms.StoreMessageInfo(mi)
1573	}
1574}
1575
1576func (x *RouteAction) String() string {
1577	return protoimpl.X.MessageStringOf(x)
1578}
1579
1580func (*RouteAction) ProtoMessage() {}
1581
1582func (x *RouteAction) ProtoReflect() protoreflect.Message {
1583	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[6]
1584	if protoimpl.UnsafeEnabled && x != nil {
1585		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1586		if ms.LoadMessageInfo() == nil {
1587			ms.StoreMessageInfo(mi)
1588		}
1589		return ms
1590	}
1591	return mi.MessageOf(x)
1592}
1593
1594// Deprecated: Use RouteAction.ProtoReflect.Descriptor instead.
1595func (*RouteAction) Descriptor() ([]byte, []int) {
1596	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6}
1597}
1598
1599func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier {
1600	if m != nil {
1601		return m.ClusterSpecifier
1602	}
1603	return nil
1604}
1605
1606func (x *RouteAction) GetCluster() string {
1607	if x, ok := x.GetClusterSpecifier().(*RouteAction_Cluster); ok {
1608		return x.Cluster
1609	}
1610	return ""
1611}
1612
1613func (x *RouteAction) GetClusterHeader() string {
1614	if x, ok := x.GetClusterSpecifier().(*RouteAction_ClusterHeader); ok {
1615		return x.ClusterHeader
1616	}
1617	return ""
1618}
1619
1620func (x *RouteAction) GetWeightedClusters() *WeightedCluster {
1621	if x, ok := x.GetClusterSpecifier().(*RouteAction_WeightedClusters); ok {
1622		return x.WeightedClusters
1623	}
1624	return nil
1625}
1626
1627func (x *RouteAction) GetClusterNotFoundResponseCode() RouteAction_ClusterNotFoundResponseCode {
1628	if x != nil {
1629		return x.ClusterNotFoundResponseCode
1630	}
1631	return RouteAction_SERVICE_UNAVAILABLE
1632}
1633
1634func (x *RouteAction) GetMetadataMatch() *core.Metadata {
1635	if x != nil {
1636		return x.MetadataMatch
1637	}
1638	return nil
1639}
1640
1641func (x *RouteAction) GetPrefixRewrite() string {
1642	if x != nil {
1643		return x.PrefixRewrite
1644	}
1645	return ""
1646}
1647
1648func (x *RouteAction) GetRegexRewrite() *matcher.RegexMatchAndSubstitute {
1649	if x != nil {
1650		return x.RegexRewrite
1651	}
1652	return nil
1653}
1654
1655func (m *RouteAction) GetHostRewriteSpecifier() isRouteAction_HostRewriteSpecifier {
1656	if m != nil {
1657		return m.HostRewriteSpecifier
1658	}
1659	return nil
1660}
1661
1662func (x *RouteAction) GetHostRewrite() string {
1663	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_HostRewrite); ok {
1664		return x.HostRewrite
1665	}
1666	return ""
1667}
1668
1669func (x *RouteAction) GetAutoHostRewrite() *wrappers.BoolValue {
1670	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_AutoHostRewrite); ok {
1671		return x.AutoHostRewrite
1672	}
1673	return nil
1674}
1675
1676func (x *RouteAction) GetAutoHostRewriteHeader() string {
1677	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_AutoHostRewriteHeader); ok {
1678		return x.AutoHostRewriteHeader
1679	}
1680	return ""
1681}
1682
1683func (x *RouteAction) GetTimeout() *duration.Duration {
1684	if x != nil {
1685		return x.Timeout
1686	}
1687	return nil
1688}
1689
1690func (x *RouteAction) GetIdleTimeout() *duration.Duration {
1691	if x != nil {
1692		return x.IdleTimeout
1693	}
1694	return nil
1695}
1696
1697func (x *RouteAction) GetRetryPolicy() *RetryPolicy {
1698	if x != nil {
1699		return x.RetryPolicy
1700	}
1701	return nil
1702}
1703
1704func (x *RouteAction) GetRetryPolicyTypedConfig() *any.Any {
1705	if x != nil {
1706		return x.RetryPolicyTypedConfig
1707	}
1708	return nil
1709}
1710
1711// Deprecated: Do not use.
1712func (x *RouteAction) GetRequestMirrorPolicy() *RouteAction_RequestMirrorPolicy {
1713	if x != nil {
1714		return x.RequestMirrorPolicy
1715	}
1716	return nil
1717}
1718
1719func (x *RouteAction) GetRequestMirrorPolicies() []*RouteAction_RequestMirrorPolicy {
1720	if x != nil {
1721		return x.RequestMirrorPolicies
1722	}
1723	return nil
1724}
1725
1726func (x *RouteAction) GetPriority() core.RoutingPriority {
1727	if x != nil {
1728		return x.Priority
1729	}
1730	return core.RoutingPriority_DEFAULT
1731}
1732
1733func (x *RouteAction) GetRateLimits() []*RateLimit {
1734	if x != nil {
1735		return x.RateLimits
1736	}
1737	return nil
1738}
1739
1740func (x *RouteAction) GetIncludeVhRateLimits() *wrappers.BoolValue {
1741	if x != nil {
1742		return x.IncludeVhRateLimits
1743	}
1744	return nil
1745}
1746
1747func (x *RouteAction) GetHashPolicy() []*RouteAction_HashPolicy {
1748	if x != nil {
1749		return x.HashPolicy
1750	}
1751	return nil
1752}
1753
1754func (x *RouteAction) GetCors() *CorsPolicy {
1755	if x != nil {
1756		return x.Cors
1757	}
1758	return nil
1759}
1760
1761func (x *RouteAction) GetMaxGrpcTimeout() *duration.Duration {
1762	if x != nil {
1763		return x.MaxGrpcTimeout
1764	}
1765	return nil
1766}
1767
1768func (x *RouteAction) GetGrpcTimeoutOffset() *duration.Duration {
1769	if x != nil {
1770		return x.GrpcTimeoutOffset
1771	}
1772	return nil
1773}
1774
1775func (x *RouteAction) GetUpgradeConfigs() []*RouteAction_UpgradeConfig {
1776	if x != nil {
1777		return x.UpgradeConfigs
1778	}
1779	return nil
1780}
1781
1782func (x *RouteAction) GetInternalRedirectAction() RouteAction_InternalRedirectAction {
1783	if x != nil {
1784		return x.InternalRedirectAction
1785	}
1786	return RouteAction_PASS_THROUGH_INTERNAL_REDIRECT
1787}
1788
1789func (x *RouteAction) GetMaxInternalRedirects() *wrappers.UInt32Value {
1790	if x != nil {
1791		return x.MaxInternalRedirects
1792	}
1793	return nil
1794}
1795
1796func (x *RouteAction) GetHedgePolicy() *HedgePolicy {
1797	if x != nil {
1798		return x.HedgePolicy
1799	}
1800	return nil
1801}
1802
1803type isRouteAction_ClusterSpecifier interface {
1804	isRouteAction_ClusterSpecifier()
1805}
1806
1807type RouteAction_Cluster struct {
1808	// Indicates the upstream cluster to which the request should be routed
1809	// to.
1810	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"`
1811}
1812
1813type RouteAction_ClusterHeader struct {
1814	// Envoy will determine the cluster to route to by reading the value of the
1815	// HTTP header named by cluster_header from the request headers. If the
1816	// header is not found or the referenced cluster does not exist, Envoy will
1817	// return a 404 response.
1818	//
1819	// .. attention::
1820	//
1821	//   Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1
1822	//   *Host* header. Thus, if attempting to match on *Host*, match on *:authority* instead.
1823	//
1824	// .. note::
1825	//
1826	//   If the header appears multiple times only the first value is used.
1827	ClusterHeader string `protobuf:"bytes,2,opt,name=cluster_header,json=clusterHeader,proto3,oneof"`
1828}
1829
1830type RouteAction_WeightedClusters struct {
1831	// Multiple upstream clusters can be specified for a given route. The
1832	// request is routed to one of the upstream clusters based on weights
1833	// assigned to each cluster. See
1834	// :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
1835	// for additional documentation.
1836	WeightedClusters *WeightedCluster `protobuf:"bytes,3,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
1837}
1838
1839func (*RouteAction_Cluster) isRouteAction_ClusterSpecifier() {}
1840
1841func (*RouteAction_ClusterHeader) isRouteAction_ClusterSpecifier() {}
1842
1843func (*RouteAction_WeightedClusters) isRouteAction_ClusterSpecifier() {}
1844
1845type isRouteAction_HostRewriteSpecifier interface {
1846	isRouteAction_HostRewriteSpecifier()
1847}
1848
1849type RouteAction_HostRewrite struct {
1850	// Indicates that during forwarding, the host header will be swapped with
1851	// this value.
1852	HostRewrite string `protobuf:"bytes,6,opt,name=host_rewrite,json=hostRewrite,proto3,oneof"`
1853}
1854
1855type RouteAction_AutoHostRewrite struct {
1856	// Indicates that during forwarding, the host header will be swapped with
1857	// the hostname of the upstream host chosen by the cluster manager. This
1858	// option is applicable only when the destination cluster for a route is of
1859	// type *strict_dns* or *logical_dns*. Setting this to true with other cluster
1860	// types has no effect.
1861	AutoHostRewrite *wrappers.BoolValue `protobuf:"bytes,7,opt,name=auto_host_rewrite,json=autoHostRewrite,proto3,oneof"`
1862}
1863
1864type RouteAction_AutoHostRewriteHeader struct {
1865	// Indicates that during forwarding, the host header will be swapped with the content of given
1866	// downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
1867	// If header value is empty, host header is left intact.
1868	//
1869	// .. attention::
1870	//
1871	//   Pay attention to the potential security implications of using this option. Provided header
1872	//   must come from trusted source.
1873	//
1874	// .. note::
1875	//
1876	//   If the header appears multiple times only the first value is used.
1877	AutoHostRewriteHeader string `protobuf:"bytes,29,opt,name=auto_host_rewrite_header,json=autoHostRewriteHeader,proto3,oneof"`
1878}
1879
1880func (*RouteAction_HostRewrite) isRouteAction_HostRewriteSpecifier() {}
1881
1882func (*RouteAction_AutoHostRewrite) isRouteAction_HostRewriteSpecifier() {}
1883
1884func (*RouteAction_AutoHostRewriteHeader) isRouteAction_HostRewriteSpecifier() {}
1885
1886// HTTP retry :ref:`architecture overview <arch_overview_http_routing_retry>`.
1887// [#next-free-field: 11]
1888type RetryPolicy struct {
1889	state         protoimpl.MessageState
1890	sizeCache     protoimpl.SizeCache
1891	unknownFields protoimpl.UnknownFields
1892
1893	// Specifies the conditions under which retry takes place. These are the same
1894	// conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
1895	// :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
1896	RetryOn string `protobuf:"bytes,1,opt,name=retry_on,json=retryOn,proto3" json:"retry_on,omitempty"`
1897	// Specifies the allowed number of retries. This parameter is optional and
1898	// defaults to 1. These are the same conditions documented for
1899	// :ref:`config_http_filters_router_x-envoy-max-retries`.
1900	NumRetries *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=num_retries,json=numRetries,proto3" json:"num_retries,omitempty"`
1901	// Specifies a non-zero upstream timeout per retry attempt. This parameter is optional. The
1902	// same conditions documented for
1903	// :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
1904	//
1905	// .. note::
1906	//
1907	//   If left unspecified, Envoy will use the global
1908	//   :ref:`route timeout <envoy_api_field_route.RouteAction.timeout>` for the request.
1909	//   Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
1910	//   retry policy, a request that times out will not be retried as the total timeout budget
1911	//   would have been exhausted.
1912	PerTryTimeout *duration.Duration `protobuf:"bytes,3,opt,name=per_try_timeout,json=perTryTimeout,proto3" json:"per_try_timeout,omitempty"`
1913	// Specifies an implementation of a RetryPriority which is used to determine the
1914	// distribution of load across priorities used for retries. Refer to
1915	// :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
1916	RetryPriority *RetryPolicy_RetryPriority `protobuf:"bytes,4,opt,name=retry_priority,json=retryPriority,proto3" json:"retry_priority,omitempty"`
1917	// Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
1918	// for retries. If any of the predicates reject the host, host selection will be reattempted.
1919	// Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
1920	// details.
1921	RetryHostPredicate []*RetryPolicy_RetryHostPredicate `protobuf:"bytes,5,rep,name=retry_host_predicate,json=retryHostPredicate,proto3" json:"retry_host_predicate,omitempty"`
1922	// The maximum number of times host selection will be reattempted before giving up, at which
1923	// point the host that was last selected will be routed to. If unspecified, this will default to
1924	// retrying once.
1925	HostSelectionRetryMaxAttempts int64 `protobuf:"varint,6,opt,name=host_selection_retry_max_attempts,json=hostSelectionRetryMaxAttempts,proto3" json:"host_selection_retry_max_attempts,omitempty"`
1926	// HTTP status codes that should trigger a retry in addition to those specified by retry_on.
1927	RetriableStatusCodes []uint32 `protobuf:"varint,7,rep,packed,name=retriable_status_codes,json=retriableStatusCodes,proto3" json:"retriable_status_codes,omitempty"`
1928	// Specifies parameters that control retry back off. This parameter is optional, in which case the
1929	// default base interval is 25 milliseconds or, if set, the current value of the
1930	// `upstream.base_retry_backoff_ms` runtime parameter. The default maximum interval is 10 times
1931	// the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
1932	// describes Envoy's back-off algorithm.
1933	RetryBackOff *RetryPolicy_RetryBackOff `protobuf:"bytes,8,opt,name=retry_back_off,json=retryBackOff,proto3" json:"retry_back_off,omitempty"`
1934	// HTTP response headers that trigger a retry if present in the response. A retry will be
1935	// triggered if any of the header matches match the upstream response headers.
1936	// The field is only consulted if 'retriable-headers' retry policy is active.
1937	RetriableHeaders []*HeaderMatcher `protobuf:"bytes,9,rep,name=retriable_headers,json=retriableHeaders,proto3" json:"retriable_headers,omitempty"`
1938	// HTTP headers which must be present in the request for retries to be attempted.
1939	RetriableRequestHeaders []*HeaderMatcher `protobuf:"bytes,10,rep,name=retriable_request_headers,json=retriableRequestHeaders,proto3" json:"retriable_request_headers,omitempty"`
1940}
1941
1942func (x *RetryPolicy) Reset() {
1943	*x = RetryPolicy{}
1944	if protoimpl.UnsafeEnabled {
1945		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[7]
1946		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1947		ms.StoreMessageInfo(mi)
1948	}
1949}
1950
1951func (x *RetryPolicy) String() string {
1952	return protoimpl.X.MessageStringOf(x)
1953}
1954
1955func (*RetryPolicy) ProtoMessage() {}
1956
1957func (x *RetryPolicy) ProtoReflect() protoreflect.Message {
1958	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[7]
1959	if protoimpl.UnsafeEnabled && x != nil {
1960		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1961		if ms.LoadMessageInfo() == nil {
1962			ms.StoreMessageInfo(mi)
1963		}
1964		return ms
1965	}
1966	return mi.MessageOf(x)
1967}
1968
1969// Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead.
1970func (*RetryPolicy) Descriptor() ([]byte, []int) {
1971	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{7}
1972}
1973
1974func (x *RetryPolicy) GetRetryOn() string {
1975	if x != nil {
1976		return x.RetryOn
1977	}
1978	return ""
1979}
1980
1981func (x *RetryPolicy) GetNumRetries() *wrappers.UInt32Value {
1982	if x != nil {
1983		return x.NumRetries
1984	}
1985	return nil
1986}
1987
1988func (x *RetryPolicy) GetPerTryTimeout() *duration.Duration {
1989	if x != nil {
1990		return x.PerTryTimeout
1991	}
1992	return nil
1993}
1994
1995func (x *RetryPolicy) GetRetryPriority() *RetryPolicy_RetryPriority {
1996	if x != nil {
1997		return x.RetryPriority
1998	}
1999	return nil
2000}
2001
2002func (x *RetryPolicy) GetRetryHostPredicate() []*RetryPolicy_RetryHostPredicate {
2003	if x != nil {
2004		return x.RetryHostPredicate
2005	}
2006	return nil
2007}
2008
2009func (x *RetryPolicy) GetHostSelectionRetryMaxAttempts() int64 {
2010	if x != nil {
2011		return x.HostSelectionRetryMaxAttempts
2012	}
2013	return 0
2014}
2015
2016func (x *RetryPolicy) GetRetriableStatusCodes() []uint32 {
2017	if x != nil {
2018		return x.RetriableStatusCodes
2019	}
2020	return nil
2021}
2022
2023func (x *RetryPolicy) GetRetryBackOff() *RetryPolicy_RetryBackOff {
2024	if x != nil {
2025		return x.RetryBackOff
2026	}
2027	return nil
2028}
2029
2030func (x *RetryPolicy) GetRetriableHeaders() []*HeaderMatcher {
2031	if x != nil {
2032		return x.RetriableHeaders
2033	}
2034	return nil
2035}
2036
2037func (x *RetryPolicy) GetRetriableRequestHeaders() []*HeaderMatcher {
2038	if x != nil {
2039		return x.RetriableRequestHeaders
2040	}
2041	return nil
2042}
2043
2044// HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
2045type HedgePolicy struct {
2046	state         protoimpl.MessageState
2047	sizeCache     protoimpl.SizeCache
2048	unknownFields protoimpl.UnknownFields
2049
2050	// Specifies the number of initial requests that should be sent upstream.
2051	// Must be at least 1.
2052	// Defaults to 1.
2053	// [#not-implemented-hide:]
2054	InitialRequests *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=initial_requests,json=initialRequests,proto3" json:"initial_requests,omitempty"`
2055	// Specifies a probability that an additional upstream request should be sent
2056	// on top of what is specified by initial_requests.
2057	// Defaults to 0.
2058	// [#not-implemented-hide:]
2059	AdditionalRequestChance *_type.FractionalPercent `protobuf:"bytes,2,opt,name=additional_request_chance,json=additionalRequestChance,proto3" json:"additional_request_chance,omitempty"`
2060	// Indicates that a hedged request should be sent when the per-try timeout is hit.
2061	// This means that a retry will be issued without resetting the original request, leaving multiple upstream requests in flight.
2062	// The first request to complete successfully will be the one returned to the caller.
2063	//
2064	// * At any time, a successful response (i.e. not triggering any of the retry-on conditions) would be returned to the client.
2065	// * Before per-try timeout, an error response (per retry-on conditions) would be retried immediately or returned ot the client
2066	//   if there are no more retries left.
2067	// * After per-try timeout, an error response would be discarded, as a retry in the form of a hedged request is already in progress.
2068	//
2069	// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_api_msg_route.RetryPolicy>` that retries at least
2070	// one error code and specifies a maximum number of retries.
2071	//
2072	// Defaults to false.
2073	HedgeOnPerTryTimeout bool `protobuf:"varint,3,opt,name=hedge_on_per_try_timeout,json=hedgeOnPerTryTimeout,proto3" json:"hedge_on_per_try_timeout,omitempty"`
2074}
2075
2076func (x *HedgePolicy) Reset() {
2077	*x = HedgePolicy{}
2078	if protoimpl.UnsafeEnabled {
2079		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[8]
2080		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2081		ms.StoreMessageInfo(mi)
2082	}
2083}
2084
2085func (x *HedgePolicy) String() string {
2086	return protoimpl.X.MessageStringOf(x)
2087}
2088
2089func (*HedgePolicy) ProtoMessage() {}
2090
2091func (x *HedgePolicy) ProtoReflect() protoreflect.Message {
2092	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[8]
2093	if protoimpl.UnsafeEnabled && x != nil {
2094		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2095		if ms.LoadMessageInfo() == nil {
2096			ms.StoreMessageInfo(mi)
2097		}
2098		return ms
2099	}
2100	return mi.MessageOf(x)
2101}
2102
2103// Deprecated: Use HedgePolicy.ProtoReflect.Descriptor instead.
2104func (*HedgePolicy) Descriptor() ([]byte, []int) {
2105	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{8}
2106}
2107
2108func (x *HedgePolicy) GetInitialRequests() *wrappers.UInt32Value {
2109	if x != nil {
2110		return x.InitialRequests
2111	}
2112	return nil
2113}
2114
2115func (x *HedgePolicy) GetAdditionalRequestChance() *_type.FractionalPercent {
2116	if x != nil {
2117		return x.AdditionalRequestChance
2118	}
2119	return nil
2120}
2121
2122func (x *HedgePolicy) GetHedgeOnPerTryTimeout() bool {
2123	if x != nil {
2124		return x.HedgeOnPerTryTimeout
2125	}
2126	return false
2127}
2128
2129// [#next-free-field: 9]
2130type RedirectAction struct {
2131	state         protoimpl.MessageState
2132	sizeCache     protoimpl.SizeCache
2133	unknownFields protoimpl.UnknownFields
2134
2135	// When the scheme redirection take place, the following rules apply:
2136	//  1. If the source URI scheme is `http` and the port is explicitly
2137	//     set to `:80`, the port will be removed after the redirection
2138	//  2. If the source URI scheme is `https` and the port is explicitly
2139	//     set to `:443`, the port will be removed after the redirection
2140	//
2141	// Types that are assignable to SchemeRewriteSpecifier:
2142	//	*RedirectAction_HttpsRedirect
2143	//	*RedirectAction_SchemeRedirect
2144	SchemeRewriteSpecifier isRedirectAction_SchemeRewriteSpecifier `protobuf_oneof:"scheme_rewrite_specifier"`
2145	// The host portion of the URL will be swapped with this value.
2146	HostRedirect string `protobuf:"bytes,1,opt,name=host_redirect,json=hostRedirect,proto3" json:"host_redirect,omitempty"`
2147	// The port value of the URL will be swapped with this value.
2148	PortRedirect uint32 `protobuf:"varint,8,opt,name=port_redirect,json=portRedirect,proto3" json:"port_redirect,omitempty"`
2149	// Types that are assignable to PathRewriteSpecifier:
2150	//	*RedirectAction_PathRedirect
2151	//	*RedirectAction_PrefixRewrite
2152	PathRewriteSpecifier isRedirectAction_PathRewriteSpecifier `protobuf_oneof:"path_rewrite_specifier"`
2153	// The HTTP status code to use in the redirect response. The default response
2154	// code is MOVED_PERMANENTLY (301).
2155	ResponseCode RedirectAction_RedirectResponseCode `protobuf:"varint,3,opt,name=response_code,json=responseCode,proto3,enum=envoy.api.v2.route.RedirectAction_RedirectResponseCode" json:"response_code,omitempty"`
2156	// Indicates that during redirection, the query portion of the URL will
2157	// be removed. Default value is false.
2158	StripQuery bool `protobuf:"varint,6,opt,name=strip_query,json=stripQuery,proto3" json:"strip_query,omitempty"`
2159}
2160
2161func (x *RedirectAction) Reset() {
2162	*x = RedirectAction{}
2163	if protoimpl.UnsafeEnabled {
2164		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[9]
2165		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2166		ms.StoreMessageInfo(mi)
2167	}
2168}
2169
2170func (x *RedirectAction) String() string {
2171	return protoimpl.X.MessageStringOf(x)
2172}
2173
2174func (*RedirectAction) ProtoMessage() {}
2175
2176func (x *RedirectAction) ProtoReflect() protoreflect.Message {
2177	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[9]
2178	if protoimpl.UnsafeEnabled && x != nil {
2179		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2180		if ms.LoadMessageInfo() == nil {
2181			ms.StoreMessageInfo(mi)
2182		}
2183		return ms
2184	}
2185	return mi.MessageOf(x)
2186}
2187
2188// Deprecated: Use RedirectAction.ProtoReflect.Descriptor instead.
2189func (*RedirectAction) Descriptor() ([]byte, []int) {
2190	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{9}
2191}
2192
2193func (m *RedirectAction) GetSchemeRewriteSpecifier() isRedirectAction_SchemeRewriteSpecifier {
2194	if m != nil {
2195		return m.SchemeRewriteSpecifier
2196	}
2197	return nil
2198}
2199
2200func (x *RedirectAction) GetHttpsRedirect() bool {
2201	if x, ok := x.GetSchemeRewriteSpecifier().(*RedirectAction_HttpsRedirect); ok {
2202		return x.HttpsRedirect
2203	}
2204	return false
2205}
2206
2207func (x *RedirectAction) GetSchemeRedirect() string {
2208	if x, ok := x.GetSchemeRewriteSpecifier().(*RedirectAction_SchemeRedirect); ok {
2209		return x.SchemeRedirect
2210	}
2211	return ""
2212}
2213
2214func (x *RedirectAction) GetHostRedirect() string {
2215	if x != nil {
2216		return x.HostRedirect
2217	}
2218	return ""
2219}
2220
2221func (x *RedirectAction) GetPortRedirect() uint32 {
2222	if x != nil {
2223		return x.PortRedirect
2224	}
2225	return 0
2226}
2227
2228func (m *RedirectAction) GetPathRewriteSpecifier() isRedirectAction_PathRewriteSpecifier {
2229	if m != nil {
2230		return m.PathRewriteSpecifier
2231	}
2232	return nil
2233}
2234
2235func (x *RedirectAction) GetPathRedirect() string {
2236	if x, ok := x.GetPathRewriteSpecifier().(*RedirectAction_PathRedirect); ok {
2237		return x.PathRedirect
2238	}
2239	return ""
2240}
2241
2242func (x *RedirectAction) GetPrefixRewrite() string {
2243	if x, ok := x.GetPathRewriteSpecifier().(*RedirectAction_PrefixRewrite); ok {
2244		return x.PrefixRewrite
2245	}
2246	return ""
2247}
2248
2249func (x *RedirectAction) GetResponseCode() RedirectAction_RedirectResponseCode {
2250	if x != nil {
2251		return x.ResponseCode
2252	}
2253	return RedirectAction_MOVED_PERMANENTLY
2254}
2255
2256func (x *RedirectAction) GetStripQuery() bool {
2257	if x != nil {
2258		return x.StripQuery
2259	}
2260	return false
2261}
2262
2263type isRedirectAction_SchemeRewriteSpecifier interface {
2264	isRedirectAction_SchemeRewriteSpecifier()
2265}
2266
2267type RedirectAction_HttpsRedirect struct {
2268	// The scheme portion of the URL will be swapped with "https".
2269	HttpsRedirect bool `protobuf:"varint,4,opt,name=https_redirect,json=httpsRedirect,proto3,oneof"`
2270}
2271
2272type RedirectAction_SchemeRedirect struct {
2273	// The scheme portion of the URL will be swapped with this value.
2274	SchemeRedirect string `protobuf:"bytes,7,opt,name=scheme_redirect,json=schemeRedirect,proto3,oneof"`
2275}
2276
2277func (*RedirectAction_HttpsRedirect) isRedirectAction_SchemeRewriteSpecifier() {}
2278
2279func (*RedirectAction_SchemeRedirect) isRedirectAction_SchemeRewriteSpecifier() {}
2280
2281type isRedirectAction_PathRewriteSpecifier interface {
2282	isRedirectAction_PathRewriteSpecifier()
2283}
2284
2285type RedirectAction_PathRedirect struct {
2286	// The path portion of the URL will be swapped with this value.
2287	// Please note that query string in path_redirect will override the
2288	// request's query string and will not be stripped.
2289	//
2290	// For example, let's say we have the following routes:
2291	//
2292	// - match: { path: "/old-path-1" }
2293	//   redirect: { path_redirect: "/new-path-1" }
2294	// - match: { path: "/old-path-2" }
2295	//   redirect: { path_redirect: "/new-path-2", strip-query: "true" }
2296	// - match: { path: "/old-path-3" }
2297	//   redirect: { path_redirect: "/new-path-3?foo=1", strip_query: "true" }
2298	//
2299	// 1. if request uri is "/old-path-1?bar=1", users will be redirected to "/new-path-1?bar=1"
2300	// 2. if request uri is "/old-path-2?bar=1", users will be redirected to "/new-path-2"
2301	// 3. if request uri is "/old-path-3?bar=1", users will be redirected to "/new-path-3?foo=1"
2302	PathRedirect string `protobuf:"bytes,2,opt,name=path_redirect,json=pathRedirect,proto3,oneof"`
2303}
2304
2305type RedirectAction_PrefixRewrite struct {
2306	// Indicates that during redirection, the matched prefix (or path)
2307	// should be swapped with this value. This option allows redirect URLs be dynamically created
2308	// based on the request.
2309	//
2310	// .. attention::
2311	//
2312	//   Pay attention to the use of trailing slashes as mentioned in
2313	//   :ref:`RouteAction's prefix_rewrite <envoy_api_field_route.RouteAction.prefix_rewrite>`.
2314	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3,oneof"`
2315}
2316
2317func (*RedirectAction_PathRedirect) isRedirectAction_PathRewriteSpecifier() {}
2318
2319func (*RedirectAction_PrefixRewrite) isRedirectAction_PathRewriteSpecifier() {}
2320
2321type DirectResponseAction struct {
2322	state         protoimpl.MessageState
2323	sizeCache     protoimpl.SizeCache
2324	unknownFields protoimpl.UnknownFields
2325
2326	// Specifies the HTTP response status to be returned.
2327	Status uint32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
2328	// Specifies the content of the response body. If this setting is omitted,
2329	// no body is included in the generated response.
2330	//
2331	// .. note::
2332	//
2333	//   Headers can be specified using *response_headers_to_add* in the enclosing
2334	//   :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_RouteConfiguration` or
2335	//   :ref:`envoy_api_msg_route.VirtualHost`.
2336	Body *core.DataSource `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
2337}
2338
2339func (x *DirectResponseAction) Reset() {
2340	*x = DirectResponseAction{}
2341	if protoimpl.UnsafeEnabled {
2342		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[10]
2343		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2344		ms.StoreMessageInfo(mi)
2345	}
2346}
2347
2348func (x *DirectResponseAction) String() string {
2349	return protoimpl.X.MessageStringOf(x)
2350}
2351
2352func (*DirectResponseAction) ProtoMessage() {}
2353
2354func (x *DirectResponseAction) ProtoReflect() protoreflect.Message {
2355	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[10]
2356	if protoimpl.UnsafeEnabled && x != nil {
2357		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2358		if ms.LoadMessageInfo() == nil {
2359			ms.StoreMessageInfo(mi)
2360		}
2361		return ms
2362	}
2363	return mi.MessageOf(x)
2364}
2365
2366// Deprecated: Use DirectResponseAction.ProtoReflect.Descriptor instead.
2367func (*DirectResponseAction) Descriptor() ([]byte, []int) {
2368	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{10}
2369}
2370
2371func (x *DirectResponseAction) GetStatus() uint32 {
2372	if x != nil {
2373		return x.Status
2374	}
2375	return 0
2376}
2377
2378func (x *DirectResponseAction) GetBody() *core.DataSource {
2379	if x != nil {
2380		return x.Body
2381	}
2382	return nil
2383}
2384
2385type Decorator struct {
2386	state         protoimpl.MessageState
2387	sizeCache     protoimpl.SizeCache
2388	unknownFields protoimpl.UnknownFields
2389
2390	// The operation name associated with the request matched to this route. If tracing is
2391	// enabled, this information will be used as the span name reported for this request.
2392	//
2393	// .. note::
2394	//
2395	//   For ingress (inbound) requests, or egress (outbound) responses, this value may be overridden
2396	//   by the :ref:`x-envoy-decorator-operation
2397	//   <config_http_filters_router_x-envoy-decorator-operation>` header.
2398	Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
2399	// Whether the decorated details should be propagated to the other party. The default is true.
2400	Propagate *wrappers.BoolValue `protobuf:"bytes,2,opt,name=propagate,proto3" json:"propagate,omitempty"`
2401}
2402
2403func (x *Decorator) Reset() {
2404	*x = Decorator{}
2405	if protoimpl.UnsafeEnabled {
2406		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[11]
2407		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2408		ms.StoreMessageInfo(mi)
2409	}
2410}
2411
2412func (x *Decorator) String() string {
2413	return protoimpl.X.MessageStringOf(x)
2414}
2415
2416func (*Decorator) ProtoMessage() {}
2417
2418func (x *Decorator) ProtoReflect() protoreflect.Message {
2419	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[11]
2420	if protoimpl.UnsafeEnabled && x != nil {
2421		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2422		if ms.LoadMessageInfo() == nil {
2423			ms.StoreMessageInfo(mi)
2424		}
2425		return ms
2426	}
2427	return mi.MessageOf(x)
2428}
2429
2430// Deprecated: Use Decorator.ProtoReflect.Descriptor instead.
2431func (*Decorator) Descriptor() ([]byte, []int) {
2432	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{11}
2433}
2434
2435func (x *Decorator) GetOperation() string {
2436	if x != nil {
2437		return x.Operation
2438	}
2439	return ""
2440}
2441
2442func (x *Decorator) GetPropagate() *wrappers.BoolValue {
2443	if x != nil {
2444		return x.Propagate
2445	}
2446	return nil
2447}
2448
2449type Tracing struct {
2450	state         protoimpl.MessageState
2451	sizeCache     protoimpl.SizeCache
2452	unknownFields protoimpl.UnknownFields
2453
2454	// Target percentage of requests managed by this HTTP connection manager that will be force
2455	// traced if the :ref:`x-client-trace-id <config_http_conn_man_headers_x-client-trace-id>`
2456	// header is set. This field is a direct analog for the runtime variable
2457	// 'tracing.client_sampling' in the :ref:`HTTP Connection Manager
2458	// <config_http_conn_man_runtime>`.
2459	// Default: 100%
2460	ClientSampling *_type.FractionalPercent `protobuf:"bytes,1,opt,name=client_sampling,json=clientSampling,proto3" json:"client_sampling,omitempty"`
2461	// Target percentage of requests managed by this HTTP connection manager that will be randomly
2462	// selected for trace generation, if not requested by the client or not forced. This field is
2463	// a direct analog for the runtime variable 'tracing.random_sampling' in the
2464	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
2465	// Default: 100%
2466	RandomSampling *_type.FractionalPercent `protobuf:"bytes,2,opt,name=random_sampling,json=randomSampling,proto3" json:"random_sampling,omitempty"`
2467	// Target percentage of requests managed by this HTTP connection manager that will be traced
2468	// after all other sampling checks have been applied (client-directed, force tracing, random
2469	// sampling). This field functions as an upper limit on the total configured sampling rate. For
2470	// instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1%
2471	// of client requests with the appropriate headers to be force traced. This field is a direct
2472	// analog for the runtime variable 'tracing.global_enabled' in the
2473	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
2474	// Default: 100%
2475	OverallSampling *_type.FractionalPercent `protobuf:"bytes,3,opt,name=overall_sampling,json=overallSampling,proto3" json:"overall_sampling,omitempty"`
2476	// A list of custom tags with unique tag name to create tags for the active span.
2477	// It will take effect after merging with the :ref:`corresponding configuration
2478	// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.custom_tags>`
2479	// configured in the HTTP connection manager. If two tags with the same name are configured
2480	// each in the HTTP connection manager and the route level, the one configured here takes
2481	// priority.
2482	CustomTags []*v2.CustomTag `protobuf:"bytes,4,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"`
2483}
2484
2485func (x *Tracing) Reset() {
2486	*x = Tracing{}
2487	if protoimpl.UnsafeEnabled {
2488		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[12]
2489		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2490		ms.StoreMessageInfo(mi)
2491	}
2492}
2493
2494func (x *Tracing) String() string {
2495	return protoimpl.X.MessageStringOf(x)
2496}
2497
2498func (*Tracing) ProtoMessage() {}
2499
2500func (x *Tracing) ProtoReflect() protoreflect.Message {
2501	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[12]
2502	if protoimpl.UnsafeEnabled && x != nil {
2503		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2504		if ms.LoadMessageInfo() == nil {
2505			ms.StoreMessageInfo(mi)
2506		}
2507		return ms
2508	}
2509	return mi.MessageOf(x)
2510}
2511
2512// Deprecated: Use Tracing.ProtoReflect.Descriptor instead.
2513func (*Tracing) Descriptor() ([]byte, []int) {
2514	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{12}
2515}
2516
2517func (x *Tracing) GetClientSampling() *_type.FractionalPercent {
2518	if x != nil {
2519		return x.ClientSampling
2520	}
2521	return nil
2522}
2523
2524func (x *Tracing) GetRandomSampling() *_type.FractionalPercent {
2525	if x != nil {
2526		return x.RandomSampling
2527	}
2528	return nil
2529}
2530
2531func (x *Tracing) GetOverallSampling() *_type.FractionalPercent {
2532	if x != nil {
2533		return x.OverallSampling
2534	}
2535	return nil
2536}
2537
2538func (x *Tracing) GetCustomTags() []*v2.CustomTag {
2539	if x != nil {
2540		return x.CustomTags
2541	}
2542	return nil
2543}
2544
2545// A virtual cluster is a way of specifying a regex matching rule against
2546// certain important endpoints such that statistics are generated explicitly for
2547// the matched requests. The reason this is useful is that when doing
2548// prefix/path matching Envoy does not always know what the application
2549// considers to be an endpoint. Thus, it’s impossible for Envoy to generically
2550// emit per endpoint statistics. However, often systems have highly critical
2551// endpoints that they wish to get “perfect” statistics on. Virtual cluster
2552// statistics are perfect in the sense that they are emitted on the downstream
2553// side such that they include network level failures.
2554//
2555// Documentation for :ref:`virtual cluster statistics <config_http_filters_router_vcluster_stats>`.
2556//
2557// .. note::
2558//
2559//    Virtual clusters are a useful tool, but we do not recommend setting up a virtual cluster for
2560//    every application endpoint. This is both not easily maintainable and as well the matching and
2561//    statistics output are not free.
2562type VirtualCluster struct {
2563	state         protoimpl.MessageState
2564	sizeCache     protoimpl.SizeCache
2565	unknownFields protoimpl.UnknownFields
2566
2567	// Specifies a regex pattern to use for matching requests. The entire path of the request
2568	// must match the regex. The regex grammar used is defined `here
2569	// <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
2570	//
2571	// Examples:
2572	//
2573	// * The regex ``/rides/\d+`` matches the path */rides/0*
2574	// * The regex ``/rides/\d+`` matches the path */rides/123*
2575	// * The regex ``/rides/\d+`` does not match the path */rides/123/456*
2576	//
2577	// .. attention::
2578	//   This field has been deprecated in favor of `headers` as it is not safe for use with
2579	//   untrusted input in all cases.
2580	//
2581	// Deprecated: Do not use.
2582	Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
2583	// Specifies a list of header matchers to use for matching requests. Each specified header must
2584	// match. The pseudo-headers `:path` and `:method` can be used to match the request path and
2585	// method, respectively.
2586	Headers []*HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
2587	// Specifies the name of the virtual cluster. The virtual cluster name as well
2588	// as the virtual host name are used when emitting statistics. The statistics are emitted by the
2589	// router filter and are documented :ref:`here <config_http_filters_router_stats>`.
2590	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
2591	// Optionally specifies the HTTP method to match on. For example GET, PUT,
2592	// etc.
2593	//
2594	// .. attention::
2595	//   This field has been deprecated in favor of `headers`.
2596	//
2597	// Deprecated: Do not use.
2598	Method core.RequestMethod `protobuf:"varint,3,opt,name=method,proto3,enum=envoy.api.v2.core.RequestMethod" json:"method,omitempty"`
2599}
2600
2601func (x *VirtualCluster) Reset() {
2602	*x = VirtualCluster{}
2603	if protoimpl.UnsafeEnabled {
2604		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[13]
2605		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2606		ms.StoreMessageInfo(mi)
2607	}
2608}
2609
2610func (x *VirtualCluster) String() string {
2611	return protoimpl.X.MessageStringOf(x)
2612}
2613
2614func (*VirtualCluster) ProtoMessage() {}
2615
2616func (x *VirtualCluster) ProtoReflect() protoreflect.Message {
2617	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[13]
2618	if protoimpl.UnsafeEnabled && x != nil {
2619		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2620		if ms.LoadMessageInfo() == nil {
2621			ms.StoreMessageInfo(mi)
2622		}
2623		return ms
2624	}
2625	return mi.MessageOf(x)
2626}
2627
2628// Deprecated: Use VirtualCluster.ProtoReflect.Descriptor instead.
2629func (*VirtualCluster) Descriptor() ([]byte, []int) {
2630	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{13}
2631}
2632
2633// Deprecated: Do not use.
2634func (x *VirtualCluster) GetPattern() string {
2635	if x != nil {
2636		return x.Pattern
2637	}
2638	return ""
2639}
2640
2641func (x *VirtualCluster) GetHeaders() []*HeaderMatcher {
2642	if x != nil {
2643		return x.Headers
2644	}
2645	return nil
2646}
2647
2648func (x *VirtualCluster) GetName() string {
2649	if x != nil {
2650		return x.Name
2651	}
2652	return ""
2653}
2654
2655// Deprecated: Do not use.
2656func (x *VirtualCluster) GetMethod() core.RequestMethod {
2657	if x != nil {
2658		return x.Method
2659	}
2660	return core.RequestMethod_METHOD_UNSPECIFIED
2661}
2662
2663// Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
2664type RateLimit struct {
2665	state         protoimpl.MessageState
2666	sizeCache     protoimpl.SizeCache
2667	unknownFields protoimpl.UnknownFields
2668
2669	// Refers to the stage set in the filter. The rate limit configuration only
2670	// applies to filters with the same stage number. The default stage number is
2671	// 0.
2672	//
2673	// .. note::
2674	//
2675	//   The filter supports a range of 0 - 10 inclusively for stage numbers.
2676	Stage *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"`
2677	// The key to be set in runtime to disable this rate limit configuration.
2678	DisableKey string `protobuf:"bytes,2,opt,name=disable_key,json=disableKey,proto3" json:"disable_key,omitempty"`
2679	// A list of actions that are to be applied for this rate limit configuration.
2680	// Order matters as the actions are processed sequentially and the descriptor
2681	// is composed by appending descriptor entries in that sequence. If an action
2682	// cannot append a descriptor entry, no descriptor is generated for the
2683	// configuration. See :ref:`composing actions
2684	// <config_http_filters_rate_limit_composing_actions>` for additional documentation.
2685	Actions []*RateLimit_Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
2686}
2687
2688func (x *RateLimit) Reset() {
2689	*x = RateLimit{}
2690	if protoimpl.UnsafeEnabled {
2691		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[14]
2692		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2693		ms.StoreMessageInfo(mi)
2694	}
2695}
2696
2697func (x *RateLimit) String() string {
2698	return protoimpl.X.MessageStringOf(x)
2699}
2700
2701func (*RateLimit) ProtoMessage() {}
2702
2703func (x *RateLimit) ProtoReflect() protoreflect.Message {
2704	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[14]
2705	if protoimpl.UnsafeEnabled && x != nil {
2706		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2707		if ms.LoadMessageInfo() == nil {
2708			ms.StoreMessageInfo(mi)
2709		}
2710		return ms
2711	}
2712	return mi.MessageOf(x)
2713}
2714
2715// Deprecated: Use RateLimit.ProtoReflect.Descriptor instead.
2716func (*RateLimit) Descriptor() ([]byte, []int) {
2717	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14}
2718}
2719
2720func (x *RateLimit) GetStage() *wrappers.UInt32Value {
2721	if x != nil {
2722		return x.Stage
2723	}
2724	return nil
2725}
2726
2727func (x *RateLimit) GetDisableKey() string {
2728	if x != nil {
2729		return x.DisableKey
2730	}
2731	return ""
2732}
2733
2734func (x *RateLimit) GetActions() []*RateLimit_Action {
2735	if x != nil {
2736		return x.Actions
2737	}
2738	return nil
2739}
2740
2741// .. attention::
2742//
2743//   Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host*
2744//   header. Thus, if attempting to match on *Host*, match on *:authority* instead.
2745//
2746// .. attention::
2747//
2748//   To route on HTTP method, use the special HTTP/2 *:method* header. This works for both
2749//   HTTP/1 and HTTP/2 as Envoy normalizes headers. E.g.,
2750//
2751//   .. code-block:: json
2752//
2753//     {
2754//       "name": ":method",
2755//       "exact_match": "POST"
2756//     }
2757//
2758// .. attention::
2759//   In the absence of any header match specifier, match will default to :ref:`present_match
2760//   <envoy_api_field_route.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
2761//   <envoy_api_field_route.HeaderMatcher.name>` header will match, regardless of the header's
2762//   value.
2763//
2764//  [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
2765// [#next-free-field: 12]
2766type HeaderMatcher struct {
2767	state         protoimpl.MessageState
2768	sizeCache     protoimpl.SizeCache
2769	unknownFields protoimpl.UnknownFields
2770
2771	// Specifies the name of the header in the request.
2772	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
2773	// Specifies how the header match will be performed to route the request.
2774	//
2775	// Types that are assignable to HeaderMatchSpecifier:
2776	//	*HeaderMatcher_ExactMatch
2777	//	*HeaderMatcher_RegexMatch
2778	//	*HeaderMatcher_SafeRegexMatch
2779	//	*HeaderMatcher_RangeMatch
2780	//	*HeaderMatcher_PresentMatch
2781	//	*HeaderMatcher_PrefixMatch
2782	//	*HeaderMatcher_SuffixMatch
2783	HeaderMatchSpecifier isHeaderMatcher_HeaderMatchSpecifier `protobuf_oneof:"header_match_specifier"`
2784	// If specified, the match result will be inverted before checking. Defaults to false.
2785	//
2786	// Examples:
2787	//
2788	// * The regex ``\d{3}`` does not match the value *1234*, so it will match when inverted.
2789	// * The range [-10,0) will match the value -1, so it will not match when inverted.
2790	InvertMatch bool `protobuf:"varint,8,opt,name=invert_match,json=invertMatch,proto3" json:"invert_match,omitempty"`
2791}
2792
2793func (x *HeaderMatcher) Reset() {
2794	*x = HeaderMatcher{}
2795	if protoimpl.UnsafeEnabled {
2796		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[15]
2797		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2798		ms.StoreMessageInfo(mi)
2799	}
2800}
2801
2802func (x *HeaderMatcher) String() string {
2803	return protoimpl.X.MessageStringOf(x)
2804}
2805
2806func (*HeaderMatcher) ProtoMessage() {}
2807
2808func (x *HeaderMatcher) ProtoReflect() protoreflect.Message {
2809	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[15]
2810	if protoimpl.UnsafeEnabled && x != nil {
2811		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2812		if ms.LoadMessageInfo() == nil {
2813			ms.StoreMessageInfo(mi)
2814		}
2815		return ms
2816	}
2817	return mi.MessageOf(x)
2818}
2819
2820// Deprecated: Use HeaderMatcher.ProtoReflect.Descriptor instead.
2821func (*HeaderMatcher) Descriptor() ([]byte, []int) {
2822	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{15}
2823}
2824
2825func (x *HeaderMatcher) GetName() string {
2826	if x != nil {
2827		return x.Name
2828	}
2829	return ""
2830}
2831
2832func (m *HeaderMatcher) GetHeaderMatchSpecifier() isHeaderMatcher_HeaderMatchSpecifier {
2833	if m != nil {
2834		return m.HeaderMatchSpecifier
2835	}
2836	return nil
2837}
2838
2839func (x *HeaderMatcher) GetExactMatch() string {
2840	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_ExactMatch); ok {
2841		return x.ExactMatch
2842	}
2843	return ""
2844}
2845
2846// Deprecated: Do not use.
2847func (x *HeaderMatcher) GetRegexMatch() string {
2848	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_RegexMatch); ok {
2849		return x.RegexMatch
2850	}
2851	return ""
2852}
2853
2854func (x *HeaderMatcher) GetSafeRegexMatch() *matcher.RegexMatcher {
2855	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_SafeRegexMatch); ok {
2856		return x.SafeRegexMatch
2857	}
2858	return nil
2859}
2860
2861func (x *HeaderMatcher) GetRangeMatch() *_type.Int64Range {
2862	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_RangeMatch); ok {
2863		return x.RangeMatch
2864	}
2865	return nil
2866}
2867
2868func (x *HeaderMatcher) GetPresentMatch() bool {
2869	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_PresentMatch); ok {
2870		return x.PresentMatch
2871	}
2872	return false
2873}
2874
2875func (x *HeaderMatcher) GetPrefixMatch() string {
2876	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_PrefixMatch); ok {
2877		return x.PrefixMatch
2878	}
2879	return ""
2880}
2881
2882func (x *HeaderMatcher) GetSuffixMatch() string {
2883	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_SuffixMatch); ok {
2884		return x.SuffixMatch
2885	}
2886	return ""
2887}
2888
2889func (x *HeaderMatcher) GetInvertMatch() bool {
2890	if x != nil {
2891		return x.InvertMatch
2892	}
2893	return false
2894}
2895
2896type isHeaderMatcher_HeaderMatchSpecifier interface {
2897	isHeaderMatcher_HeaderMatchSpecifier()
2898}
2899
2900type HeaderMatcher_ExactMatch struct {
2901	// If specified, header match will be performed based on the value of the header.
2902	ExactMatch string `protobuf:"bytes,4,opt,name=exact_match,json=exactMatch,proto3,oneof"`
2903}
2904
2905type HeaderMatcher_RegexMatch struct {
2906	// If specified, this regex string is a regular expression rule which implies the entire request
2907	// header value must match the regex. The rule will not match if only a subsequence of the
2908	// request header value matches the regex. The regex grammar used in the value field is defined
2909	// `here <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
2910	//
2911	// Examples:
2912	//
2913	// * The regex ``\d{3}`` matches the value *123*
2914	// * The regex ``\d{3}`` does not match the value *1234*
2915	// * The regex ``\d{3}`` does not match the value *123.456*
2916	//
2917	// .. attention::
2918	//   This field has been deprecated in favor of `safe_regex_match` as it is not safe for use
2919	//   with untrusted input in all cases.
2920	//
2921	// Deprecated: Do not use.
2922	RegexMatch string `protobuf:"bytes,5,opt,name=regex_match,json=regexMatch,proto3,oneof"`
2923}
2924
2925type HeaderMatcher_SafeRegexMatch struct {
2926	// If specified, this regex string is a regular expression rule which implies the entire request
2927	// header value must match the regex. The rule will not match if only a subsequence of the
2928	// request header value matches the regex.
2929	SafeRegexMatch *matcher.RegexMatcher `protobuf:"bytes,11,opt,name=safe_regex_match,json=safeRegexMatch,proto3,oneof"`
2930}
2931
2932type HeaderMatcher_RangeMatch struct {
2933	// If specified, header match will be performed based on range.
2934	// The rule will match if the request header value is within this range.
2935	// The entire request header value must represent an integer in base 10 notation: consisting of
2936	// an optional plus or minus sign followed by a sequence of digits. The rule will not match if
2937	// the header value does not represent an integer. Match will fail for empty values, floating
2938	// point numbers or if only a subsequence of the header value is an integer.
2939	//
2940	// Examples:
2941	//
2942	// * For range [-10,0), route will match for header value -1, but not for 0, "somestring", 10.9,
2943	//   "-1somestring"
2944	RangeMatch *_type.Int64Range `protobuf:"bytes,6,opt,name=range_match,json=rangeMatch,proto3,oneof"`
2945}
2946
2947type HeaderMatcher_PresentMatch struct {
2948	// If specified, header match will be performed based on whether the header is in the
2949	// request.
2950	PresentMatch bool `protobuf:"varint,7,opt,name=present_match,json=presentMatch,proto3,oneof"`
2951}
2952
2953type HeaderMatcher_PrefixMatch struct {
2954	// If specified, header match will be performed based on the prefix of the header value.
2955	// Note: empty prefix is not allowed, please use present_match instead.
2956	//
2957	// Examples:
2958	//
2959	// * The prefix *abcd* matches the value *abcdxyz*, but not for *abcxyz*.
2960	PrefixMatch string `protobuf:"bytes,9,opt,name=prefix_match,json=prefixMatch,proto3,oneof"`
2961}
2962
2963type HeaderMatcher_SuffixMatch struct {
2964	// If specified, header match will be performed based on the suffix of the header value.
2965	// Note: empty suffix is not allowed, please use present_match instead.
2966	//
2967	// Examples:
2968	//
2969	// * The suffix *abcd* matches the value *xyzabcd*, but not for *xyzbcd*.
2970	SuffixMatch string `protobuf:"bytes,10,opt,name=suffix_match,json=suffixMatch,proto3,oneof"`
2971}
2972
2973func (*HeaderMatcher_ExactMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2974
2975func (*HeaderMatcher_RegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2976
2977func (*HeaderMatcher_SafeRegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2978
2979func (*HeaderMatcher_RangeMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2980
2981func (*HeaderMatcher_PresentMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2982
2983func (*HeaderMatcher_PrefixMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2984
2985func (*HeaderMatcher_SuffixMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
2986
2987// Query parameter matching treats the query string of a request's :path header
2988// as an ampersand-separated list of keys and/or key=value elements.
2989// [#next-free-field: 7]
2990type QueryParameterMatcher struct {
2991	state         protoimpl.MessageState
2992	sizeCache     protoimpl.SizeCache
2993	unknownFields protoimpl.UnknownFields
2994
2995	// Specifies the name of a key that must be present in the requested
2996	// *path*'s query string.
2997	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
2998	// Specifies the value of the key. If the value is absent, a request
2999	// that contains the key in its query string will match, whether the
3000	// key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
3001	//
3002	// ..attention::
3003	//   This field is deprecated. Use an `exact` match inside the `string_match` field.
3004	//
3005	// Deprecated: Do not use.
3006	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
3007	// Specifies whether the query parameter value is a regular expression.
3008	// Defaults to false. The entire query parameter value (i.e., the part to
3009	// the right of the equals sign in "key=value") must match the regex.
3010	// E.g., the regex ``\d+$`` will match *123* but not *a123* or *123a*.
3011	//
3012	// ..attention::
3013	//   This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
3014	//
3015	// Deprecated: Do not use.
3016	Regex *wrappers.BoolValue `protobuf:"bytes,4,opt,name=regex,proto3" json:"regex,omitempty"`
3017	// Types that are assignable to QueryParameterMatchSpecifier:
3018	//	*QueryParameterMatcher_StringMatch
3019	//	*QueryParameterMatcher_PresentMatch
3020	QueryParameterMatchSpecifier isQueryParameterMatcher_QueryParameterMatchSpecifier `protobuf_oneof:"query_parameter_match_specifier"`
3021}
3022
3023func (x *QueryParameterMatcher) Reset() {
3024	*x = QueryParameterMatcher{}
3025	if protoimpl.UnsafeEnabled {
3026		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[16]
3027		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3028		ms.StoreMessageInfo(mi)
3029	}
3030}
3031
3032func (x *QueryParameterMatcher) String() string {
3033	return protoimpl.X.MessageStringOf(x)
3034}
3035
3036func (*QueryParameterMatcher) ProtoMessage() {}
3037
3038func (x *QueryParameterMatcher) ProtoReflect() protoreflect.Message {
3039	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[16]
3040	if protoimpl.UnsafeEnabled && x != nil {
3041		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3042		if ms.LoadMessageInfo() == nil {
3043			ms.StoreMessageInfo(mi)
3044		}
3045		return ms
3046	}
3047	return mi.MessageOf(x)
3048}
3049
3050// Deprecated: Use QueryParameterMatcher.ProtoReflect.Descriptor instead.
3051func (*QueryParameterMatcher) Descriptor() ([]byte, []int) {
3052	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{16}
3053}
3054
3055func (x *QueryParameterMatcher) GetName() string {
3056	if x != nil {
3057		return x.Name
3058	}
3059	return ""
3060}
3061
3062// Deprecated: Do not use.
3063func (x *QueryParameterMatcher) GetValue() string {
3064	if x != nil {
3065		return x.Value
3066	}
3067	return ""
3068}
3069
3070// Deprecated: Do not use.
3071func (x *QueryParameterMatcher) GetRegex() *wrappers.BoolValue {
3072	if x != nil {
3073		return x.Regex
3074	}
3075	return nil
3076}
3077
3078func (m *QueryParameterMatcher) GetQueryParameterMatchSpecifier() isQueryParameterMatcher_QueryParameterMatchSpecifier {
3079	if m != nil {
3080		return m.QueryParameterMatchSpecifier
3081	}
3082	return nil
3083}
3084
3085func (x *QueryParameterMatcher) GetStringMatch() *matcher.StringMatcher {
3086	if x, ok := x.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_StringMatch); ok {
3087		return x.StringMatch
3088	}
3089	return nil
3090}
3091
3092func (x *QueryParameterMatcher) GetPresentMatch() bool {
3093	if x, ok := x.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_PresentMatch); ok {
3094		return x.PresentMatch
3095	}
3096	return false
3097}
3098
3099type isQueryParameterMatcher_QueryParameterMatchSpecifier interface {
3100	isQueryParameterMatcher_QueryParameterMatchSpecifier()
3101}
3102
3103type QueryParameterMatcher_StringMatch struct {
3104	// Specifies whether a query parameter value should match against a string.
3105	StringMatch *matcher.StringMatcher `protobuf:"bytes,5,opt,name=string_match,json=stringMatch,proto3,oneof"`
3106}
3107
3108type QueryParameterMatcher_PresentMatch struct {
3109	// Specifies whether a query parameter should be present.
3110	PresentMatch bool `protobuf:"varint,6,opt,name=present_match,json=presentMatch,proto3,oneof"`
3111}
3112
3113func (*QueryParameterMatcher_StringMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {}
3114
3115func (*QueryParameterMatcher_PresentMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {}
3116
3117// [#next-free-field: 11]
3118type WeightedCluster_ClusterWeight struct {
3119	state         protoimpl.MessageState
3120	sizeCache     protoimpl.SizeCache
3121	unknownFields protoimpl.UnknownFields
3122
3123	// Name of the upstream cluster. The cluster must exist in the
3124	// :ref:`cluster manager configuration <config_cluster_manager>`.
3125	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3126	// An integer between 0 and :ref:`total_weight
3127	// <envoy_api_field_route.WeightedCluster.total_weight>`. When a request matches the route,
3128	// the choice of an upstream cluster is determined by its weight. The sum of weights across all
3129	// entries in the clusters array must add up to the total_weight, which defaults to 100.
3130	Weight *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"`
3131	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
3132	// the upstream cluster with metadata matching what is set in this field will be considered for
3133	// load balancing. Note that this will be merged with what's provided in
3134	// :ref:`RouteAction.metadata_match <envoy_api_field_route.RouteAction.metadata_match>`, with
3135	// values here taking precedence. The filter name should be specified as *envoy.lb*.
3136	MetadataMatch *core.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
3137	// Specifies a list of headers to be added to requests when this cluster is selected
3138	// through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
3139	// Headers specified at this level are applied before headers from the enclosing
3140	// :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_route.VirtualHost`, and
3141	// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
3142	// header value syntax, see the documentation on :ref:`custom request headers
3143	// <config_http_conn_man_headers_custom_request_headers>`.
3144	RequestHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,4,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
3145	// Specifies a list of HTTP headers that should be removed from each request when
3146	// this cluster is selected through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
3147	RequestHeadersToRemove []string `protobuf:"bytes,9,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
3148	// Specifies a list of headers to be added to responses when this cluster is selected
3149	// through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
3150	// Headers specified at this level are applied before headers from the enclosing
3151	// :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_route.VirtualHost`, and
3152	// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
3153	// header value syntax, see the documentation on :ref:`custom request headers
3154	// <config_http_conn_man_headers_custom_request_headers>`.
3155	ResponseHeadersToAdd []*core.HeaderValueOption `protobuf:"bytes,5,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
3156	// Specifies a list of headers to be removed from responses when this cluster is selected
3157	// through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
3158	ResponseHeadersToRemove []string `protobuf:"bytes,6,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
3159	// The per_filter_config field can be used to provide weighted cluster-specific
3160	// configurations for filters. The key should match the filter name, such as
3161	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
3162	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
3163	// for if and how it is utilized.
3164	//
3165	// Deprecated: Do not use.
3166	PerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=per_filter_config,json=perFilterConfig,proto3" json:"per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
3167	// The per_filter_config field can be used to provide weighted cluster-specific
3168	// configurations for filters. The key should match the filter name, such as
3169	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
3170	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
3171	// for if and how it is utilized.
3172	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,10,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
3173}
3174
3175func (x *WeightedCluster_ClusterWeight) Reset() {
3176	*x = WeightedCluster_ClusterWeight{}
3177	if protoimpl.UnsafeEnabled {
3178		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[21]
3179		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3180		ms.StoreMessageInfo(mi)
3181	}
3182}
3183
3184func (x *WeightedCluster_ClusterWeight) String() string {
3185	return protoimpl.X.MessageStringOf(x)
3186}
3187
3188func (*WeightedCluster_ClusterWeight) ProtoMessage() {}
3189
3190func (x *WeightedCluster_ClusterWeight) ProtoReflect() protoreflect.Message {
3191	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[21]
3192	if protoimpl.UnsafeEnabled && x != nil {
3193		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3194		if ms.LoadMessageInfo() == nil {
3195			ms.StoreMessageInfo(mi)
3196		}
3197		return ms
3198	}
3199	return mi.MessageOf(x)
3200}
3201
3202// Deprecated: Use WeightedCluster_ClusterWeight.ProtoReflect.Descriptor instead.
3203func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) {
3204	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{3, 0}
3205}
3206
3207func (x *WeightedCluster_ClusterWeight) GetName() string {
3208	if x != nil {
3209		return x.Name
3210	}
3211	return ""
3212}
3213
3214func (x *WeightedCluster_ClusterWeight) GetWeight() *wrappers.UInt32Value {
3215	if x != nil {
3216		return x.Weight
3217	}
3218	return nil
3219}
3220
3221func (x *WeightedCluster_ClusterWeight) GetMetadataMatch() *core.Metadata {
3222	if x != nil {
3223		return x.MetadataMatch
3224	}
3225	return nil
3226}
3227
3228func (x *WeightedCluster_ClusterWeight) GetRequestHeadersToAdd() []*core.HeaderValueOption {
3229	if x != nil {
3230		return x.RequestHeadersToAdd
3231	}
3232	return nil
3233}
3234
3235func (x *WeightedCluster_ClusterWeight) GetRequestHeadersToRemove() []string {
3236	if x != nil {
3237		return x.RequestHeadersToRemove
3238	}
3239	return nil
3240}
3241
3242func (x *WeightedCluster_ClusterWeight) GetResponseHeadersToAdd() []*core.HeaderValueOption {
3243	if x != nil {
3244		return x.ResponseHeadersToAdd
3245	}
3246	return nil
3247}
3248
3249func (x *WeightedCluster_ClusterWeight) GetResponseHeadersToRemove() []string {
3250	if x != nil {
3251		return x.ResponseHeadersToRemove
3252	}
3253	return nil
3254}
3255
3256// Deprecated: Do not use.
3257func (x *WeightedCluster_ClusterWeight) GetPerFilterConfig() map[string]*_struct.Struct {
3258	if x != nil {
3259		return x.PerFilterConfig
3260	}
3261	return nil
3262}
3263
3264func (x *WeightedCluster_ClusterWeight) GetTypedPerFilterConfig() map[string]*any.Any {
3265	if x != nil {
3266		return x.TypedPerFilterConfig
3267	}
3268	return nil
3269}
3270
3271type RouteMatch_GrpcRouteMatchOptions struct {
3272	state         protoimpl.MessageState
3273	sizeCache     protoimpl.SizeCache
3274	unknownFields protoimpl.UnknownFields
3275}
3276
3277func (x *RouteMatch_GrpcRouteMatchOptions) Reset() {
3278	*x = RouteMatch_GrpcRouteMatchOptions{}
3279	if protoimpl.UnsafeEnabled {
3280		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[24]
3281		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3282		ms.StoreMessageInfo(mi)
3283	}
3284}
3285
3286func (x *RouteMatch_GrpcRouteMatchOptions) String() string {
3287	return protoimpl.X.MessageStringOf(x)
3288}
3289
3290func (*RouteMatch_GrpcRouteMatchOptions) ProtoMessage() {}
3291
3292func (x *RouteMatch_GrpcRouteMatchOptions) ProtoReflect() protoreflect.Message {
3293	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[24]
3294	if protoimpl.UnsafeEnabled && x != nil {
3295		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3296		if ms.LoadMessageInfo() == nil {
3297			ms.StoreMessageInfo(mi)
3298		}
3299		return ms
3300	}
3301	return mi.MessageOf(x)
3302}
3303
3304// Deprecated: Use RouteMatch_GrpcRouteMatchOptions.ProtoReflect.Descriptor instead.
3305func (*RouteMatch_GrpcRouteMatchOptions) Descriptor() ([]byte, []int) {
3306	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{4, 0}
3307}
3308
3309type RouteMatch_TlsContextMatchOptions struct {
3310	state         protoimpl.MessageState
3311	sizeCache     protoimpl.SizeCache
3312	unknownFields protoimpl.UnknownFields
3313
3314	// If specified, the route will match against whether or not a certificate is presented.
3315	// If not specified, certificate presentation status (true or false) will not be considered when route matching.
3316	Presented *wrappers.BoolValue `protobuf:"bytes,1,opt,name=presented,proto3" json:"presented,omitempty"`
3317	// If specified, the route will match against whether or not a certificate is validated.
3318	// If not specified, certificate validation status (true or false) will not be considered when route matching.
3319	Validated *wrappers.BoolValue `protobuf:"bytes,2,opt,name=validated,proto3" json:"validated,omitempty"`
3320}
3321
3322func (x *RouteMatch_TlsContextMatchOptions) Reset() {
3323	*x = RouteMatch_TlsContextMatchOptions{}
3324	if protoimpl.UnsafeEnabled {
3325		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[25]
3326		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3327		ms.StoreMessageInfo(mi)
3328	}
3329}
3330
3331func (x *RouteMatch_TlsContextMatchOptions) String() string {
3332	return protoimpl.X.MessageStringOf(x)
3333}
3334
3335func (*RouteMatch_TlsContextMatchOptions) ProtoMessage() {}
3336
3337func (x *RouteMatch_TlsContextMatchOptions) ProtoReflect() protoreflect.Message {
3338	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[25]
3339	if protoimpl.UnsafeEnabled && x != nil {
3340		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3341		if ms.LoadMessageInfo() == nil {
3342			ms.StoreMessageInfo(mi)
3343		}
3344		return ms
3345	}
3346	return mi.MessageOf(x)
3347}
3348
3349// Deprecated: Use RouteMatch_TlsContextMatchOptions.ProtoReflect.Descriptor instead.
3350func (*RouteMatch_TlsContextMatchOptions) Descriptor() ([]byte, []int) {
3351	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{4, 1}
3352}
3353
3354func (x *RouteMatch_TlsContextMatchOptions) GetPresented() *wrappers.BoolValue {
3355	if x != nil {
3356		return x.Presented
3357	}
3358	return nil
3359}
3360
3361func (x *RouteMatch_TlsContextMatchOptions) GetValidated() *wrappers.BoolValue {
3362	if x != nil {
3363		return x.Validated
3364	}
3365	return nil
3366}
3367
3368// The router is capable of shadowing traffic from one cluster to another. The current
3369// implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to
3370// respond before returning the response from the primary cluster. All normal statistics are
3371// collected for the shadow cluster making this feature useful for testing.
3372//
3373// During shadowing, the host/authority header is altered such that *-shadow* is appended. This is
3374// useful for logging. For example, *cluster1* becomes *cluster1-shadow*.
3375//
3376// .. note::
3377//
3378//   Shadowing will not be triggered if the primary cluster does not exist.
3379type RouteAction_RequestMirrorPolicy struct {
3380	state         protoimpl.MessageState
3381	sizeCache     protoimpl.SizeCache
3382	unknownFields protoimpl.UnknownFields
3383
3384	// Specifies the cluster that requests will be mirrored to. The cluster must
3385	// exist in the cluster manager configuration.
3386	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
3387	// If not specified, all requests to the target cluster will be mirrored. If
3388	// specified, Envoy will lookup the runtime key to get the % of requests to
3389	// mirror. Valid values are from 0 to 10000, allowing for increments of
3390	// 0.01% of requests to be mirrored. If the runtime key is specified in the
3391	// configuration but not present in runtime, 0 is the default and thus 0% of
3392	// requests will be mirrored.
3393	//
3394	// .. attention::
3395	//
3396	//   **This field is deprecated**. Set the
3397	//   :ref:`runtime_fraction
3398	//   <envoy_api_field_route.RouteAction.RequestMirrorPolicy.runtime_fraction>`
3399	//   field instead. Mirroring occurs if both this and
3400	//   <envoy_api_field_route.RouteAction.RequestMirrorPolicy.runtime_fraction>`
3401	//   are not set.
3402	//
3403	// Deprecated: Do not use.
3404	RuntimeKey string `protobuf:"bytes,2,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"`
3405	// If not specified, all requests to the target cluster will be mirrored.
3406	//
3407	// If specified, this field takes precedence over the `runtime_key` field and requests must also
3408	// fall under the percentage of matches indicated by this field.
3409	//
3410	// For some fraction N/D, a random number in the range [0,D) is selected. If the
3411	// number is <= the value of the numerator N, or if the key is not present, the default
3412	// value, the request will be mirrored.
3413	RuntimeFraction *core.RuntimeFractionalPercent `protobuf:"bytes,3,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
3414	// Determines if the trace span should be sampled. Defaults to true.
3415	TraceSampled *wrappers.BoolValue `protobuf:"bytes,4,opt,name=trace_sampled,json=traceSampled,proto3" json:"trace_sampled,omitempty"`
3416}
3417
3418func (x *RouteAction_RequestMirrorPolicy) Reset() {
3419	*x = RouteAction_RequestMirrorPolicy{}
3420	if protoimpl.UnsafeEnabled {
3421		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[26]
3422		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3423		ms.StoreMessageInfo(mi)
3424	}
3425}
3426
3427func (x *RouteAction_RequestMirrorPolicy) String() string {
3428	return protoimpl.X.MessageStringOf(x)
3429}
3430
3431func (*RouteAction_RequestMirrorPolicy) ProtoMessage() {}
3432
3433func (x *RouteAction_RequestMirrorPolicy) ProtoReflect() protoreflect.Message {
3434	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[26]
3435	if protoimpl.UnsafeEnabled && x != nil {
3436		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3437		if ms.LoadMessageInfo() == nil {
3438			ms.StoreMessageInfo(mi)
3439		}
3440		return ms
3441	}
3442	return mi.MessageOf(x)
3443}
3444
3445// Deprecated: Use RouteAction_RequestMirrorPolicy.ProtoReflect.Descriptor instead.
3446func (*RouteAction_RequestMirrorPolicy) Descriptor() ([]byte, []int) {
3447	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 0}
3448}
3449
3450func (x *RouteAction_RequestMirrorPolicy) GetCluster() string {
3451	if x != nil {
3452		return x.Cluster
3453	}
3454	return ""
3455}
3456
3457// Deprecated: Do not use.
3458func (x *RouteAction_RequestMirrorPolicy) GetRuntimeKey() string {
3459	if x != nil {
3460		return x.RuntimeKey
3461	}
3462	return ""
3463}
3464
3465func (x *RouteAction_RequestMirrorPolicy) GetRuntimeFraction() *core.RuntimeFractionalPercent {
3466	if x != nil {
3467		return x.RuntimeFraction
3468	}
3469	return nil
3470}
3471
3472func (x *RouteAction_RequestMirrorPolicy) GetTraceSampled() *wrappers.BoolValue {
3473	if x != nil {
3474		return x.TraceSampled
3475	}
3476	return nil
3477}
3478
3479// Specifies the route's hashing policy if the upstream cluster uses a hashing :ref:`load balancer
3480// <arch_overview_load_balancing_types>`.
3481// [#next-free-field: 7]
3482type RouteAction_HashPolicy struct {
3483	state         protoimpl.MessageState
3484	sizeCache     protoimpl.SizeCache
3485	unknownFields protoimpl.UnknownFields
3486
3487	// Types that are assignable to PolicySpecifier:
3488	//	*RouteAction_HashPolicy_Header_
3489	//	*RouteAction_HashPolicy_Cookie_
3490	//	*RouteAction_HashPolicy_ConnectionProperties_
3491	//	*RouteAction_HashPolicy_QueryParameter_
3492	//	*RouteAction_HashPolicy_FilterState_
3493	PolicySpecifier isRouteAction_HashPolicy_PolicySpecifier `protobuf_oneof:"policy_specifier"`
3494	// The flag that short-circuits the hash computing. This field provides a
3495	// 'fallback' style of configuration: "if a terminal policy doesn't work,
3496	// fallback to rest of the policy list", it saves time when the terminal
3497	// policy works.
3498	//
3499	// If true, and there is already a hash computed, ignore rest of the
3500	// list of hash polices.
3501	// For example, if the following hash methods are configured:
3502	//
3503	//  ========= ========
3504	//  specifier terminal
3505	//  ========= ========
3506	//  Header A  true
3507	//  Header B  false
3508	//  Header C  false
3509	//  ========= ========
3510	//
3511	// The generateHash process ends if policy "header A" generates a hash, as
3512	// it's a terminal policy.
3513	Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"`
3514}
3515
3516func (x *RouteAction_HashPolicy) Reset() {
3517	*x = RouteAction_HashPolicy{}
3518	if protoimpl.UnsafeEnabled {
3519		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[27]
3520		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3521		ms.StoreMessageInfo(mi)
3522	}
3523}
3524
3525func (x *RouteAction_HashPolicy) String() string {
3526	return protoimpl.X.MessageStringOf(x)
3527}
3528
3529func (*RouteAction_HashPolicy) ProtoMessage() {}
3530
3531func (x *RouteAction_HashPolicy) ProtoReflect() protoreflect.Message {
3532	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[27]
3533	if protoimpl.UnsafeEnabled && x != nil {
3534		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3535		if ms.LoadMessageInfo() == nil {
3536			ms.StoreMessageInfo(mi)
3537		}
3538		return ms
3539	}
3540	return mi.MessageOf(x)
3541}
3542
3543// Deprecated: Use RouteAction_HashPolicy.ProtoReflect.Descriptor instead.
3544func (*RouteAction_HashPolicy) Descriptor() ([]byte, []int) {
3545	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1}
3546}
3547
3548func (m *RouteAction_HashPolicy) GetPolicySpecifier() isRouteAction_HashPolicy_PolicySpecifier {
3549	if m != nil {
3550		return m.PolicySpecifier
3551	}
3552	return nil
3553}
3554
3555func (x *RouteAction_HashPolicy) GetHeader() *RouteAction_HashPolicy_Header {
3556	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_Header_); ok {
3557		return x.Header
3558	}
3559	return nil
3560}
3561
3562func (x *RouteAction_HashPolicy) GetCookie() *RouteAction_HashPolicy_Cookie {
3563	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_Cookie_); ok {
3564		return x.Cookie
3565	}
3566	return nil
3567}
3568
3569func (x *RouteAction_HashPolicy) GetConnectionProperties() *RouteAction_HashPolicy_ConnectionProperties {
3570	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_ConnectionProperties_); ok {
3571		return x.ConnectionProperties
3572	}
3573	return nil
3574}
3575
3576func (x *RouteAction_HashPolicy) GetQueryParameter() *RouteAction_HashPolicy_QueryParameter {
3577	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_QueryParameter_); ok {
3578		return x.QueryParameter
3579	}
3580	return nil
3581}
3582
3583func (x *RouteAction_HashPolicy) GetFilterState() *RouteAction_HashPolicy_FilterState {
3584	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_FilterState_); ok {
3585		return x.FilterState
3586	}
3587	return nil
3588}
3589
3590func (x *RouteAction_HashPolicy) GetTerminal() bool {
3591	if x != nil {
3592		return x.Terminal
3593	}
3594	return false
3595}
3596
3597type isRouteAction_HashPolicy_PolicySpecifier interface {
3598	isRouteAction_HashPolicy_PolicySpecifier()
3599}
3600
3601type RouteAction_HashPolicy_Header_ struct {
3602	// Header hash policy.
3603	Header *RouteAction_HashPolicy_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
3604}
3605
3606type RouteAction_HashPolicy_Cookie_ struct {
3607	// Cookie hash policy.
3608	Cookie *RouteAction_HashPolicy_Cookie `protobuf:"bytes,2,opt,name=cookie,proto3,oneof"`
3609}
3610
3611type RouteAction_HashPolicy_ConnectionProperties_ struct {
3612	// Connection properties hash policy.
3613	ConnectionProperties *RouteAction_HashPolicy_ConnectionProperties `protobuf:"bytes,3,opt,name=connection_properties,json=connectionProperties,proto3,oneof"`
3614}
3615
3616type RouteAction_HashPolicy_QueryParameter_ struct {
3617	// Query parameter hash policy.
3618	QueryParameter *RouteAction_HashPolicy_QueryParameter `protobuf:"bytes,5,opt,name=query_parameter,json=queryParameter,proto3,oneof"`
3619}
3620
3621type RouteAction_HashPolicy_FilterState_ struct {
3622	// Filter state hash policy.
3623	FilterState *RouteAction_HashPolicy_FilterState `protobuf:"bytes,6,opt,name=filter_state,json=filterState,proto3,oneof"`
3624}
3625
3626func (*RouteAction_HashPolicy_Header_) isRouteAction_HashPolicy_PolicySpecifier() {}
3627
3628func (*RouteAction_HashPolicy_Cookie_) isRouteAction_HashPolicy_PolicySpecifier() {}
3629
3630func (*RouteAction_HashPolicy_ConnectionProperties_) isRouteAction_HashPolicy_PolicySpecifier() {}
3631
3632func (*RouteAction_HashPolicy_QueryParameter_) isRouteAction_HashPolicy_PolicySpecifier() {}
3633
3634func (*RouteAction_HashPolicy_FilterState_) isRouteAction_HashPolicy_PolicySpecifier() {}
3635
3636// Allows enabling and disabling upgrades on a per-route basis.
3637// This overrides any enabled/disabled upgrade filter chain specified in the
3638// HttpConnectionManager
3639// :ref:`upgrade_configs
3640// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.upgrade_configs>`
3641// but does not affect any custom filter chain specified there.
3642type RouteAction_UpgradeConfig struct {
3643	state         protoimpl.MessageState
3644	sizeCache     protoimpl.SizeCache
3645	unknownFields protoimpl.UnknownFields
3646
3647	// The case-insensitive name of this upgrade, e.g. "websocket".
3648	// For each upgrade type present in upgrade_configs, requests with
3649	// Upgrade: [upgrade_type] will be proxied upstream.
3650	UpgradeType string `protobuf:"bytes,1,opt,name=upgrade_type,json=upgradeType,proto3" json:"upgrade_type,omitempty"`
3651	// Determines if upgrades are available on this route. Defaults to true.
3652	Enabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
3653}
3654
3655func (x *RouteAction_UpgradeConfig) Reset() {
3656	*x = RouteAction_UpgradeConfig{}
3657	if protoimpl.UnsafeEnabled {
3658		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[28]
3659		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3660		ms.StoreMessageInfo(mi)
3661	}
3662}
3663
3664func (x *RouteAction_UpgradeConfig) String() string {
3665	return protoimpl.X.MessageStringOf(x)
3666}
3667
3668func (*RouteAction_UpgradeConfig) ProtoMessage() {}
3669
3670func (x *RouteAction_UpgradeConfig) ProtoReflect() protoreflect.Message {
3671	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[28]
3672	if protoimpl.UnsafeEnabled && x != nil {
3673		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3674		if ms.LoadMessageInfo() == nil {
3675			ms.StoreMessageInfo(mi)
3676		}
3677		return ms
3678	}
3679	return mi.MessageOf(x)
3680}
3681
3682// Deprecated: Use RouteAction_UpgradeConfig.ProtoReflect.Descriptor instead.
3683func (*RouteAction_UpgradeConfig) Descriptor() ([]byte, []int) {
3684	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 2}
3685}
3686
3687func (x *RouteAction_UpgradeConfig) GetUpgradeType() string {
3688	if x != nil {
3689		return x.UpgradeType
3690	}
3691	return ""
3692}
3693
3694func (x *RouteAction_UpgradeConfig) GetEnabled() *wrappers.BoolValue {
3695	if x != nil {
3696		return x.Enabled
3697	}
3698	return nil
3699}
3700
3701type RouteAction_HashPolicy_Header struct {
3702	state         protoimpl.MessageState
3703	sizeCache     protoimpl.SizeCache
3704	unknownFields protoimpl.UnknownFields
3705
3706	// The name of the request header that will be used to obtain the hash
3707	// key. If the request header is not present, no hash will be produced.
3708	HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
3709}
3710
3711func (x *RouteAction_HashPolicy_Header) Reset() {
3712	*x = RouteAction_HashPolicy_Header{}
3713	if protoimpl.UnsafeEnabled {
3714		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[29]
3715		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3716		ms.StoreMessageInfo(mi)
3717	}
3718}
3719
3720func (x *RouteAction_HashPolicy_Header) String() string {
3721	return protoimpl.X.MessageStringOf(x)
3722}
3723
3724func (*RouteAction_HashPolicy_Header) ProtoMessage() {}
3725
3726func (x *RouteAction_HashPolicy_Header) ProtoReflect() protoreflect.Message {
3727	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[29]
3728	if protoimpl.UnsafeEnabled && x != nil {
3729		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3730		if ms.LoadMessageInfo() == nil {
3731			ms.StoreMessageInfo(mi)
3732		}
3733		return ms
3734	}
3735	return mi.MessageOf(x)
3736}
3737
3738// Deprecated: Use RouteAction_HashPolicy_Header.ProtoReflect.Descriptor instead.
3739func (*RouteAction_HashPolicy_Header) Descriptor() ([]byte, []int) {
3740	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1, 0}
3741}
3742
3743func (x *RouteAction_HashPolicy_Header) GetHeaderName() string {
3744	if x != nil {
3745		return x.HeaderName
3746	}
3747	return ""
3748}
3749
3750// Envoy supports two types of cookie affinity:
3751//
3752// 1. Passive. Envoy takes a cookie that's present in the cookies header and
3753//    hashes on its value.
3754//
3755// 2. Generated. Envoy generates and sets a cookie with an expiration (TTL)
3756//    on the first request from the client in its response to the client,
3757//    based on the endpoint the request gets sent to. The client then
3758//    presents this on the next and all subsequent requests. The hash of
3759//    this is sufficient to ensure these requests get sent to the same
3760//    endpoint. The cookie is generated by hashing the source and
3761//    destination ports and addresses so that multiple independent HTTP2
3762//    streams on the same connection will independently receive the same
3763//    cookie, even if they arrive at the Envoy simultaneously.
3764type RouteAction_HashPolicy_Cookie struct {
3765	state         protoimpl.MessageState
3766	sizeCache     protoimpl.SizeCache
3767	unknownFields protoimpl.UnknownFields
3768
3769	// The name of the cookie that will be used to obtain the hash key. If the
3770	// cookie is not present and ttl below is not set, no hash will be
3771	// produced.
3772	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3773	// If specified, a cookie with the TTL will be generated if the cookie is
3774	// not present. If the TTL is present and zero, the generated cookie will
3775	// be a session cookie.
3776	Ttl *duration.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"`
3777	// The name of the path for the cookie. If no path is specified here, no path
3778	// will be set for the cookie.
3779	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
3780}
3781
3782func (x *RouteAction_HashPolicy_Cookie) Reset() {
3783	*x = RouteAction_HashPolicy_Cookie{}
3784	if protoimpl.UnsafeEnabled {
3785		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[30]
3786		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3787		ms.StoreMessageInfo(mi)
3788	}
3789}
3790
3791func (x *RouteAction_HashPolicy_Cookie) String() string {
3792	return protoimpl.X.MessageStringOf(x)
3793}
3794
3795func (*RouteAction_HashPolicy_Cookie) ProtoMessage() {}
3796
3797func (x *RouteAction_HashPolicy_Cookie) ProtoReflect() protoreflect.Message {
3798	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[30]
3799	if protoimpl.UnsafeEnabled && x != nil {
3800		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3801		if ms.LoadMessageInfo() == nil {
3802			ms.StoreMessageInfo(mi)
3803		}
3804		return ms
3805	}
3806	return mi.MessageOf(x)
3807}
3808
3809// Deprecated: Use RouteAction_HashPolicy_Cookie.ProtoReflect.Descriptor instead.
3810func (*RouteAction_HashPolicy_Cookie) Descriptor() ([]byte, []int) {
3811	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1, 1}
3812}
3813
3814func (x *RouteAction_HashPolicy_Cookie) GetName() string {
3815	if x != nil {
3816		return x.Name
3817	}
3818	return ""
3819}
3820
3821func (x *RouteAction_HashPolicy_Cookie) GetTtl() *duration.Duration {
3822	if x != nil {
3823		return x.Ttl
3824	}
3825	return nil
3826}
3827
3828func (x *RouteAction_HashPolicy_Cookie) GetPath() string {
3829	if x != nil {
3830		return x.Path
3831	}
3832	return ""
3833}
3834
3835type RouteAction_HashPolicy_ConnectionProperties struct {
3836	state         protoimpl.MessageState
3837	sizeCache     protoimpl.SizeCache
3838	unknownFields protoimpl.UnknownFields
3839
3840	// Hash on source IP address.
3841	SourceIp bool `protobuf:"varint,1,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"`
3842}
3843
3844func (x *RouteAction_HashPolicy_ConnectionProperties) Reset() {
3845	*x = RouteAction_HashPolicy_ConnectionProperties{}
3846	if protoimpl.UnsafeEnabled {
3847		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[31]
3848		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3849		ms.StoreMessageInfo(mi)
3850	}
3851}
3852
3853func (x *RouteAction_HashPolicy_ConnectionProperties) String() string {
3854	return protoimpl.X.MessageStringOf(x)
3855}
3856
3857func (*RouteAction_HashPolicy_ConnectionProperties) ProtoMessage() {}
3858
3859func (x *RouteAction_HashPolicy_ConnectionProperties) ProtoReflect() protoreflect.Message {
3860	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[31]
3861	if protoimpl.UnsafeEnabled && x != nil {
3862		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3863		if ms.LoadMessageInfo() == nil {
3864			ms.StoreMessageInfo(mi)
3865		}
3866		return ms
3867	}
3868	return mi.MessageOf(x)
3869}
3870
3871// Deprecated: Use RouteAction_HashPolicy_ConnectionProperties.ProtoReflect.Descriptor instead.
3872func (*RouteAction_HashPolicy_ConnectionProperties) Descriptor() ([]byte, []int) {
3873	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1, 2}
3874}
3875
3876func (x *RouteAction_HashPolicy_ConnectionProperties) GetSourceIp() bool {
3877	if x != nil {
3878		return x.SourceIp
3879	}
3880	return false
3881}
3882
3883type RouteAction_HashPolicy_QueryParameter struct {
3884	state         protoimpl.MessageState
3885	sizeCache     protoimpl.SizeCache
3886	unknownFields protoimpl.UnknownFields
3887
3888	// The name of the URL query parameter that will be used to obtain the hash
3889	// key. If the parameter is not present, no hash will be produced. Query
3890	// parameter names are case-sensitive.
3891	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3892}
3893
3894func (x *RouteAction_HashPolicy_QueryParameter) Reset() {
3895	*x = RouteAction_HashPolicy_QueryParameter{}
3896	if protoimpl.UnsafeEnabled {
3897		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[32]
3898		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3899		ms.StoreMessageInfo(mi)
3900	}
3901}
3902
3903func (x *RouteAction_HashPolicy_QueryParameter) String() string {
3904	return protoimpl.X.MessageStringOf(x)
3905}
3906
3907func (*RouteAction_HashPolicy_QueryParameter) ProtoMessage() {}
3908
3909func (x *RouteAction_HashPolicy_QueryParameter) ProtoReflect() protoreflect.Message {
3910	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[32]
3911	if protoimpl.UnsafeEnabled && x != nil {
3912		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3913		if ms.LoadMessageInfo() == nil {
3914			ms.StoreMessageInfo(mi)
3915		}
3916		return ms
3917	}
3918	return mi.MessageOf(x)
3919}
3920
3921// Deprecated: Use RouteAction_HashPolicy_QueryParameter.ProtoReflect.Descriptor instead.
3922func (*RouteAction_HashPolicy_QueryParameter) Descriptor() ([]byte, []int) {
3923	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1, 3}
3924}
3925
3926func (x *RouteAction_HashPolicy_QueryParameter) GetName() string {
3927	if x != nil {
3928		return x.Name
3929	}
3930	return ""
3931}
3932
3933type RouteAction_HashPolicy_FilterState struct {
3934	state         protoimpl.MessageState
3935	sizeCache     protoimpl.SizeCache
3936	unknownFields protoimpl.UnknownFields
3937
3938	// The name of the Object in the per-request filterState, which is an
3939	// Envoy::Hashable object. If there is no data associated with the key,
3940	// or the stored object is not Envoy::Hashable, no hash will be produced.
3941	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
3942}
3943
3944func (x *RouteAction_HashPolicy_FilterState) Reset() {
3945	*x = RouteAction_HashPolicy_FilterState{}
3946	if protoimpl.UnsafeEnabled {
3947		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[33]
3948		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3949		ms.StoreMessageInfo(mi)
3950	}
3951}
3952
3953func (x *RouteAction_HashPolicy_FilterState) String() string {
3954	return protoimpl.X.MessageStringOf(x)
3955}
3956
3957func (*RouteAction_HashPolicy_FilterState) ProtoMessage() {}
3958
3959func (x *RouteAction_HashPolicy_FilterState) ProtoReflect() protoreflect.Message {
3960	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[33]
3961	if protoimpl.UnsafeEnabled && x != nil {
3962		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3963		if ms.LoadMessageInfo() == nil {
3964			ms.StoreMessageInfo(mi)
3965		}
3966		return ms
3967	}
3968	return mi.MessageOf(x)
3969}
3970
3971// Deprecated: Use RouteAction_HashPolicy_FilterState.ProtoReflect.Descriptor instead.
3972func (*RouteAction_HashPolicy_FilterState) Descriptor() ([]byte, []int) {
3973	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{6, 1, 4}
3974}
3975
3976func (x *RouteAction_HashPolicy_FilterState) GetKey() string {
3977	if x != nil {
3978		return x.Key
3979	}
3980	return ""
3981}
3982
3983type RetryPolicy_RetryPriority struct {
3984	state         protoimpl.MessageState
3985	sizeCache     protoimpl.SizeCache
3986	unknownFields protoimpl.UnknownFields
3987
3988	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3989	// Types that are assignable to ConfigType:
3990	//	*RetryPolicy_RetryPriority_Config
3991	//	*RetryPolicy_RetryPriority_TypedConfig
3992	ConfigType isRetryPolicy_RetryPriority_ConfigType `protobuf_oneof:"config_type"`
3993}
3994
3995func (x *RetryPolicy_RetryPriority) Reset() {
3996	*x = RetryPolicy_RetryPriority{}
3997	if protoimpl.UnsafeEnabled {
3998		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[34]
3999		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4000		ms.StoreMessageInfo(mi)
4001	}
4002}
4003
4004func (x *RetryPolicy_RetryPriority) String() string {
4005	return protoimpl.X.MessageStringOf(x)
4006}
4007
4008func (*RetryPolicy_RetryPriority) ProtoMessage() {}
4009
4010func (x *RetryPolicy_RetryPriority) ProtoReflect() protoreflect.Message {
4011	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[34]
4012	if protoimpl.UnsafeEnabled && x != nil {
4013		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4014		if ms.LoadMessageInfo() == nil {
4015			ms.StoreMessageInfo(mi)
4016		}
4017		return ms
4018	}
4019	return mi.MessageOf(x)
4020}
4021
4022// Deprecated: Use RetryPolicy_RetryPriority.ProtoReflect.Descriptor instead.
4023func (*RetryPolicy_RetryPriority) Descriptor() ([]byte, []int) {
4024	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{7, 0}
4025}
4026
4027func (x *RetryPolicy_RetryPriority) GetName() string {
4028	if x != nil {
4029		return x.Name
4030	}
4031	return ""
4032}
4033
4034func (m *RetryPolicy_RetryPriority) GetConfigType() isRetryPolicy_RetryPriority_ConfigType {
4035	if m != nil {
4036		return m.ConfigType
4037	}
4038	return nil
4039}
4040
4041// Deprecated: Do not use.
4042func (x *RetryPolicy_RetryPriority) GetConfig() *_struct.Struct {
4043	if x, ok := x.GetConfigType().(*RetryPolicy_RetryPriority_Config); ok {
4044		return x.Config
4045	}
4046	return nil
4047}
4048
4049func (x *RetryPolicy_RetryPriority) GetTypedConfig() *any.Any {
4050	if x, ok := x.GetConfigType().(*RetryPolicy_RetryPriority_TypedConfig); ok {
4051		return x.TypedConfig
4052	}
4053	return nil
4054}
4055
4056type isRetryPolicy_RetryPriority_ConfigType interface {
4057	isRetryPolicy_RetryPriority_ConfigType()
4058}
4059
4060type RetryPolicy_RetryPriority_Config struct {
4061	// Deprecated: Do not use.
4062	Config *_struct.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
4063}
4064
4065type RetryPolicy_RetryPriority_TypedConfig struct {
4066	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
4067}
4068
4069func (*RetryPolicy_RetryPriority_Config) isRetryPolicy_RetryPriority_ConfigType() {}
4070
4071func (*RetryPolicy_RetryPriority_TypedConfig) isRetryPolicy_RetryPriority_ConfigType() {}
4072
4073type RetryPolicy_RetryHostPredicate struct {
4074	state         protoimpl.MessageState
4075	sizeCache     protoimpl.SizeCache
4076	unknownFields protoimpl.UnknownFields
4077
4078	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
4079	// Types that are assignable to ConfigType:
4080	//	*RetryPolicy_RetryHostPredicate_Config
4081	//	*RetryPolicy_RetryHostPredicate_TypedConfig
4082	ConfigType isRetryPolicy_RetryHostPredicate_ConfigType `protobuf_oneof:"config_type"`
4083}
4084
4085func (x *RetryPolicy_RetryHostPredicate) Reset() {
4086	*x = RetryPolicy_RetryHostPredicate{}
4087	if protoimpl.UnsafeEnabled {
4088		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[35]
4089		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4090		ms.StoreMessageInfo(mi)
4091	}
4092}
4093
4094func (x *RetryPolicy_RetryHostPredicate) String() string {
4095	return protoimpl.X.MessageStringOf(x)
4096}
4097
4098func (*RetryPolicy_RetryHostPredicate) ProtoMessage() {}
4099
4100func (x *RetryPolicy_RetryHostPredicate) ProtoReflect() protoreflect.Message {
4101	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[35]
4102	if protoimpl.UnsafeEnabled && x != nil {
4103		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4104		if ms.LoadMessageInfo() == nil {
4105			ms.StoreMessageInfo(mi)
4106		}
4107		return ms
4108	}
4109	return mi.MessageOf(x)
4110}
4111
4112// Deprecated: Use RetryPolicy_RetryHostPredicate.ProtoReflect.Descriptor instead.
4113func (*RetryPolicy_RetryHostPredicate) Descriptor() ([]byte, []int) {
4114	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{7, 1}
4115}
4116
4117func (x *RetryPolicy_RetryHostPredicate) GetName() string {
4118	if x != nil {
4119		return x.Name
4120	}
4121	return ""
4122}
4123
4124func (m *RetryPolicy_RetryHostPredicate) GetConfigType() isRetryPolicy_RetryHostPredicate_ConfigType {
4125	if m != nil {
4126		return m.ConfigType
4127	}
4128	return nil
4129}
4130
4131// Deprecated: Do not use.
4132func (x *RetryPolicy_RetryHostPredicate) GetConfig() *_struct.Struct {
4133	if x, ok := x.GetConfigType().(*RetryPolicy_RetryHostPredicate_Config); ok {
4134		return x.Config
4135	}
4136	return nil
4137}
4138
4139func (x *RetryPolicy_RetryHostPredicate) GetTypedConfig() *any.Any {
4140	if x, ok := x.GetConfigType().(*RetryPolicy_RetryHostPredicate_TypedConfig); ok {
4141		return x.TypedConfig
4142	}
4143	return nil
4144}
4145
4146type isRetryPolicy_RetryHostPredicate_ConfigType interface {
4147	isRetryPolicy_RetryHostPredicate_ConfigType()
4148}
4149
4150type RetryPolicy_RetryHostPredicate_Config struct {
4151	// Deprecated: Do not use.
4152	Config *_struct.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
4153}
4154
4155type RetryPolicy_RetryHostPredicate_TypedConfig struct {
4156	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
4157}
4158
4159func (*RetryPolicy_RetryHostPredicate_Config) isRetryPolicy_RetryHostPredicate_ConfigType() {}
4160
4161func (*RetryPolicy_RetryHostPredicate_TypedConfig) isRetryPolicy_RetryHostPredicate_ConfigType() {}
4162
4163type RetryPolicy_RetryBackOff struct {
4164	state         protoimpl.MessageState
4165	sizeCache     protoimpl.SizeCache
4166	unknownFields protoimpl.UnknownFields
4167
4168	// Specifies the base interval between retries. This parameter is required and must be greater
4169	// than zero. Values less than 1 ms are rounded up to 1 ms.
4170	// See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion of Envoy's
4171	// back-off algorithm.
4172	BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"`
4173	// Specifies the maximum interval between retries. This parameter is optional, but must be
4174	// greater than or equal to the `base_interval` if set. The default is 10 times the
4175	// `base_interval`. See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion
4176	// of Envoy's back-off algorithm.
4177	MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"`
4178}
4179
4180func (x *RetryPolicy_RetryBackOff) Reset() {
4181	*x = RetryPolicy_RetryBackOff{}
4182	if protoimpl.UnsafeEnabled {
4183		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[36]
4184		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4185		ms.StoreMessageInfo(mi)
4186	}
4187}
4188
4189func (x *RetryPolicy_RetryBackOff) String() string {
4190	return protoimpl.X.MessageStringOf(x)
4191}
4192
4193func (*RetryPolicy_RetryBackOff) ProtoMessage() {}
4194
4195func (x *RetryPolicy_RetryBackOff) ProtoReflect() protoreflect.Message {
4196	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[36]
4197	if protoimpl.UnsafeEnabled && x != nil {
4198		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4199		if ms.LoadMessageInfo() == nil {
4200			ms.StoreMessageInfo(mi)
4201		}
4202		return ms
4203	}
4204	return mi.MessageOf(x)
4205}
4206
4207// Deprecated: Use RetryPolicy_RetryBackOff.ProtoReflect.Descriptor instead.
4208func (*RetryPolicy_RetryBackOff) Descriptor() ([]byte, []int) {
4209	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{7, 2}
4210}
4211
4212func (x *RetryPolicy_RetryBackOff) GetBaseInterval() *duration.Duration {
4213	if x != nil {
4214		return x.BaseInterval
4215	}
4216	return nil
4217}
4218
4219func (x *RetryPolicy_RetryBackOff) GetMaxInterval() *duration.Duration {
4220	if x != nil {
4221		return x.MaxInterval
4222	}
4223	return nil
4224}
4225
4226// [#next-free-field: 7]
4227type RateLimit_Action struct {
4228	state         protoimpl.MessageState
4229	sizeCache     protoimpl.SizeCache
4230	unknownFields protoimpl.UnknownFields
4231
4232	// Types that are assignable to ActionSpecifier:
4233	//	*RateLimit_Action_SourceCluster_
4234	//	*RateLimit_Action_DestinationCluster_
4235	//	*RateLimit_Action_RequestHeaders_
4236	//	*RateLimit_Action_RemoteAddress_
4237	//	*RateLimit_Action_GenericKey_
4238	//	*RateLimit_Action_HeaderValueMatch_
4239	ActionSpecifier isRateLimit_Action_ActionSpecifier `protobuf_oneof:"action_specifier"`
4240}
4241
4242func (x *RateLimit_Action) Reset() {
4243	*x = RateLimit_Action{}
4244	if protoimpl.UnsafeEnabled {
4245		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[37]
4246		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4247		ms.StoreMessageInfo(mi)
4248	}
4249}
4250
4251func (x *RateLimit_Action) String() string {
4252	return protoimpl.X.MessageStringOf(x)
4253}
4254
4255func (*RateLimit_Action) ProtoMessage() {}
4256
4257func (x *RateLimit_Action) ProtoReflect() protoreflect.Message {
4258	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[37]
4259	if protoimpl.UnsafeEnabled && x != nil {
4260		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4261		if ms.LoadMessageInfo() == nil {
4262			ms.StoreMessageInfo(mi)
4263		}
4264		return ms
4265	}
4266	return mi.MessageOf(x)
4267}
4268
4269// Deprecated: Use RateLimit_Action.ProtoReflect.Descriptor instead.
4270func (*RateLimit_Action) Descriptor() ([]byte, []int) {
4271	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0}
4272}
4273
4274func (m *RateLimit_Action) GetActionSpecifier() isRateLimit_Action_ActionSpecifier {
4275	if m != nil {
4276		return m.ActionSpecifier
4277	}
4278	return nil
4279}
4280
4281func (x *RateLimit_Action) GetSourceCluster() *RateLimit_Action_SourceCluster {
4282	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_SourceCluster_); ok {
4283		return x.SourceCluster
4284	}
4285	return nil
4286}
4287
4288func (x *RateLimit_Action) GetDestinationCluster() *RateLimit_Action_DestinationCluster {
4289	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_DestinationCluster_); ok {
4290		return x.DestinationCluster
4291	}
4292	return nil
4293}
4294
4295func (x *RateLimit_Action) GetRequestHeaders() *RateLimit_Action_RequestHeaders {
4296	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_RequestHeaders_); ok {
4297		return x.RequestHeaders
4298	}
4299	return nil
4300}
4301
4302func (x *RateLimit_Action) GetRemoteAddress() *RateLimit_Action_RemoteAddress {
4303	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_RemoteAddress_); ok {
4304		return x.RemoteAddress
4305	}
4306	return nil
4307}
4308
4309func (x *RateLimit_Action) GetGenericKey() *RateLimit_Action_GenericKey {
4310	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_GenericKey_); ok {
4311		return x.GenericKey
4312	}
4313	return nil
4314}
4315
4316func (x *RateLimit_Action) GetHeaderValueMatch() *RateLimit_Action_HeaderValueMatch {
4317	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_HeaderValueMatch_); ok {
4318		return x.HeaderValueMatch
4319	}
4320	return nil
4321}
4322
4323type isRateLimit_Action_ActionSpecifier interface {
4324	isRateLimit_Action_ActionSpecifier()
4325}
4326
4327type RateLimit_Action_SourceCluster_ struct {
4328	// Rate limit on source cluster.
4329	SourceCluster *RateLimit_Action_SourceCluster `protobuf:"bytes,1,opt,name=source_cluster,json=sourceCluster,proto3,oneof"`
4330}
4331
4332type RateLimit_Action_DestinationCluster_ struct {
4333	// Rate limit on destination cluster.
4334	DestinationCluster *RateLimit_Action_DestinationCluster `protobuf:"bytes,2,opt,name=destination_cluster,json=destinationCluster,proto3,oneof"`
4335}
4336
4337type RateLimit_Action_RequestHeaders_ struct {
4338	// Rate limit on request headers.
4339	RequestHeaders *RateLimit_Action_RequestHeaders `protobuf:"bytes,3,opt,name=request_headers,json=requestHeaders,proto3,oneof"`
4340}
4341
4342type RateLimit_Action_RemoteAddress_ struct {
4343	// Rate limit on remote address.
4344	RemoteAddress *RateLimit_Action_RemoteAddress `protobuf:"bytes,4,opt,name=remote_address,json=remoteAddress,proto3,oneof"`
4345}
4346
4347type RateLimit_Action_GenericKey_ struct {
4348	// Rate limit on a generic key.
4349	GenericKey *RateLimit_Action_GenericKey `protobuf:"bytes,5,opt,name=generic_key,json=genericKey,proto3,oneof"`
4350}
4351
4352type RateLimit_Action_HeaderValueMatch_ struct {
4353	// Rate limit on the existence of request headers.
4354	HeaderValueMatch *RateLimit_Action_HeaderValueMatch `protobuf:"bytes,6,opt,name=header_value_match,json=headerValueMatch,proto3,oneof"`
4355}
4356
4357func (*RateLimit_Action_SourceCluster_) isRateLimit_Action_ActionSpecifier() {}
4358
4359func (*RateLimit_Action_DestinationCluster_) isRateLimit_Action_ActionSpecifier() {}
4360
4361func (*RateLimit_Action_RequestHeaders_) isRateLimit_Action_ActionSpecifier() {}
4362
4363func (*RateLimit_Action_RemoteAddress_) isRateLimit_Action_ActionSpecifier() {}
4364
4365func (*RateLimit_Action_GenericKey_) isRateLimit_Action_ActionSpecifier() {}
4366
4367func (*RateLimit_Action_HeaderValueMatch_) isRateLimit_Action_ActionSpecifier() {}
4368
4369// The following descriptor entry is appended to the descriptor:
4370//
4371// .. code-block:: cpp
4372//
4373//   ("source_cluster", "<local service cluster>")
4374//
4375// <local service cluster> is derived from the :option:`--service-cluster` option.
4376type RateLimit_Action_SourceCluster struct {
4377	state         protoimpl.MessageState
4378	sizeCache     protoimpl.SizeCache
4379	unknownFields protoimpl.UnknownFields
4380}
4381
4382func (x *RateLimit_Action_SourceCluster) Reset() {
4383	*x = RateLimit_Action_SourceCluster{}
4384	if protoimpl.UnsafeEnabled {
4385		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[38]
4386		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4387		ms.StoreMessageInfo(mi)
4388	}
4389}
4390
4391func (x *RateLimit_Action_SourceCluster) String() string {
4392	return protoimpl.X.MessageStringOf(x)
4393}
4394
4395func (*RateLimit_Action_SourceCluster) ProtoMessage() {}
4396
4397func (x *RateLimit_Action_SourceCluster) ProtoReflect() protoreflect.Message {
4398	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[38]
4399	if protoimpl.UnsafeEnabled && x != nil {
4400		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4401		if ms.LoadMessageInfo() == nil {
4402			ms.StoreMessageInfo(mi)
4403		}
4404		return ms
4405	}
4406	return mi.MessageOf(x)
4407}
4408
4409// Deprecated: Use RateLimit_Action_SourceCluster.ProtoReflect.Descriptor instead.
4410func (*RateLimit_Action_SourceCluster) Descriptor() ([]byte, []int) {
4411	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 0}
4412}
4413
4414// The following descriptor entry is appended to the descriptor:
4415//
4416// .. code-block:: cpp
4417//
4418//   ("destination_cluster", "<routed target cluster>")
4419//
4420// Once a request matches against a route table rule, a routed cluster is determined by one of
4421// the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>`
4422// settings:
4423//
4424// * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster
4425//   to route to.
4426// * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>`
4427//   chooses a cluster randomly from a set of clusters with attributed weight.
4428// * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which
4429//   header in the request contains the target cluster.
4430type RateLimit_Action_DestinationCluster struct {
4431	state         protoimpl.MessageState
4432	sizeCache     protoimpl.SizeCache
4433	unknownFields protoimpl.UnknownFields
4434}
4435
4436func (x *RateLimit_Action_DestinationCluster) Reset() {
4437	*x = RateLimit_Action_DestinationCluster{}
4438	if protoimpl.UnsafeEnabled {
4439		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[39]
4440		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4441		ms.StoreMessageInfo(mi)
4442	}
4443}
4444
4445func (x *RateLimit_Action_DestinationCluster) String() string {
4446	return protoimpl.X.MessageStringOf(x)
4447}
4448
4449func (*RateLimit_Action_DestinationCluster) ProtoMessage() {}
4450
4451func (x *RateLimit_Action_DestinationCluster) ProtoReflect() protoreflect.Message {
4452	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[39]
4453	if protoimpl.UnsafeEnabled && x != nil {
4454		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4455		if ms.LoadMessageInfo() == nil {
4456			ms.StoreMessageInfo(mi)
4457		}
4458		return ms
4459	}
4460	return mi.MessageOf(x)
4461}
4462
4463// Deprecated: Use RateLimit_Action_DestinationCluster.ProtoReflect.Descriptor instead.
4464func (*RateLimit_Action_DestinationCluster) Descriptor() ([]byte, []int) {
4465	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 1}
4466}
4467
4468// The following descriptor entry is appended when a header contains a key that matches the
4469// *header_name*:
4470//
4471// .. code-block:: cpp
4472//
4473//   ("<descriptor_key>", "<header_value_queried_from_header>")
4474type RateLimit_Action_RequestHeaders struct {
4475	state         protoimpl.MessageState
4476	sizeCache     protoimpl.SizeCache
4477	unknownFields protoimpl.UnknownFields
4478
4479	// The header name to be queried from the request headers. The header’s
4480	// value is used to populate the value of the descriptor entry for the
4481	// descriptor_key.
4482	HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
4483	// The key to use in the descriptor entry.
4484	DescriptorKey string `protobuf:"bytes,2,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"`
4485}
4486
4487func (x *RateLimit_Action_RequestHeaders) Reset() {
4488	*x = RateLimit_Action_RequestHeaders{}
4489	if protoimpl.UnsafeEnabled {
4490		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[40]
4491		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4492		ms.StoreMessageInfo(mi)
4493	}
4494}
4495
4496func (x *RateLimit_Action_RequestHeaders) String() string {
4497	return protoimpl.X.MessageStringOf(x)
4498}
4499
4500func (*RateLimit_Action_RequestHeaders) ProtoMessage() {}
4501
4502func (x *RateLimit_Action_RequestHeaders) ProtoReflect() protoreflect.Message {
4503	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[40]
4504	if protoimpl.UnsafeEnabled && x != nil {
4505		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4506		if ms.LoadMessageInfo() == nil {
4507			ms.StoreMessageInfo(mi)
4508		}
4509		return ms
4510	}
4511	return mi.MessageOf(x)
4512}
4513
4514// Deprecated: Use RateLimit_Action_RequestHeaders.ProtoReflect.Descriptor instead.
4515func (*RateLimit_Action_RequestHeaders) Descriptor() ([]byte, []int) {
4516	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 2}
4517}
4518
4519func (x *RateLimit_Action_RequestHeaders) GetHeaderName() string {
4520	if x != nil {
4521		return x.HeaderName
4522	}
4523	return ""
4524}
4525
4526func (x *RateLimit_Action_RequestHeaders) GetDescriptorKey() string {
4527	if x != nil {
4528		return x.DescriptorKey
4529	}
4530	return ""
4531}
4532
4533// The following descriptor entry is appended to the descriptor and is populated using the
4534// trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
4535//
4536// .. code-block:: cpp
4537//
4538//   ("remote_address", "<trusted address from x-forwarded-for>")
4539type RateLimit_Action_RemoteAddress struct {
4540	state         protoimpl.MessageState
4541	sizeCache     protoimpl.SizeCache
4542	unknownFields protoimpl.UnknownFields
4543}
4544
4545func (x *RateLimit_Action_RemoteAddress) Reset() {
4546	*x = RateLimit_Action_RemoteAddress{}
4547	if protoimpl.UnsafeEnabled {
4548		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[41]
4549		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4550		ms.StoreMessageInfo(mi)
4551	}
4552}
4553
4554func (x *RateLimit_Action_RemoteAddress) String() string {
4555	return protoimpl.X.MessageStringOf(x)
4556}
4557
4558func (*RateLimit_Action_RemoteAddress) ProtoMessage() {}
4559
4560func (x *RateLimit_Action_RemoteAddress) ProtoReflect() protoreflect.Message {
4561	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[41]
4562	if protoimpl.UnsafeEnabled && x != nil {
4563		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4564		if ms.LoadMessageInfo() == nil {
4565			ms.StoreMessageInfo(mi)
4566		}
4567		return ms
4568	}
4569	return mi.MessageOf(x)
4570}
4571
4572// Deprecated: Use RateLimit_Action_RemoteAddress.ProtoReflect.Descriptor instead.
4573func (*RateLimit_Action_RemoteAddress) Descriptor() ([]byte, []int) {
4574	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 3}
4575}
4576
4577// The following descriptor entry is appended to the descriptor:
4578//
4579// .. code-block:: cpp
4580//
4581//   ("generic_key", "<descriptor_value>")
4582type RateLimit_Action_GenericKey struct {
4583	state         protoimpl.MessageState
4584	sizeCache     protoimpl.SizeCache
4585	unknownFields protoimpl.UnknownFields
4586
4587	// The value to use in the descriptor entry.
4588	DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"`
4589}
4590
4591func (x *RateLimit_Action_GenericKey) Reset() {
4592	*x = RateLimit_Action_GenericKey{}
4593	if protoimpl.UnsafeEnabled {
4594		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[42]
4595		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4596		ms.StoreMessageInfo(mi)
4597	}
4598}
4599
4600func (x *RateLimit_Action_GenericKey) String() string {
4601	return protoimpl.X.MessageStringOf(x)
4602}
4603
4604func (*RateLimit_Action_GenericKey) ProtoMessage() {}
4605
4606func (x *RateLimit_Action_GenericKey) ProtoReflect() protoreflect.Message {
4607	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[42]
4608	if protoimpl.UnsafeEnabled && x != nil {
4609		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4610		if ms.LoadMessageInfo() == nil {
4611			ms.StoreMessageInfo(mi)
4612		}
4613		return ms
4614	}
4615	return mi.MessageOf(x)
4616}
4617
4618// Deprecated: Use RateLimit_Action_GenericKey.ProtoReflect.Descriptor instead.
4619func (*RateLimit_Action_GenericKey) Descriptor() ([]byte, []int) {
4620	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 4}
4621}
4622
4623func (x *RateLimit_Action_GenericKey) GetDescriptorValue() string {
4624	if x != nil {
4625		return x.DescriptorValue
4626	}
4627	return ""
4628}
4629
4630// The following descriptor entry is appended to the descriptor:
4631//
4632// .. code-block:: cpp
4633//
4634//   ("header_match", "<descriptor_value>")
4635type RateLimit_Action_HeaderValueMatch struct {
4636	state         protoimpl.MessageState
4637	sizeCache     protoimpl.SizeCache
4638	unknownFields protoimpl.UnknownFields
4639
4640	// The value to use in the descriptor entry.
4641	DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"`
4642	// If set to true, the action will append a descriptor entry when the
4643	// request matches the headers. If set to false, the action will append a
4644	// descriptor entry when the request does not match the headers. The
4645	// default value is true.
4646	ExpectMatch *wrappers.BoolValue `protobuf:"bytes,2,opt,name=expect_match,json=expectMatch,proto3" json:"expect_match,omitempty"`
4647	// Specifies a set of headers that the rate limit action should match
4648	// on. The action will check the request’s headers against all the
4649	// specified headers in the config. A match will happen if all the
4650	// headers in the config are present in the request with the same values
4651	// (or based on presence if the value field is not in the config).
4652	Headers []*HeaderMatcher `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"`
4653}
4654
4655func (x *RateLimit_Action_HeaderValueMatch) Reset() {
4656	*x = RateLimit_Action_HeaderValueMatch{}
4657	if protoimpl.UnsafeEnabled {
4658		mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[43]
4659		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4660		ms.StoreMessageInfo(mi)
4661	}
4662}
4663
4664func (x *RateLimit_Action_HeaderValueMatch) String() string {
4665	return protoimpl.X.MessageStringOf(x)
4666}
4667
4668func (*RateLimit_Action_HeaderValueMatch) ProtoMessage() {}
4669
4670func (x *RateLimit_Action_HeaderValueMatch) ProtoReflect() protoreflect.Message {
4671	mi := &file_envoy_api_v2_route_route_components_proto_msgTypes[43]
4672	if protoimpl.UnsafeEnabled && x != nil {
4673		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4674		if ms.LoadMessageInfo() == nil {
4675			ms.StoreMessageInfo(mi)
4676		}
4677		return ms
4678	}
4679	return mi.MessageOf(x)
4680}
4681
4682// Deprecated: Use RateLimit_Action_HeaderValueMatch.ProtoReflect.Descriptor instead.
4683func (*RateLimit_Action_HeaderValueMatch) Descriptor() ([]byte, []int) {
4684	return file_envoy_api_v2_route_route_components_proto_rawDescGZIP(), []int{14, 0, 5}
4685}
4686
4687func (x *RateLimit_Action_HeaderValueMatch) GetDescriptorValue() string {
4688	if x != nil {
4689		return x.DescriptorValue
4690	}
4691	return ""
4692}
4693
4694func (x *RateLimit_Action_HeaderValueMatch) GetExpectMatch() *wrappers.BoolValue {
4695	if x != nil {
4696		return x.ExpectMatch
4697	}
4698	return nil
4699}
4700
4701func (x *RateLimit_Action_HeaderValueMatch) GetHeaders() []*HeaderMatcher {
4702	if x != nil {
4703		return x.Headers
4704	}
4705	return nil
4706}
4707
4708var File_envoy_api_v2_route_route_components_proto protoreflect.FileDescriptor
4709
4710var file_envoy_api_v2_route_route_components_proto_rawDesc = []byte{
4711	0x0a, 0x29, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x72,
4712	0x6f, 0x75, 0x74, 0x65, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
4713	0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x65, 0x6e, 0x76,
4714	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x1a,
4715	0x1c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f,
4716	0x72, 0x65, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x65,
4717	0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65,
4718	0x72, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x65,
4719	0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65,
4720	0x72, 0x2f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18,
4721	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x65,
4722	0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f,
4723	0x74, 0x79, 0x70, 0x65, 0x2f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
4724	0x1a, 0x26, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x74, 0x72, 0x61,
4725	0x63, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74,
4726	0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4727	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
4728	0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
4729	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
4730	0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
4731	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
4732	0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
4733	0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
4734	0x6f, 0x1a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
4735	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
4736	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e,
4737	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65,
4738	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e,
4739	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e,
4740	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f,
4741	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91,
4742	0x0d, 0x0a, 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1b,
4743	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
4744	0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x64,
4745	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x12, 0xfa, 0x42,
4746	0x0f, 0x92, 0x01, 0x0c, 0x08, 0x01, 0x22, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00,
4747	0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75,
4748	0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
4749	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52,
4750	0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0b,
4751	0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
4752	0x0e, 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,
4753	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f,
4754	0x73, 0x74, 0x2e, 0x54, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e,
4755	0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52,
4756	0x0a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x10, 0x76,
4757	0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18,
4758	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70,
4759	0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75,
4760	0x61, 0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75,
4761	0x61, 0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x72, 0x61,
4762	0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
4763	0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
4764	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0a,
4765	0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x16, 0x72, 0x65,
4766	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f,
4767	0x5f, 0x61, 0x64, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76,
4768	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48,
4769	0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
4770	0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x13, 0x72, 0x65, 0x71,
4771	0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64,
4772	0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64,
4773	0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x0d, 0x20,
4774	0x03, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
4775	0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x72,
4776	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f,
4777	0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65,
4778	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65,
4779	0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69,
4780	0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x14, 0x72,
4781	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f,
4782	0x41, 0x64, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
4783	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
4784	0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
4785	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
4786	0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
4787	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f,
4788	0x75, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x04,
4789	0x63, 0x6f, 0x72, 0x73, 0x12, 0x64, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74,
4790	0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
4791	0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
4792	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74,
4793	0x2e, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
4794	0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x46, 0x69,
4795	0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x17, 0x74, 0x79,
4796	0x70, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63,
4797	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x65, 0x6e,
4798	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
4799	0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70,
4800	0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
4801	0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x74, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72,
4802	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x1d,
4803	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
4804	0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20,
4805	0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
4806	0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
4807	0x48, 0x0a, 0x21, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d,
4808	0x70, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70,
4809	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x69, 0x6e, 0x63, 0x6c,
4810	0x75, 0x64, 0x65, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49,
4811	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x72, 0x65, 0x74,
4812	0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32,
4813	0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
4814	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
4815	0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4f, 0x0a,
4816	0x19, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x74, 0x79,
4817	0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b,
4818	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
4819	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c,
4820	0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42,
4821	0x0a, 0x0c, 0x68, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x11,
4822	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
4823	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50,
4824	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x68, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69,
4825	0x63, 0x79, 0x12, 0x60, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
4826	0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62,
4827	0x79, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
4828	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e,
4829	0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x70, 0x65, 0x72, 0x52, 0x65, 0x71,
4830	0x75, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42,
4831	0x79, 0x74, 0x65, 0x73, 0x1a, 0x5b, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
4832	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
4833	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d,
4834	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
4835	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
4836	0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
4837	0x01, 0x1a, 0x5d, 0x0a, 0x19, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c,
4838	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
4839	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
4840	0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
4841	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
4842	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
4843	0x22, 0x3a, 0x0a, 0x12, 0x54, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
4844	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
4845	0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4f, 0x4e, 0x4c,
4846	0x59, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x09,
4847	0x10, 0x0a, 0x22, 0x3c, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69,
4848	0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
4849	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
4850	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
4851	0x22, 0xe6, 0x0a, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
4852	0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e,
4853	0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
4854	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
4855	0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa,
4856	0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37,
4857	0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
4858	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
4859	0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
4860	0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72,
4861	0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
4862	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52,
4863	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
4864	0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x69, 0x72,
4865	0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01,
4866	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
4867	0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65,
4868	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e,
4869	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47,
4870	0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
4871	0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70,
4872	0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
4873	0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65,
4874	0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
4875	0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
4876	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4d, 0x65,
4877	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
4878	0x12, 0x3b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20,
4879	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
4880	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74,
4881	0x6f, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5e, 0x0a,
4882	0x11, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
4883	0x69, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
4884	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f,
4885	0x75, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
4886	0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x70, 0x65,
4887	0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6a, 0x0a,
4888	0x17, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
4889	0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33,
4890	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f,
4891	0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50,
4892	0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e,
4893	0x74, 0x72, 0x79, 0x52, 0x14, 0x74, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c,
4894	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x64, 0x0a, 0x16, 0x72, 0x65, 0x71,
4895	0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f,
4896	0x61, 0x64, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
4897	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65,
4898	0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42,
4899	0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75,
4900	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12,
4901	0x39, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
4902	0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x03,
4903	0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
4904	0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x72, 0x65,
4905	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74,
4906	0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
4907	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
4908	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
4909	0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x14, 0x72, 0x65,
4910	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41,
4911	0x64, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68,
4912	0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
4913	0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
4914	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12,
4915	0x35, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b,
4916	0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
4917	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x74,
4918	0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x60, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65,
4919	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d,
4920	0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
4921	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
4922	0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x70, 0x65,
4923	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x69,
4924	0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x5b, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x46,
4925	0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79,
4926	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
4927	0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
4928	0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
4929	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
4930	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x19, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65,
4931	0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74,
4932	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
4933	0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
4934	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
4935	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
4936	0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x03,
4937	0xf8, 0x42, 0x01, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x90, 0x09, 0x0a, 0x0f, 0x57, 0x65,
4938	0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x57, 0x0a,
4939	0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
4940	0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
4941	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75,
4942	0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67,
4943	0x68, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x08, 0x63, 0x6c,
4944	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
4945	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
4946	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
4947	0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a,
4948	0x02, 0x28, 0x01, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
4949	0x12, 0x2c, 0x0a, 0x12, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f,
4950	0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x75,
4951	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0xab,
4952	0x07, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
4953	0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
4954	0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a,
4955	0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
4956	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
4957	0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x77, 0x65, 0x69,
4958	0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f,
4959	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e,
4960	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
4961	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
4962	0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x64, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65,
4963	0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64,
4964	0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
4965	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64,
4966	0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa,
4967	0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
4968	0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x39, 0x0a,
4969	0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
4970	0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09,
4971	0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
4972	0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x70,
4973	0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f,
4974	0x61, 0x64, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
4975	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65,
4976	0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42,
4977	0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x14, 0x72, 0x65, 0x73, 0x70,
4978	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64,
4979	0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61,
4980	0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x06,
4981	0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,
4982	0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x76, 0x0a,
4983	0x11, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
4984	0x69, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
4985	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65,
4986	0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c,
4987	0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x46,
4988	0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79,
4989	0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43,
4990	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f,
4991	0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
4992	0x67, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
4993	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65, 0x69,
4994	0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75,
4995	0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64,
4996	0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45,
4997	0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x74, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69,
4998	0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x5b, 0x0a, 0x14, 0x50, 0x65,
4999	0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74,
5000	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
5001	0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
5002	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5003	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61,
5004	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x19, 0x54, 0x79, 0x70, 0x65, 0x64,
5005	0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45,
5006	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
5007	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
5008	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
5009	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c,
5010	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0xc8, 0x06, 0x0a,
5011	0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x06, 0x70,
5012	0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70,
5013	0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
5014	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x72,
5015	0x65, 0x67, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0x18, 0x01, 0xfa, 0x42,
5016	0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x05,
5017	0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x4b, 0x0a, 0x0a, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x72, 0x65,
5018	0x67, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
5019	0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x52,
5020	0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05,
5021	0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x61, 0x66, 0x65, 0x52, 0x65, 0x67,
5022	0x65, 0x78, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69,
5023	0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
5024	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f,
5025	0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73,
5026	0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
5027	0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
5028	0x2b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63,
5029	0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74,
5030	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x72, 0x75,
5031	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a,
5032	0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
5033	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f,
5034	0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
5035	0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x10, 0x71, 0x75,
5036	0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07,
5037	0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
5038	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
5039	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52,
5040	0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,
5041	0x12, 0x48, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
5042	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f,
5043	0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x47,
5044	0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74,
5045	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x12, 0x56, 0x0a, 0x0b, 0x74, 0x6c,
5046	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
5047	0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
5048	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e,
5049	0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f,
5050	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65,
5051	0x78, 0x74, 0x1a, 0x17, 0x0a, 0x15, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d,
5052	0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x16,
5053	0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f,
5054	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
5055	0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
5056	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
5057	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64,
5058	0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20,
5059	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5060	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
5061	0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x0e, 0x70, 0x61,
5062	0x74, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42,
5063	0x01, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xaa, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x72, 0x73,
5064	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
5065	0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0x18, 0x01,
5066	0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69,
5067	0x67, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69,
5068	0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42,
5069	0x0f, 0x18, 0x01, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08,
5070	0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x67,
5071	0x65, 0x78, 0x12, 0x5c, 0x0a, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69, 0x67,
5072	0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18,
5073	0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79,
5074	0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
5075	0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f,
5076	0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68,
5077	0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
5078	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x65,
5079	0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x68,
5080	0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c,
5081	0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78,
5082	0x70, 0x6f, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01,
5083	0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
5084	0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01,
5085	0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x61, 0x6c,
5086	0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18,
5087	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
5088	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
5089	0x65, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
5090	0x61, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07,
5091	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
5092	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
5093	0x42, 0x08, 0x18, 0x01, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e,
5094	0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f,
5095	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e,
5096	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72,
5097	0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f,
5098	0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69,
5099	0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0e, 0x73,
5100	0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20,
5101	0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5102	0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46,
5103	0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
5104	0x52, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42,
5105	0x13, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69,
5106	0x66, 0x69, 0x65, 0x72, 0x22, 0xfb, 0x1b, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63,
5107	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18,
5108	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x48, 0x00,
5109	0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0e, 0x63, 0x6c, 0x75,
5110	0x73, 0x74, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
5111	0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00,
5112	0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65,
5113	0x72, 0x12, 0x52, 0x0a, 0x11, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c,
5114	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65,
5115	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74,
5116	0x65, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
5117	0x72, 0x48, 0x00, 0x52, 0x10, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75,
5118	0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x1f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
5119	0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70,
5120	0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32,
5121	0x3b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
5122	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5123	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64,
5124	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42,
5125	0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x1b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
5126	0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
5127	0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f,
5128	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e,
5129	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
5130	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
5131	0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x32, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69,
5132	0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42,
5133	0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x0d, 0x70, 0x72,
5134	0x65, 0x66, 0x69, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x72,
5135	0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x20, 0x20, 0x01,
5136	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
5137	0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74,
5138	0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x52,
5139	0x0c, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x4c, 0x0a,
5140	0x0c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20,
5141	0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00,
5142	0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x16, 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77,
5143	0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x01, 0x52, 0x0b,
5144	0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x61,
5145	0x75, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65,
5146	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5147	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
5148	0x75, 0x65, 0x48, 0x01, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65,
5149	0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x68, 0x6f,
5150	0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
5151	0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01,
5152	0x01, 0xc8, 0x01, 0x00, 0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x15, 0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74,
5153	0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48,
5154	0x01, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69,
5155	0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65,
5156	0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
5157	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
5158	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x3c, 0x0a,
5159	0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x18, 0x20,
5160	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5161	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b,
5162	0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x72,
5163	0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28,
5164	0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,
5165	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69,
5166	0x63, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
5167	0x4f, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f,
5168	0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x21, 0x20, 0x01,
5169	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
5170	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50,
5171	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
5172	0x12, 0x6b, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x72, 0x72,
5173	0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
5174	0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
5175	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5176	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f,
5177	0x6c, 0x69, 0x63, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
5178	0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x6b, 0x0a,
5179	0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f,
5180	0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33,
5181	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f,
5182	0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5183	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c,
5184	0x69, 0x63, 0x79, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72,
5185	0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x08, 0x70, 0x72,
5186	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65,
5187	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65,
5188	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
5189	0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f,
5190	0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d,
5191	0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
5192	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52,
5193	0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69,
5194	0x6d, 0x69, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f,
5195	0x76, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0e,
5196	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
5197	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
5198	0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x56, 0x68, 0x52, 0x61, 0x74, 0x65, 0x4c,
5199	0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x6f,
5200	0x6c, 0x69, 0x63, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6e, 0x76,
5201	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
5202	0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68,
5203	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69,
5204	0x63, 0x79, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b,
5205	0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
5206	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
5207	0x52, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72,
5208	0x70, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
5209	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
5210	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78,
5211	0x47, 0x72, 0x70, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x13, 0x67,
5212	0x72, 0x70, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73,
5213	0x65, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5214	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
5215	0x69, 0x6f, 0x6e, 0x52, 0x11, 0x67, 0x72, 0x70, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
5216	0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x56, 0x0a, 0x0f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64,
5217	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32,
5218	0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
5219	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5220	0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e,
5221	0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x70,
5222	0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72,
5223	0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e,
5224	0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
5225	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f,
5226	0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
5227	0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
5228	0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5229	0x12, 0x52, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
5230	0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b,
5231	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
5232	0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14,
5233	0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72,
5234	0x65, 0x63, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x68, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f,
5235	0x6c, 0x69, 0x63, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76,
5236	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
5237	0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x68, 0x65, 0x64,
5238	0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0xfc, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x71,
5239	0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
5240	0x12, 0x21, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
5241	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73,
5242	0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6b,
5243	0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0x18, 0x01, 0xb8, 0xee, 0xf2, 0xd2,
5244	0x05, 0x01, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x56,
5245	0x0a, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69,
5246	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
5247	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e,
5248	0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65,
5249	0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72,
5250	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f,
5251	0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
5252	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
5253	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65,
5254	0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x1a, 0xc6, 0x06, 0x0a, 0x0a, 0x48, 0x61, 0x73, 0x68,
5255	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
5256	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
5257	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74,
5258	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69,
5259	0x63, 0x79, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61,
5260	0x64, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20,
5261	0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5262	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63,
5263	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e,
5264	0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65,
5265	0x12, 0x76, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
5266	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
5267	0x3f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
5268	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5269	0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x6e,
5270	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
5271	0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72,
5272	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72,
5273	0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
5274	0x0b, 0x32, 0x39, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,
5275	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69,
5276	0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x51, 0x75,
5277	0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e,
5278	0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x5b,
5279	0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06,
5280	0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
5281	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41,
5282	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
5283	0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b,
5284	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74,
5285	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74,
5286	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x1a, 0x38, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65,
5287	0x72, 0x12, 0x2e, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
5288	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, 0x01, 0xc0,
5289	0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d,
5290	0x65, 0x1a, 0x66, 0x0a, 0x06, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6e,
5291	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
5292	0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18,
5293	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
5294	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
5295	0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20,
5296	0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x33, 0x0a, 0x14, 0x43, 0x6f, 0x6e,
5297	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
5298	0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01,
5299	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x1a, 0x2d,
5300	0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
5301	0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
5302	0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x28, 0x0a,
5303	0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x03,
5304	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
5305	0x20, 0x01, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x17, 0x0a, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63,
5306	0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01,
5307	0x1a, 0x75, 0x0a, 0x0d, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
5308	0x67, 0x12, 0x2e, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70,
5309	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01,
5310	0x02, 0xc8, 0x01, 0x00, 0x52, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70,
5311	0x65, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
5312	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
5313	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07,
5314	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x45, 0x0a, 0x1b, 0x43, 0x6c, 0x75, 0x73, 0x74,
5315	0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
5316	0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43,
5317	0x45, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12,
5318	0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x22, 0x5a,
5319	0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
5320	0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x41, 0x53, 0x53,
5321	0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41,
5322	0x4c, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18,
5323	0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f,
5324	0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x42, 0x18, 0x0a, 0x11, 0x63, 0x6c,
5325	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
5326	0x03, 0xf8, 0x42, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77,
5327	0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4a, 0x04,
5328	0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14,
5329	0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x15,
5330	0x10, 0x16, 0x22, 0xf3, 0x09, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69,
5331	0x63, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x6e, 0x18, 0x01,
5332	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x12, 0x3d, 0x0a,
5333	0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01,
5334	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
5335	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
5336	0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0f,
5337	0x70, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
5338	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
5339	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
5340	0x52, 0x0d, 0x70, 0x65, 0x72, 0x54, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
5341	0x54, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
5342	0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
5343	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74,
5344	0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x72,
5345	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69,
5346	0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x68,
5347	0x6f, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20,
5348	0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5349	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f,
5350	0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x72,
5351	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f,
5352	0x73, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x21, 0x68,
5353	0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65,
5354	0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73,
5355	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x68, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65,
5356	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x41, 0x74, 0x74,
5357	0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62,
5358	0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18,
5359	0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
5360	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x72,
5361	0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x08, 0x20,
5362	0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5363	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f,
5364	0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66,
5365	0x66, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x12,
5366	0x4e, 0x0a, 0x11, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x61,
5367	0x64, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76,
5368	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
5369	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x72,
5370	0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12,
5371	0x5d, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71,
5372	0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03,
5373	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
5374	0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61,
5375	0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x17, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
5376	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xad,
5377	0x01, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
5378	0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
5379	0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a,
5380	0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
5381	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
5382	0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f,
5383	0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f,
5384	0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
5385	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
5386	0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42,
5387	0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xb2,
5388	0x01, 0x0a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x65, 0x64,
5389	0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
5390	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61,
5391	0x6d, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01,
5392	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
5393	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x02, 0x18, 0x01, 0x48,
5394	0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70,
5395	0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
5396	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
5397	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f,
5398	0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74,
5399	0x79, 0x70, 0x65, 0x1a, 0xa2, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63,
5400	0x6b, 0x4f, 0x66, 0x66, 0x12, 0x4a, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74,
5401	0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
5402	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
5403	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0xaa, 0x01, 0x04, 0x08, 0x01,
5404	0x2a, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
5405	0x12, 0x46, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
5406	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5407	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
5408	0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78,
5409	0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xf2, 0x01, 0x0a, 0x0b, 0x48, 0x65, 0x64,
5410	0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x50, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74,
5411	0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01,
5412	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
5413	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
5414	0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69,
5415	0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x59, 0x0a, 0x19, 0x61, 0x64,
5416	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
5417	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
5418	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74,
5419	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x61, 0x64,
5420	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43,
5421	0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x18, 0x68, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x6f,
5422	0x6e, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
5423	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x68, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e,
5424	0x50, 0x65, 0x72, 0x54, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xdd, 0x04,
5425	0x0a, 0x0e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5426	0x12, 0x27, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65,
5427	0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70,
5428	0x73, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x63, 0x68,
5429	0x65, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01,
5430	0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x65, 0x64, 0x69,
5431	0x72, 0x65, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x64,
5432	0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08,
5433	0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65,
5434	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72,
5435	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70,
5436	0x6f, 0x72, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x70,
5437	0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01,
5438	0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x48,
5439	0x01, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12,
5440	0x34, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74,
5441	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01,
5442	0x02, 0xc8, 0x01, 0x00, 0x48, 0x01, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65,
5443	0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
5444	0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x65,
5445	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74,
5446	0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
5447	0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
5448	0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52,
5449	0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a,
5450	0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01,
5451	0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x77,
5452	0x0a, 0x14, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
5453	0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f,
5454	0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a,
5455	0x05, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x45, 0x5f,
5456	0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x45, 0x4d, 0x50, 0x4f,
5457	0x52, 0x41, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12,
5458	0x16, 0x0a, 0x12, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x44,
5459	0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x04, 0x42, 0x1a, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x6d,
5460	0x65, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
5461	0x69, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x77, 0x72,
5462	0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x6d, 0x0a,
5463	0x14, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41,
5464	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
5465	0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x10, 0xd8, 0x04, 0x28,
5466	0x64, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x62, 0x6f, 0x64,
5467	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
5468	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61,
5469	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x6c, 0x0a, 0x09,
5470	0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x09, 0x6f, 0x70, 0x65,
5471	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
5472	0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
5473	0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
5474	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
5475	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
5476	0x09, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x07, 0x54,
5477	0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
5478	0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
5479	0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x72, 0x61,
5480	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0e,
5481	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x46,
5482	0x0a, 0x0f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e,
5483	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
5484	0x74, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,
5485	0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61,
5486	0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c,
5487	0x6c, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
5488	0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x72,
5489	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52,
5490	0x0f, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67,
5491	0x12, 0x41, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18,
5492	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79,
5493	0x70, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75,
5494	0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54,
5495	0x61, 0x67, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x0e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43,
5496	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,
5497	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0x18, 0x01, 0xfa, 0x42, 0x05, 0x72, 0x03,
5498	0x28, 0x80, 0x08, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65,
5499	0x72, 0x6e, 0x12, 0x3b, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20,
5500	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5501	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d,
5502	0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12,
5503	0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
5504	0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x06,
5505	0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x65,
5506	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65,
5507	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x08,
5508	0x18, 0x01, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
5509	0x22, 0xd3, 0x09, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b,
5510	0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
5511	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
5512	0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04,
5513	0x2a, 0x02, 0x18, 0x0a, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64,
5514	0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
5515	0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x07,
5516	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
5517	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
5518	0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74,
5519	0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x07, 0x61,
5520	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x9d, 0x08, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f,
5521	0x6e, 0x12, 0x5b, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73,
5522	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
5523	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52,
5524	0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
5525	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52,
5526	0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x6a,
5527	0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c,
5528	0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e,
5529	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
5530	0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f,
5531	0x6e, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75,
5532	0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
5533	0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x0f, 0x72, 0x65,
5534	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20,
5535	0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
5536	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d,
5537	0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
5538	0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75,
5539	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x72, 0x65,
5540	0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01,
5541	0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
5542	0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69,
5543	0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41,
5544	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
5545	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72,
5546	0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65,
5547	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74,
5548	0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69,
5549	0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52,
5550	0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x65, 0x0a, 0x12, 0x68,
5551	0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63,
5552	0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
5553	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74,
5554	0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65,
5555	0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00,
5556	0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x61, 0x74,
5557	0x63, 0x68, 0x1a, 0x0f, 0x0a, 0x0d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73,
5558	0x74, 0x65, 0x72, 0x1a, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
5559	0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x70, 0x0a, 0x0e, 0x52, 0x65, 0x71,
5560	0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x0b, 0x68,
5561	0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
5562	0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52,
5563	0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x0e, 0x64,
5564	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
5565	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x0d, 0x64, 0x65,
5566	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x1a, 0x0f, 0x0a, 0x0d, 0x52,
5567	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x40, 0x0a, 0x0a,
5568	0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x10, 0x64, 0x65,
5569	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,
5570	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x0f, 0x64,
5571	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xcc,
5572	0x01, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x61,
5573	0x74, 0x63, 0x68, 0x12, 0x32, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
5574	0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
5575	0x42, 0x04, 0x72, 0x02, 0x20, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
5576	0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63,
5577	0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
5578	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
5579	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x63,
5580	0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x45, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
5581	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
5582	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x61,
5583	0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92,
5584	0x01, 0x02, 0x08, 0x01, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x17, 0x0a,
5585	0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
5586	0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xdf, 0x03, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x64, 0x65,
5587	0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
5588	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, 0x01, 0xc0,
5589	0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x65,
5590	0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
5591	0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x33,
5592	0x0a, 0x0b, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20,
5593	0x01, 0x28, 0x09, 0x42, 0x10, 0x18, 0x01, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0xb8,
5594	0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61,
5595	0x74, 0x63, 0x68, 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65,
5596	0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
5597	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68,
5598	0x65, 0x72, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48,
5599	0x00, 0x52, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63,
5600	0x68, 0x12, 0x39, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
5601	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74,
5602	0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00,
5603	0x52, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0d,
5604	0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20,
5605	0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x61,
5606	0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6d, 0x61,
5607	0x74, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
5608	0x20, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4d, 0x61, 0x74, 0x63,
5609	0x68, 0x12, 0x2c, 0x0a, 0x0c, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63,
5610	0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x20, 0x01,
5611	0x48, 0x00, 0x52, 0x0b, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
5612	0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18,
5613	0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x4d, 0x61, 0x74,
5614	0x63, 0x68, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74,
5615	0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02,
5616	0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xaf, 0x02, 0x0a, 0x15, 0x51, 0x75, 0x65,
5617	0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68,
5618	0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
5619	0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x20, 0x01, 0x28, 0x80, 0x08, 0x52, 0x04, 0x6e, 0x61,
5620	0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
5621	0x09, 0x42, 0x08, 0x18, 0x01, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c,
5622	0x75, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28,
5623	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
5624	0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x18,
5625	0x01, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x50,
5626	0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05,
5627	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70,
5628	0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
5629	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10,
5630	0x01, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68,
5631	0x12, 0x25, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63,
5632	0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65,
5633	0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x21, 0x0a, 0x1f, 0x71, 0x75, 0x65, 0x72, 0x79,
5634	0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
5635	0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x5f, 0x0a, 0x20, 0x69, 0x6f,
5636	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
5637	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x14,
5638	0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x50,
5639	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x17, 0x12, 0x15, 0x65, 0x6e,
5640	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
5641	0x2e, 0x76, 0x33, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f,
5642	0x74, 0x6f, 0x33,
5643}
5644
5645var (
5646	file_envoy_api_v2_route_route_components_proto_rawDescOnce sync.Once
5647	file_envoy_api_v2_route_route_components_proto_rawDescData = file_envoy_api_v2_route_route_components_proto_rawDesc
5648)
5649
5650func file_envoy_api_v2_route_route_components_proto_rawDescGZIP() []byte {
5651	file_envoy_api_v2_route_route_components_proto_rawDescOnce.Do(func() {
5652		file_envoy_api_v2_route_route_components_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_api_v2_route_route_components_proto_rawDescData)
5653	})
5654	return file_envoy_api_v2_route_route_components_proto_rawDescData
5655}
5656
5657var file_envoy_api_v2_route_route_components_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
5658var file_envoy_api_v2_route_route_components_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
5659var file_envoy_api_v2_route_route_components_proto_goTypes = []interface{}{
5660	(VirtualHost_TlsRequirementType)(0),          // 0: envoy.api.v2.route.VirtualHost.TlsRequirementType
5661	(RouteAction_ClusterNotFoundResponseCode)(0), // 1: envoy.api.v2.route.RouteAction.ClusterNotFoundResponseCode
5662	(RouteAction_InternalRedirectAction)(0),      // 2: envoy.api.v2.route.RouteAction.InternalRedirectAction
5663	(RedirectAction_RedirectResponseCode)(0),     // 3: envoy.api.v2.route.RedirectAction.RedirectResponseCode
5664	(*VirtualHost)(nil),                          // 4: envoy.api.v2.route.VirtualHost
5665	(*FilterAction)(nil),                         // 5: envoy.api.v2.route.FilterAction
5666	(*Route)(nil),                                // 6: envoy.api.v2.route.Route
5667	(*WeightedCluster)(nil),                      // 7: envoy.api.v2.route.WeightedCluster
5668	(*RouteMatch)(nil),                           // 8: envoy.api.v2.route.RouteMatch
5669	(*CorsPolicy)(nil),                           // 9: envoy.api.v2.route.CorsPolicy
5670	(*RouteAction)(nil),                          // 10: envoy.api.v2.route.RouteAction
5671	(*RetryPolicy)(nil),                          // 11: envoy.api.v2.route.RetryPolicy
5672	(*HedgePolicy)(nil),                          // 12: envoy.api.v2.route.HedgePolicy
5673	(*RedirectAction)(nil),                       // 13: envoy.api.v2.route.RedirectAction
5674	(*DirectResponseAction)(nil),                 // 14: envoy.api.v2.route.DirectResponseAction
5675	(*Decorator)(nil),                            // 15: envoy.api.v2.route.Decorator
5676	(*Tracing)(nil),                              // 16: envoy.api.v2.route.Tracing
5677	(*VirtualCluster)(nil),                       // 17: envoy.api.v2.route.VirtualCluster
5678	(*RateLimit)(nil),                            // 18: envoy.api.v2.route.RateLimit
5679	(*HeaderMatcher)(nil),                        // 19: envoy.api.v2.route.HeaderMatcher
5680	(*QueryParameterMatcher)(nil),                // 20: envoy.api.v2.route.QueryParameterMatcher
5681	nil,                                          // 21: envoy.api.v2.route.VirtualHost.PerFilterConfigEntry
5682	nil,                                          // 22: envoy.api.v2.route.VirtualHost.TypedPerFilterConfigEntry
5683	nil,                                          // 23: envoy.api.v2.route.Route.PerFilterConfigEntry
5684	nil,                                          // 24: envoy.api.v2.route.Route.TypedPerFilterConfigEntry
5685	(*WeightedCluster_ClusterWeight)(nil),        // 25: envoy.api.v2.route.WeightedCluster.ClusterWeight
5686	nil,                                          // 26: envoy.api.v2.route.WeightedCluster.ClusterWeight.PerFilterConfigEntry
5687	nil,                                          // 27: envoy.api.v2.route.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry
5688	(*RouteMatch_GrpcRouteMatchOptions)(nil),     // 28: envoy.api.v2.route.RouteMatch.GrpcRouteMatchOptions
5689	(*RouteMatch_TlsContextMatchOptions)(nil),           // 29: envoy.api.v2.route.RouteMatch.TlsContextMatchOptions
5690	(*RouteAction_RequestMirrorPolicy)(nil),             // 30: envoy.api.v2.route.RouteAction.RequestMirrorPolicy
5691	(*RouteAction_HashPolicy)(nil),                      // 31: envoy.api.v2.route.RouteAction.HashPolicy
5692	(*RouteAction_UpgradeConfig)(nil),                   // 32: envoy.api.v2.route.RouteAction.UpgradeConfig
5693	(*RouteAction_HashPolicy_Header)(nil),               // 33: envoy.api.v2.route.RouteAction.HashPolicy.Header
5694	(*RouteAction_HashPolicy_Cookie)(nil),               // 34: envoy.api.v2.route.RouteAction.HashPolicy.Cookie
5695	(*RouteAction_HashPolicy_ConnectionProperties)(nil), // 35: envoy.api.v2.route.RouteAction.HashPolicy.ConnectionProperties
5696	(*RouteAction_HashPolicy_QueryParameter)(nil),       // 36: envoy.api.v2.route.RouteAction.HashPolicy.QueryParameter
5697	(*RouteAction_HashPolicy_FilterState)(nil),          // 37: envoy.api.v2.route.RouteAction.HashPolicy.FilterState
5698	(*RetryPolicy_RetryPriority)(nil),                   // 38: envoy.api.v2.route.RetryPolicy.RetryPriority
5699	(*RetryPolicy_RetryHostPredicate)(nil),              // 39: envoy.api.v2.route.RetryPolicy.RetryHostPredicate
5700	(*RetryPolicy_RetryBackOff)(nil),                    // 40: envoy.api.v2.route.RetryPolicy.RetryBackOff
5701	(*RateLimit_Action)(nil),                            // 41: envoy.api.v2.route.RateLimit.Action
5702	(*RateLimit_Action_SourceCluster)(nil),              // 42: envoy.api.v2.route.RateLimit.Action.SourceCluster
5703	(*RateLimit_Action_DestinationCluster)(nil),         // 43: envoy.api.v2.route.RateLimit.Action.DestinationCluster
5704	(*RateLimit_Action_RequestHeaders)(nil),             // 44: envoy.api.v2.route.RateLimit.Action.RequestHeaders
5705	(*RateLimit_Action_RemoteAddress)(nil),              // 45: envoy.api.v2.route.RateLimit.Action.RemoteAddress
5706	(*RateLimit_Action_GenericKey)(nil),                 // 46: envoy.api.v2.route.RateLimit.Action.GenericKey
5707	(*RateLimit_Action_HeaderValueMatch)(nil),           // 47: envoy.api.v2.route.RateLimit.Action.HeaderValueMatch
5708	(*core.HeaderValueOption)(nil),                      // 48: envoy.api.v2.core.HeaderValueOption
5709	(*any.Any)(nil),                                     // 49: google.protobuf.Any
5710	(*wrappers.UInt32Value)(nil),                        // 50: google.protobuf.UInt32Value
5711	(*core.Metadata)(nil),                               // 51: envoy.api.v2.core.Metadata
5712	(*matcher.RegexMatcher)(nil),                        // 52: envoy.type.matcher.RegexMatcher
5713	(*wrappers.BoolValue)(nil),                          // 53: google.protobuf.BoolValue
5714	(*core.RuntimeFractionalPercent)(nil),               // 54: envoy.api.v2.core.RuntimeFractionalPercent
5715	(*matcher.StringMatcher)(nil),                       // 55: envoy.type.matcher.StringMatcher
5716	(*matcher.RegexMatchAndSubstitute)(nil),             // 56: envoy.type.matcher.RegexMatchAndSubstitute
5717	(*duration.Duration)(nil),                           // 57: google.protobuf.Duration
5718	(core.RoutingPriority)(0),                           // 58: envoy.api.v2.core.RoutingPriority
5719	(*_type.FractionalPercent)(nil),                     // 59: envoy.type.FractionalPercent
5720	(*core.DataSource)(nil),                             // 60: envoy.api.v2.core.DataSource
5721	(*v2.CustomTag)(nil),                                // 61: envoy.type.tracing.v2.CustomTag
5722	(core.RequestMethod)(0),                             // 62: envoy.api.v2.core.RequestMethod
5723	(*_type.Int64Range)(nil),                            // 63: envoy.type.Int64Range
5724	(*_struct.Struct)(nil),                              // 64: google.protobuf.Struct
5725}
5726var file_envoy_api_v2_route_route_components_proto_depIdxs = []int32{
5727	6,   // 0: envoy.api.v2.route.VirtualHost.routes:type_name -> envoy.api.v2.route.Route
5728	0,   // 1: envoy.api.v2.route.VirtualHost.require_tls:type_name -> envoy.api.v2.route.VirtualHost.TlsRequirementType
5729	17,  // 2: envoy.api.v2.route.VirtualHost.virtual_clusters:type_name -> envoy.api.v2.route.VirtualCluster
5730	18,  // 3: envoy.api.v2.route.VirtualHost.rate_limits:type_name -> envoy.api.v2.route.RateLimit
5731	48,  // 4: envoy.api.v2.route.VirtualHost.request_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5732	48,  // 5: envoy.api.v2.route.VirtualHost.response_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5733	9,   // 6: envoy.api.v2.route.VirtualHost.cors:type_name -> envoy.api.v2.route.CorsPolicy
5734	21,  // 7: envoy.api.v2.route.VirtualHost.per_filter_config:type_name -> envoy.api.v2.route.VirtualHost.PerFilterConfigEntry
5735	22,  // 8: envoy.api.v2.route.VirtualHost.typed_per_filter_config:type_name -> envoy.api.v2.route.VirtualHost.TypedPerFilterConfigEntry
5736	11,  // 9: envoy.api.v2.route.VirtualHost.retry_policy:type_name -> envoy.api.v2.route.RetryPolicy
5737	49,  // 10: envoy.api.v2.route.VirtualHost.retry_policy_typed_config:type_name -> google.protobuf.Any
5738	12,  // 11: envoy.api.v2.route.VirtualHost.hedge_policy:type_name -> envoy.api.v2.route.HedgePolicy
5739	50,  // 12: envoy.api.v2.route.VirtualHost.per_request_buffer_limit_bytes:type_name -> google.protobuf.UInt32Value
5740	49,  // 13: envoy.api.v2.route.FilterAction.action:type_name -> google.protobuf.Any
5741	8,   // 14: envoy.api.v2.route.Route.match:type_name -> envoy.api.v2.route.RouteMatch
5742	10,  // 15: envoy.api.v2.route.Route.route:type_name -> envoy.api.v2.route.RouteAction
5743	13,  // 16: envoy.api.v2.route.Route.redirect:type_name -> envoy.api.v2.route.RedirectAction
5744	14,  // 17: envoy.api.v2.route.Route.direct_response:type_name -> envoy.api.v2.route.DirectResponseAction
5745	5,   // 18: envoy.api.v2.route.Route.filter_action:type_name -> envoy.api.v2.route.FilterAction
5746	51,  // 19: envoy.api.v2.route.Route.metadata:type_name -> envoy.api.v2.core.Metadata
5747	15,  // 20: envoy.api.v2.route.Route.decorator:type_name -> envoy.api.v2.route.Decorator
5748	23,  // 21: envoy.api.v2.route.Route.per_filter_config:type_name -> envoy.api.v2.route.Route.PerFilterConfigEntry
5749	24,  // 22: envoy.api.v2.route.Route.typed_per_filter_config:type_name -> envoy.api.v2.route.Route.TypedPerFilterConfigEntry
5750	48,  // 23: envoy.api.v2.route.Route.request_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5751	48,  // 24: envoy.api.v2.route.Route.response_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5752	16,  // 25: envoy.api.v2.route.Route.tracing:type_name -> envoy.api.v2.route.Tracing
5753	50,  // 26: envoy.api.v2.route.Route.per_request_buffer_limit_bytes:type_name -> google.protobuf.UInt32Value
5754	25,  // 27: envoy.api.v2.route.WeightedCluster.clusters:type_name -> envoy.api.v2.route.WeightedCluster.ClusterWeight
5755	50,  // 28: envoy.api.v2.route.WeightedCluster.total_weight:type_name -> google.protobuf.UInt32Value
5756	52,  // 29: envoy.api.v2.route.RouteMatch.safe_regex:type_name -> envoy.type.matcher.RegexMatcher
5757	53,  // 30: envoy.api.v2.route.RouteMatch.case_sensitive:type_name -> google.protobuf.BoolValue
5758	54,  // 31: envoy.api.v2.route.RouteMatch.runtime_fraction:type_name -> envoy.api.v2.core.RuntimeFractionalPercent
5759	19,  // 32: envoy.api.v2.route.RouteMatch.headers:type_name -> envoy.api.v2.route.HeaderMatcher
5760	20,  // 33: envoy.api.v2.route.RouteMatch.query_parameters:type_name -> envoy.api.v2.route.QueryParameterMatcher
5761	28,  // 34: envoy.api.v2.route.RouteMatch.grpc:type_name -> envoy.api.v2.route.RouteMatch.GrpcRouteMatchOptions
5762	29,  // 35: envoy.api.v2.route.RouteMatch.tls_context:type_name -> envoy.api.v2.route.RouteMatch.TlsContextMatchOptions
5763	55,  // 36: envoy.api.v2.route.CorsPolicy.allow_origin_string_match:type_name -> envoy.type.matcher.StringMatcher
5764	53,  // 37: envoy.api.v2.route.CorsPolicy.allow_credentials:type_name -> google.protobuf.BoolValue
5765	53,  // 38: envoy.api.v2.route.CorsPolicy.enabled:type_name -> google.protobuf.BoolValue
5766	54,  // 39: envoy.api.v2.route.CorsPolicy.filter_enabled:type_name -> envoy.api.v2.core.RuntimeFractionalPercent
5767	54,  // 40: envoy.api.v2.route.CorsPolicy.shadow_enabled:type_name -> envoy.api.v2.core.RuntimeFractionalPercent
5768	7,   // 41: envoy.api.v2.route.RouteAction.weighted_clusters:type_name -> envoy.api.v2.route.WeightedCluster
5769	1,   // 42: envoy.api.v2.route.RouteAction.cluster_not_found_response_code:type_name -> envoy.api.v2.route.RouteAction.ClusterNotFoundResponseCode
5770	51,  // 43: envoy.api.v2.route.RouteAction.metadata_match:type_name -> envoy.api.v2.core.Metadata
5771	56,  // 44: envoy.api.v2.route.RouteAction.regex_rewrite:type_name -> envoy.type.matcher.RegexMatchAndSubstitute
5772	53,  // 45: envoy.api.v2.route.RouteAction.auto_host_rewrite:type_name -> google.protobuf.BoolValue
5773	57,  // 46: envoy.api.v2.route.RouteAction.timeout:type_name -> google.protobuf.Duration
5774	57,  // 47: envoy.api.v2.route.RouteAction.idle_timeout:type_name -> google.protobuf.Duration
5775	11,  // 48: envoy.api.v2.route.RouteAction.retry_policy:type_name -> envoy.api.v2.route.RetryPolicy
5776	49,  // 49: envoy.api.v2.route.RouteAction.retry_policy_typed_config:type_name -> google.protobuf.Any
5777	30,  // 50: envoy.api.v2.route.RouteAction.request_mirror_policy:type_name -> envoy.api.v2.route.RouteAction.RequestMirrorPolicy
5778	30,  // 51: envoy.api.v2.route.RouteAction.request_mirror_policies:type_name -> envoy.api.v2.route.RouteAction.RequestMirrorPolicy
5779	58,  // 52: envoy.api.v2.route.RouteAction.priority:type_name -> envoy.api.v2.core.RoutingPriority
5780	18,  // 53: envoy.api.v2.route.RouteAction.rate_limits:type_name -> envoy.api.v2.route.RateLimit
5781	53,  // 54: envoy.api.v2.route.RouteAction.include_vh_rate_limits:type_name -> google.protobuf.BoolValue
5782	31,  // 55: envoy.api.v2.route.RouteAction.hash_policy:type_name -> envoy.api.v2.route.RouteAction.HashPolicy
5783	9,   // 56: envoy.api.v2.route.RouteAction.cors:type_name -> envoy.api.v2.route.CorsPolicy
5784	57,  // 57: envoy.api.v2.route.RouteAction.max_grpc_timeout:type_name -> google.protobuf.Duration
5785	57,  // 58: envoy.api.v2.route.RouteAction.grpc_timeout_offset:type_name -> google.protobuf.Duration
5786	32,  // 59: envoy.api.v2.route.RouteAction.upgrade_configs:type_name -> envoy.api.v2.route.RouteAction.UpgradeConfig
5787	2,   // 60: envoy.api.v2.route.RouteAction.internal_redirect_action:type_name -> envoy.api.v2.route.RouteAction.InternalRedirectAction
5788	50,  // 61: envoy.api.v2.route.RouteAction.max_internal_redirects:type_name -> google.protobuf.UInt32Value
5789	12,  // 62: envoy.api.v2.route.RouteAction.hedge_policy:type_name -> envoy.api.v2.route.HedgePolicy
5790	50,  // 63: envoy.api.v2.route.RetryPolicy.num_retries:type_name -> google.protobuf.UInt32Value
5791	57,  // 64: envoy.api.v2.route.RetryPolicy.per_try_timeout:type_name -> google.protobuf.Duration
5792	38,  // 65: envoy.api.v2.route.RetryPolicy.retry_priority:type_name -> envoy.api.v2.route.RetryPolicy.RetryPriority
5793	39,  // 66: envoy.api.v2.route.RetryPolicy.retry_host_predicate:type_name -> envoy.api.v2.route.RetryPolicy.RetryHostPredicate
5794	40,  // 67: envoy.api.v2.route.RetryPolicy.retry_back_off:type_name -> envoy.api.v2.route.RetryPolicy.RetryBackOff
5795	19,  // 68: envoy.api.v2.route.RetryPolicy.retriable_headers:type_name -> envoy.api.v2.route.HeaderMatcher
5796	19,  // 69: envoy.api.v2.route.RetryPolicy.retriable_request_headers:type_name -> envoy.api.v2.route.HeaderMatcher
5797	50,  // 70: envoy.api.v2.route.HedgePolicy.initial_requests:type_name -> google.protobuf.UInt32Value
5798	59,  // 71: envoy.api.v2.route.HedgePolicy.additional_request_chance:type_name -> envoy.type.FractionalPercent
5799	3,   // 72: envoy.api.v2.route.RedirectAction.response_code:type_name -> envoy.api.v2.route.RedirectAction.RedirectResponseCode
5800	60,  // 73: envoy.api.v2.route.DirectResponseAction.body:type_name -> envoy.api.v2.core.DataSource
5801	53,  // 74: envoy.api.v2.route.Decorator.propagate:type_name -> google.protobuf.BoolValue
5802	59,  // 75: envoy.api.v2.route.Tracing.client_sampling:type_name -> envoy.type.FractionalPercent
5803	59,  // 76: envoy.api.v2.route.Tracing.random_sampling:type_name -> envoy.type.FractionalPercent
5804	59,  // 77: envoy.api.v2.route.Tracing.overall_sampling:type_name -> envoy.type.FractionalPercent
5805	61,  // 78: envoy.api.v2.route.Tracing.custom_tags:type_name -> envoy.type.tracing.v2.CustomTag
5806	19,  // 79: envoy.api.v2.route.VirtualCluster.headers:type_name -> envoy.api.v2.route.HeaderMatcher
5807	62,  // 80: envoy.api.v2.route.VirtualCluster.method:type_name -> envoy.api.v2.core.RequestMethod
5808	50,  // 81: envoy.api.v2.route.RateLimit.stage:type_name -> google.protobuf.UInt32Value
5809	41,  // 82: envoy.api.v2.route.RateLimit.actions:type_name -> envoy.api.v2.route.RateLimit.Action
5810	52,  // 83: envoy.api.v2.route.HeaderMatcher.safe_regex_match:type_name -> envoy.type.matcher.RegexMatcher
5811	63,  // 84: envoy.api.v2.route.HeaderMatcher.range_match:type_name -> envoy.type.Int64Range
5812	53,  // 85: envoy.api.v2.route.QueryParameterMatcher.regex:type_name -> google.protobuf.BoolValue
5813	55,  // 86: envoy.api.v2.route.QueryParameterMatcher.string_match:type_name -> envoy.type.matcher.StringMatcher
5814	64,  // 87: envoy.api.v2.route.VirtualHost.PerFilterConfigEntry.value:type_name -> google.protobuf.Struct
5815	49,  // 88: envoy.api.v2.route.VirtualHost.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
5816	64,  // 89: envoy.api.v2.route.Route.PerFilterConfigEntry.value:type_name -> google.protobuf.Struct
5817	49,  // 90: envoy.api.v2.route.Route.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
5818	50,  // 91: envoy.api.v2.route.WeightedCluster.ClusterWeight.weight:type_name -> google.protobuf.UInt32Value
5819	51,  // 92: envoy.api.v2.route.WeightedCluster.ClusterWeight.metadata_match:type_name -> envoy.api.v2.core.Metadata
5820	48,  // 93: envoy.api.v2.route.WeightedCluster.ClusterWeight.request_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5821	48,  // 94: envoy.api.v2.route.WeightedCluster.ClusterWeight.response_headers_to_add:type_name -> envoy.api.v2.core.HeaderValueOption
5822	26,  // 95: envoy.api.v2.route.WeightedCluster.ClusterWeight.per_filter_config:type_name -> envoy.api.v2.route.WeightedCluster.ClusterWeight.PerFilterConfigEntry
5823	27,  // 96: envoy.api.v2.route.WeightedCluster.ClusterWeight.typed_per_filter_config:type_name -> envoy.api.v2.route.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry
5824	64,  // 97: envoy.api.v2.route.WeightedCluster.ClusterWeight.PerFilterConfigEntry.value:type_name -> google.protobuf.Struct
5825	49,  // 98: envoy.api.v2.route.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
5826	53,  // 99: envoy.api.v2.route.RouteMatch.TlsContextMatchOptions.presented:type_name -> google.protobuf.BoolValue
5827	53,  // 100: envoy.api.v2.route.RouteMatch.TlsContextMatchOptions.validated:type_name -> google.protobuf.BoolValue
5828	54,  // 101: envoy.api.v2.route.RouteAction.RequestMirrorPolicy.runtime_fraction:type_name -> envoy.api.v2.core.RuntimeFractionalPercent
5829	53,  // 102: envoy.api.v2.route.RouteAction.RequestMirrorPolicy.trace_sampled:type_name -> google.protobuf.BoolValue
5830	33,  // 103: envoy.api.v2.route.RouteAction.HashPolicy.header:type_name -> envoy.api.v2.route.RouteAction.HashPolicy.Header
5831	34,  // 104: envoy.api.v2.route.RouteAction.HashPolicy.cookie:type_name -> envoy.api.v2.route.RouteAction.HashPolicy.Cookie
5832	35,  // 105: envoy.api.v2.route.RouteAction.HashPolicy.connection_properties:type_name -> envoy.api.v2.route.RouteAction.HashPolicy.ConnectionProperties
5833	36,  // 106: envoy.api.v2.route.RouteAction.HashPolicy.query_parameter:type_name -> envoy.api.v2.route.RouteAction.HashPolicy.QueryParameter
5834	37,  // 107: envoy.api.v2.route.RouteAction.HashPolicy.filter_state:type_name -> envoy.api.v2.route.RouteAction.HashPolicy.FilterState
5835	53,  // 108: envoy.api.v2.route.RouteAction.UpgradeConfig.enabled:type_name -> google.protobuf.BoolValue
5836	57,  // 109: envoy.api.v2.route.RouteAction.HashPolicy.Cookie.ttl:type_name -> google.protobuf.Duration
5837	64,  // 110: envoy.api.v2.route.RetryPolicy.RetryPriority.config:type_name -> google.protobuf.Struct
5838	49,  // 111: envoy.api.v2.route.RetryPolicy.RetryPriority.typed_config:type_name -> google.protobuf.Any
5839	64,  // 112: envoy.api.v2.route.RetryPolicy.RetryHostPredicate.config:type_name -> google.protobuf.Struct
5840	49,  // 113: envoy.api.v2.route.RetryPolicy.RetryHostPredicate.typed_config:type_name -> google.protobuf.Any
5841	57,  // 114: envoy.api.v2.route.RetryPolicy.RetryBackOff.base_interval:type_name -> google.protobuf.Duration
5842	57,  // 115: envoy.api.v2.route.RetryPolicy.RetryBackOff.max_interval:type_name -> google.protobuf.Duration
5843	42,  // 116: envoy.api.v2.route.RateLimit.Action.source_cluster:type_name -> envoy.api.v2.route.RateLimit.Action.SourceCluster
5844	43,  // 117: envoy.api.v2.route.RateLimit.Action.destination_cluster:type_name -> envoy.api.v2.route.RateLimit.Action.DestinationCluster
5845	44,  // 118: envoy.api.v2.route.RateLimit.Action.request_headers:type_name -> envoy.api.v2.route.RateLimit.Action.RequestHeaders
5846	45,  // 119: envoy.api.v2.route.RateLimit.Action.remote_address:type_name -> envoy.api.v2.route.RateLimit.Action.RemoteAddress
5847	46,  // 120: envoy.api.v2.route.RateLimit.Action.generic_key:type_name -> envoy.api.v2.route.RateLimit.Action.GenericKey
5848	47,  // 121: envoy.api.v2.route.RateLimit.Action.header_value_match:type_name -> envoy.api.v2.route.RateLimit.Action.HeaderValueMatch
5849	53,  // 122: envoy.api.v2.route.RateLimit.Action.HeaderValueMatch.expect_match:type_name -> google.protobuf.BoolValue
5850	19,  // 123: envoy.api.v2.route.RateLimit.Action.HeaderValueMatch.headers:type_name -> envoy.api.v2.route.HeaderMatcher
5851	124, // [124:124] is the sub-list for method output_type
5852	124, // [124:124] is the sub-list for method input_type
5853	124, // [124:124] is the sub-list for extension type_name
5854	124, // [124:124] is the sub-list for extension extendee
5855	0,   // [0:124] is the sub-list for field type_name
5856}
5857
5858func init() { file_envoy_api_v2_route_route_components_proto_init() }
5859func file_envoy_api_v2_route_route_components_proto_init() {
5860	if File_envoy_api_v2_route_route_components_proto != nil {
5861		return
5862	}
5863	if !protoimpl.UnsafeEnabled {
5864		file_envoy_api_v2_route_route_components_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
5865			switch v := v.(*VirtualHost); i {
5866			case 0:
5867				return &v.state
5868			case 1:
5869				return &v.sizeCache
5870			case 2:
5871				return &v.unknownFields
5872			default:
5873				return nil
5874			}
5875		}
5876		file_envoy_api_v2_route_route_components_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
5877			switch v := v.(*FilterAction); i {
5878			case 0:
5879				return &v.state
5880			case 1:
5881				return &v.sizeCache
5882			case 2:
5883				return &v.unknownFields
5884			default:
5885				return nil
5886			}
5887		}
5888		file_envoy_api_v2_route_route_components_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
5889			switch v := v.(*Route); i {
5890			case 0:
5891				return &v.state
5892			case 1:
5893				return &v.sizeCache
5894			case 2:
5895				return &v.unknownFields
5896			default:
5897				return nil
5898			}
5899		}
5900		file_envoy_api_v2_route_route_components_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
5901			switch v := v.(*WeightedCluster); i {
5902			case 0:
5903				return &v.state
5904			case 1:
5905				return &v.sizeCache
5906			case 2:
5907				return &v.unknownFields
5908			default:
5909				return nil
5910			}
5911		}
5912		file_envoy_api_v2_route_route_components_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
5913			switch v := v.(*RouteMatch); i {
5914			case 0:
5915				return &v.state
5916			case 1:
5917				return &v.sizeCache
5918			case 2:
5919				return &v.unknownFields
5920			default:
5921				return nil
5922			}
5923		}
5924		file_envoy_api_v2_route_route_components_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
5925			switch v := v.(*CorsPolicy); i {
5926			case 0:
5927				return &v.state
5928			case 1:
5929				return &v.sizeCache
5930			case 2:
5931				return &v.unknownFields
5932			default:
5933				return nil
5934			}
5935		}
5936		file_envoy_api_v2_route_route_components_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
5937			switch v := v.(*RouteAction); i {
5938			case 0:
5939				return &v.state
5940			case 1:
5941				return &v.sizeCache
5942			case 2:
5943				return &v.unknownFields
5944			default:
5945				return nil
5946			}
5947		}
5948		file_envoy_api_v2_route_route_components_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
5949			switch v := v.(*RetryPolicy); i {
5950			case 0:
5951				return &v.state
5952			case 1:
5953				return &v.sizeCache
5954			case 2:
5955				return &v.unknownFields
5956			default:
5957				return nil
5958			}
5959		}
5960		file_envoy_api_v2_route_route_components_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
5961			switch v := v.(*HedgePolicy); i {
5962			case 0:
5963				return &v.state
5964			case 1:
5965				return &v.sizeCache
5966			case 2:
5967				return &v.unknownFields
5968			default:
5969				return nil
5970			}
5971		}
5972		file_envoy_api_v2_route_route_components_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
5973			switch v := v.(*RedirectAction); i {
5974			case 0:
5975				return &v.state
5976			case 1:
5977				return &v.sizeCache
5978			case 2:
5979				return &v.unknownFields
5980			default:
5981				return nil
5982			}
5983		}
5984		file_envoy_api_v2_route_route_components_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
5985			switch v := v.(*DirectResponseAction); i {
5986			case 0:
5987				return &v.state
5988			case 1:
5989				return &v.sizeCache
5990			case 2:
5991				return &v.unknownFields
5992			default:
5993				return nil
5994			}
5995		}
5996		file_envoy_api_v2_route_route_components_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
5997			switch v := v.(*Decorator); i {
5998			case 0:
5999				return &v.state
6000			case 1:
6001				return &v.sizeCache
6002			case 2:
6003				return &v.unknownFields
6004			default:
6005				return nil
6006			}
6007		}
6008		file_envoy_api_v2_route_route_components_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
6009			switch v := v.(*Tracing); i {
6010			case 0:
6011				return &v.state
6012			case 1:
6013				return &v.sizeCache
6014			case 2:
6015				return &v.unknownFields
6016			default:
6017				return nil
6018			}
6019		}
6020		file_envoy_api_v2_route_route_components_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
6021			switch v := v.(*VirtualCluster); i {
6022			case 0:
6023				return &v.state
6024			case 1:
6025				return &v.sizeCache
6026			case 2:
6027				return &v.unknownFields
6028			default:
6029				return nil
6030			}
6031		}
6032		file_envoy_api_v2_route_route_components_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
6033			switch v := v.(*RateLimit); i {
6034			case 0:
6035				return &v.state
6036			case 1:
6037				return &v.sizeCache
6038			case 2:
6039				return &v.unknownFields
6040			default:
6041				return nil
6042			}
6043		}
6044		file_envoy_api_v2_route_route_components_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
6045			switch v := v.(*HeaderMatcher); i {
6046			case 0:
6047				return &v.state
6048			case 1:
6049				return &v.sizeCache
6050			case 2:
6051				return &v.unknownFields
6052			default:
6053				return nil
6054			}
6055		}
6056		file_envoy_api_v2_route_route_components_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
6057			switch v := v.(*QueryParameterMatcher); i {
6058			case 0:
6059				return &v.state
6060			case 1:
6061				return &v.sizeCache
6062			case 2:
6063				return &v.unknownFields
6064			default:
6065				return nil
6066			}
6067		}
6068		file_envoy_api_v2_route_route_components_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
6069			switch v := v.(*WeightedCluster_ClusterWeight); i {
6070			case 0:
6071				return &v.state
6072			case 1:
6073				return &v.sizeCache
6074			case 2:
6075				return &v.unknownFields
6076			default:
6077				return nil
6078			}
6079		}
6080		file_envoy_api_v2_route_route_components_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
6081			switch v := v.(*RouteMatch_GrpcRouteMatchOptions); i {
6082			case 0:
6083				return &v.state
6084			case 1:
6085				return &v.sizeCache
6086			case 2:
6087				return &v.unknownFields
6088			default:
6089				return nil
6090			}
6091		}
6092		file_envoy_api_v2_route_route_components_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
6093			switch v := v.(*RouteMatch_TlsContextMatchOptions); i {
6094			case 0:
6095				return &v.state
6096			case 1:
6097				return &v.sizeCache
6098			case 2:
6099				return &v.unknownFields
6100			default:
6101				return nil
6102			}
6103		}
6104		file_envoy_api_v2_route_route_components_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
6105			switch v := v.(*RouteAction_RequestMirrorPolicy); i {
6106			case 0:
6107				return &v.state
6108			case 1:
6109				return &v.sizeCache
6110			case 2:
6111				return &v.unknownFields
6112			default:
6113				return nil
6114			}
6115		}
6116		file_envoy_api_v2_route_route_components_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
6117			switch v := v.(*RouteAction_HashPolicy); i {
6118			case 0:
6119				return &v.state
6120			case 1:
6121				return &v.sizeCache
6122			case 2:
6123				return &v.unknownFields
6124			default:
6125				return nil
6126			}
6127		}
6128		file_envoy_api_v2_route_route_components_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
6129			switch v := v.(*RouteAction_UpgradeConfig); i {
6130			case 0:
6131				return &v.state
6132			case 1:
6133				return &v.sizeCache
6134			case 2:
6135				return &v.unknownFields
6136			default:
6137				return nil
6138			}
6139		}
6140		file_envoy_api_v2_route_route_components_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
6141			switch v := v.(*RouteAction_HashPolicy_Header); i {
6142			case 0:
6143				return &v.state
6144			case 1:
6145				return &v.sizeCache
6146			case 2:
6147				return &v.unknownFields
6148			default:
6149				return nil
6150			}
6151		}
6152		file_envoy_api_v2_route_route_components_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
6153			switch v := v.(*RouteAction_HashPolicy_Cookie); i {
6154			case 0:
6155				return &v.state
6156			case 1:
6157				return &v.sizeCache
6158			case 2:
6159				return &v.unknownFields
6160			default:
6161				return nil
6162			}
6163		}
6164		file_envoy_api_v2_route_route_components_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
6165			switch v := v.(*RouteAction_HashPolicy_ConnectionProperties); i {
6166			case 0:
6167				return &v.state
6168			case 1:
6169				return &v.sizeCache
6170			case 2:
6171				return &v.unknownFields
6172			default:
6173				return nil
6174			}
6175		}
6176		file_envoy_api_v2_route_route_components_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
6177			switch v := v.(*RouteAction_HashPolicy_QueryParameter); i {
6178			case 0:
6179				return &v.state
6180			case 1:
6181				return &v.sizeCache
6182			case 2:
6183				return &v.unknownFields
6184			default:
6185				return nil
6186			}
6187		}
6188		file_envoy_api_v2_route_route_components_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
6189			switch v := v.(*RouteAction_HashPolicy_FilterState); i {
6190			case 0:
6191				return &v.state
6192			case 1:
6193				return &v.sizeCache
6194			case 2:
6195				return &v.unknownFields
6196			default:
6197				return nil
6198			}
6199		}
6200		file_envoy_api_v2_route_route_components_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
6201			switch v := v.(*RetryPolicy_RetryPriority); i {
6202			case 0:
6203				return &v.state
6204			case 1:
6205				return &v.sizeCache
6206			case 2:
6207				return &v.unknownFields
6208			default:
6209				return nil
6210			}
6211		}
6212		file_envoy_api_v2_route_route_components_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
6213			switch v := v.(*RetryPolicy_RetryHostPredicate); i {
6214			case 0:
6215				return &v.state
6216			case 1:
6217				return &v.sizeCache
6218			case 2:
6219				return &v.unknownFields
6220			default:
6221				return nil
6222			}
6223		}
6224		file_envoy_api_v2_route_route_components_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
6225			switch v := v.(*RetryPolicy_RetryBackOff); i {
6226			case 0:
6227				return &v.state
6228			case 1:
6229				return &v.sizeCache
6230			case 2:
6231				return &v.unknownFields
6232			default:
6233				return nil
6234			}
6235		}
6236		file_envoy_api_v2_route_route_components_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
6237			switch v := v.(*RateLimit_Action); i {
6238			case 0:
6239				return &v.state
6240			case 1:
6241				return &v.sizeCache
6242			case 2:
6243				return &v.unknownFields
6244			default:
6245				return nil
6246			}
6247		}
6248		file_envoy_api_v2_route_route_components_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
6249			switch v := v.(*RateLimit_Action_SourceCluster); i {
6250			case 0:
6251				return &v.state
6252			case 1:
6253				return &v.sizeCache
6254			case 2:
6255				return &v.unknownFields
6256			default:
6257				return nil
6258			}
6259		}
6260		file_envoy_api_v2_route_route_components_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
6261			switch v := v.(*RateLimit_Action_DestinationCluster); i {
6262			case 0:
6263				return &v.state
6264			case 1:
6265				return &v.sizeCache
6266			case 2:
6267				return &v.unknownFields
6268			default:
6269				return nil
6270			}
6271		}
6272		file_envoy_api_v2_route_route_components_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
6273			switch v := v.(*RateLimit_Action_RequestHeaders); i {
6274			case 0:
6275				return &v.state
6276			case 1:
6277				return &v.sizeCache
6278			case 2:
6279				return &v.unknownFields
6280			default:
6281				return nil
6282			}
6283		}
6284		file_envoy_api_v2_route_route_components_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
6285			switch v := v.(*RateLimit_Action_RemoteAddress); i {
6286			case 0:
6287				return &v.state
6288			case 1:
6289				return &v.sizeCache
6290			case 2:
6291				return &v.unknownFields
6292			default:
6293				return nil
6294			}
6295		}
6296		file_envoy_api_v2_route_route_components_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
6297			switch v := v.(*RateLimit_Action_GenericKey); i {
6298			case 0:
6299				return &v.state
6300			case 1:
6301				return &v.sizeCache
6302			case 2:
6303				return &v.unknownFields
6304			default:
6305				return nil
6306			}
6307		}
6308		file_envoy_api_v2_route_route_components_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
6309			switch v := v.(*RateLimit_Action_HeaderValueMatch); i {
6310			case 0:
6311				return &v.state
6312			case 1:
6313				return &v.sizeCache
6314			case 2:
6315				return &v.unknownFields
6316			default:
6317				return nil
6318			}
6319		}
6320	}
6321	file_envoy_api_v2_route_route_components_proto_msgTypes[2].OneofWrappers = []interface{}{
6322		(*Route_Route)(nil),
6323		(*Route_Redirect)(nil),
6324		(*Route_DirectResponse)(nil),
6325		(*Route_FilterAction)(nil),
6326	}
6327	file_envoy_api_v2_route_route_components_proto_msgTypes[4].OneofWrappers = []interface{}{
6328		(*RouteMatch_Prefix)(nil),
6329		(*RouteMatch_Path)(nil),
6330		(*RouteMatch_Regex)(nil),
6331		(*RouteMatch_SafeRegex)(nil),
6332	}
6333	file_envoy_api_v2_route_route_components_proto_msgTypes[5].OneofWrappers = []interface{}{
6334		(*CorsPolicy_Enabled)(nil),
6335		(*CorsPolicy_FilterEnabled)(nil),
6336	}
6337	file_envoy_api_v2_route_route_components_proto_msgTypes[6].OneofWrappers = []interface{}{
6338		(*RouteAction_Cluster)(nil),
6339		(*RouteAction_ClusterHeader)(nil),
6340		(*RouteAction_WeightedClusters)(nil),
6341		(*RouteAction_HostRewrite)(nil),
6342		(*RouteAction_AutoHostRewrite)(nil),
6343		(*RouteAction_AutoHostRewriteHeader)(nil),
6344	}
6345	file_envoy_api_v2_route_route_components_proto_msgTypes[9].OneofWrappers = []interface{}{
6346		(*RedirectAction_HttpsRedirect)(nil),
6347		(*RedirectAction_SchemeRedirect)(nil),
6348		(*RedirectAction_PathRedirect)(nil),
6349		(*RedirectAction_PrefixRewrite)(nil),
6350	}
6351	file_envoy_api_v2_route_route_components_proto_msgTypes[15].OneofWrappers = []interface{}{
6352		(*HeaderMatcher_ExactMatch)(nil),
6353		(*HeaderMatcher_RegexMatch)(nil),
6354		(*HeaderMatcher_SafeRegexMatch)(nil),
6355		(*HeaderMatcher_RangeMatch)(nil),
6356		(*HeaderMatcher_PresentMatch)(nil),
6357		(*HeaderMatcher_PrefixMatch)(nil),
6358		(*HeaderMatcher_SuffixMatch)(nil),
6359	}
6360	file_envoy_api_v2_route_route_components_proto_msgTypes[16].OneofWrappers = []interface{}{
6361		(*QueryParameterMatcher_StringMatch)(nil),
6362		(*QueryParameterMatcher_PresentMatch)(nil),
6363	}
6364	file_envoy_api_v2_route_route_components_proto_msgTypes[27].OneofWrappers = []interface{}{
6365		(*RouteAction_HashPolicy_Header_)(nil),
6366		(*RouteAction_HashPolicy_Cookie_)(nil),
6367		(*RouteAction_HashPolicy_ConnectionProperties_)(nil),
6368		(*RouteAction_HashPolicy_QueryParameter_)(nil),
6369		(*RouteAction_HashPolicy_FilterState_)(nil),
6370	}
6371	file_envoy_api_v2_route_route_components_proto_msgTypes[34].OneofWrappers = []interface{}{
6372		(*RetryPolicy_RetryPriority_Config)(nil),
6373		(*RetryPolicy_RetryPriority_TypedConfig)(nil),
6374	}
6375	file_envoy_api_v2_route_route_components_proto_msgTypes[35].OneofWrappers = []interface{}{
6376		(*RetryPolicy_RetryHostPredicate_Config)(nil),
6377		(*RetryPolicy_RetryHostPredicate_TypedConfig)(nil),
6378	}
6379	file_envoy_api_v2_route_route_components_proto_msgTypes[37].OneofWrappers = []interface{}{
6380		(*RateLimit_Action_SourceCluster_)(nil),
6381		(*RateLimit_Action_DestinationCluster_)(nil),
6382		(*RateLimit_Action_RequestHeaders_)(nil),
6383		(*RateLimit_Action_RemoteAddress_)(nil),
6384		(*RateLimit_Action_GenericKey_)(nil),
6385		(*RateLimit_Action_HeaderValueMatch_)(nil),
6386	}
6387	type x struct{}
6388	out := protoimpl.TypeBuilder{
6389		File: protoimpl.DescBuilder{
6390			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
6391			RawDescriptor: file_envoy_api_v2_route_route_components_proto_rawDesc,
6392			NumEnums:      4,
6393			NumMessages:   44,
6394			NumExtensions: 0,
6395			NumServices:   0,
6396		},
6397		GoTypes:           file_envoy_api_v2_route_route_components_proto_goTypes,
6398		DependencyIndexes: file_envoy_api_v2_route_route_components_proto_depIdxs,
6399		EnumInfos:         file_envoy_api_v2_route_route_components_proto_enumTypes,
6400		MessageInfos:      file_envoy_api_v2_route_route_components_proto_msgTypes,
6401	}.Build()
6402	File_envoy_api_v2_route_route_components_proto = out.File
6403	file_envoy_api_v2_route_route_components_proto_rawDesc = nil
6404	file_envoy_api_v2_route_route_components_proto_goTypes = nil
6405	file_envoy_api_v2_route_route_components_proto_depIdxs = nil
6406}
6407