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/config/listener/v3/listener_components.proto
6
7package envoy_config_listener_v3
8
9import (
10	_ "github.com/cncf/xds/go/udpa/annotations"
11	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
12	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
13	v31 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
14	_ "github.com/envoyproxy/protoc-gen-validate/validate"
15	proto "github.com/golang/protobuf/proto"
16	any "github.com/golang/protobuf/ptypes/any"
17	duration "github.com/golang/protobuf/ptypes/duration"
18	wrappers "github.com/golang/protobuf/ptypes/wrappers"
19	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
20	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
21	reflect "reflect"
22	sync "sync"
23)
24
25const (
26	// Verify that this generated code is sufficiently up-to-date.
27	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
28	// Verify that runtime/protoimpl is sufficiently up-to-date.
29	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
30)
31
32// This is a compile-time assertion that a sufficiently up-to-date version
33// of the legacy proto package is being used.
34const _ = proto.ProtoPackageIsVersion4
35
36type FilterChainMatch_ConnectionSourceType int32
37
38const (
39	// Any connection source matches.
40	FilterChainMatch_ANY FilterChainMatch_ConnectionSourceType = 0
41	// Match a connection originating from the same host.
42	FilterChainMatch_SAME_IP_OR_LOOPBACK FilterChainMatch_ConnectionSourceType = 1
43	// Match a connection originating from a different host.
44	FilterChainMatch_EXTERNAL FilterChainMatch_ConnectionSourceType = 2
45)
46
47// Enum value maps for FilterChainMatch_ConnectionSourceType.
48var (
49	FilterChainMatch_ConnectionSourceType_name = map[int32]string{
50		0: "ANY",
51		1: "SAME_IP_OR_LOOPBACK",
52		2: "EXTERNAL",
53	}
54	FilterChainMatch_ConnectionSourceType_value = map[string]int32{
55		"ANY":                 0,
56		"SAME_IP_OR_LOOPBACK": 1,
57		"EXTERNAL":            2,
58	}
59)
60
61func (x FilterChainMatch_ConnectionSourceType) Enum() *FilterChainMatch_ConnectionSourceType {
62	p := new(FilterChainMatch_ConnectionSourceType)
63	*p = x
64	return p
65}
66
67func (x FilterChainMatch_ConnectionSourceType) String() string {
68	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
69}
70
71func (FilterChainMatch_ConnectionSourceType) Descriptor() protoreflect.EnumDescriptor {
72	return file_envoy_config_listener_v3_listener_components_proto_enumTypes[0].Descriptor()
73}
74
75func (FilterChainMatch_ConnectionSourceType) Type() protoreflect.EnumType {
76	return &file_envoy_config_listener_v3_listener_components_proto_enumTypes[0]
77}
78
79func (x FilterChainMatch_ConnectionSourceType) Number() protoreflect.EnumNumber {
80	return protoreflect.EnumNumber(x)
81}
82
83// Deprecated: Use FilterChainMatch_ConnectionSourceType.Descriptor instead.
84func (FilterChainMatch_ConnectionSourceType) EnumDescriptor() ([]byte, []int) {
85	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{1, 0}
86}
87
88// [#next-free-field: 6]
89type Filter struct {
90	state         protoimpl.MessageState
91	sizeCache     protoimpl.SizeCache
92	unknownFields protoimpl.UnknownFields
93
94	// The name of the filter to instantiate. The name must match a
95	// :ref:`supported filter <config_network_filters>`.
96	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
97	// Types that are assignable to ConfigType:
98	//	*Filter_TypedConfig
99	//	*Filter_ConfigDiscovery
100	ConfigType isFilter_ConfigType `protobuf_oneof:"config_type"`
101}
102
103func (x *Filter) Reset() {
104	*x = Filter{}
105	if protoimpl.UnsafeEnabled {
106		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[0]
107		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
108		ms.StoreMessageInfo(mi)
109	}
110}
111
112func (x *Filter) String() string {
113	return protoimpl.X.MessageStringOf(x)
114}
115
116func (*Filter) ProtoMessage() {}
117
118func (x *Filter) ProtoReflect() protoreflect.Message {
119	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[0]
120	if protoimpl.UnsafeEnabled && x != nil {
121		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
122		if ms.LoadMessageInfo() == nil {
123			ms.StoreMessageInfo(mi)
124		}
125		return ms
126	}
127	return mi.MessageOf(x)
128}
129
130// Deprecated: Use Filter.ProtoReflect.Descriptor instead.
131func (*Filter) Descriptor() ([]byte, []int) {
132	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{0}
133}
134
135func (x *Filter) GetName() string {
136	if x != nil {
137		return x.Name
138	}
139	return ""
140}
141
142func (m *Filter) GetConfigType() isFilter_ConfigType {
143	if m != nil {
144		return m.ConfigType
145	}
146	return nil
147}
148
149func (x *Filter) GetTypedConfig() *any.Any {
150	if x, ok := x.GetConfigType().(*Filter_TypedConfig); ok {
151		return x.TypedConfig
152	}
153	return nil
154}
155
156func (x *Filter) GetConfigDiscovery() *v3.ExtensionConfigSource {
157	if x, ok := x.GetConfigType().(*Filter_ConfigDiscovery); ok {
158		return x.ConfigDiscovery
159	}
160	return nil
161}
162
163type isFilter_ConfigType interface {
164	isFilter_ConfigType()
165}
166
167type Filter_TypedConfig struct {
168	// Filter specific configuration which depends on the filter being
169	// instantiated. See the supported filters for further documentation.
170	// [#extension-category: envoy.filters.network]
171	TypedConfig *any.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"`
172}
173
174type Filter_ConfigDiscovery struct {
175	// Configuration source specifier for an extension configuration discovery
176	// service. In case of a failure and without the default configuration, the
177	// listener closes the connections.
178	// [#not-implemented-hide:]
179	ConfigDiscovery *v3.ExtensionConfigSource `protobuf:"bytes,5,opt,name=config_discovery,json=configDiscovery,proto3,oneof"`
180}
181
182func (*Filter_TypedConfig) isFilter_ConfigType() {}
183
184func (*Filter_ConfigDiscovery) isFilter_ConfigType() {}
185
186// Specifies the match criteria for selecting a specific filter chain for a
187// listener.
188//
189// In order for a filter chain to be selected, *ALL* of its criteria must be
190// fulfilled by the incoming connection, properties of which are set by the
191// networking stack and/or listener filters.
192//
193// The following order applies:
194//
195// 1. Destination port.
196// 2. Destination IP address.
197// 3. Server name (e.g. SNI for TLS protocol),
198// 4. Transport protocol.
199// 5. Application protocols (e.g. ALPN for TLS protocol).
200// 6. Directly connected source IP address (this will only be different from the source IP address
201//    when using a listener filter that overrides the source address, such as the :ref:`Proxy Protocol
202//    listener filter <config_listener_filters_proxy_protocol>`).
203// 7. Source type (e.g. any, local or external network).
204// 8. Source IP address.
205// 9. Source port.
206//
207// For criteria that allow ranges or wildcards, the most specific value in any
208// of the configured filter chains that matches the incoming connection is going
209// to be used (e.g. for SNI ``www.example.com`` the most specific match would be
210// ``www.example.com``, then ``*.example.com``, then ``*.com``, then any filter
211// chain without ``server_names`` requirements).
212//
213// A different way to reason about the filter chain matches:
214// Suppose there exists N filter chains. Prune the filter chain set using the above 8 steps.
215// In each step, filter chains which most specifically matches the attributes continue to the next step.
216// The listener guarantees at most 1 filter chain is left after all of the steps.
217//
218// Example:
219//
220// For destination port, filter chains specifying the destination port of incoming traffic are the
221// most specific match. If none of the filter chains specifies the exact destination port, the filter
222// chains which do not specify ports are the most specific match. Filter chains specifying the
223// wrong port can never be the most specific match.
224//
225// [#comment: Implemented rules are kept in the preference order, with deprecated fields
226// listed at the end, because that's how we want to list them in the docs.
227//
228// [#comment:TODO(PiotrSikora): Add support for configurable precedence of the rules]
229// [#next-free-field: 14]
230type FilterChainMatch struct {
231	state         protoimpl.MessageState
232	sizeCache     protoimpl.SizeCache
233	unknownFields protoimpl.UnknownFields
234
235	// Optional destination port to consider when use_original_dst is set on the
236	// listener in determining a filter chain match.
237	DestinationPort *wrappers.UInt32Value `protobuf:"bytes,8,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
238	// If non-empty, an IP address and prefix length to match addresses when the
239	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
240	PrefixRanges []*v3.CidrRange `protobuf:"bytes,3,rep,name=prefix_ranges,json=prefixRanges,proto3" json:"prefix_ranges,omitempty"`
241	// If non-empty, an IP address and suffix length to match addresses when the
242	// listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
243	// [#not-implemented-hide:]
244	AddressSuffix string `protobuf:"bytes,4,opt,name=address_suffix,json=addressSuffix,proto3" json:"address_suffix,omitempty"`
245	// [#not-implemented-hide:]
246	SuffixLen *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=suffix_len,json=suffixLen,proto3" json:"suffix_len,omitempty"`
247	// The criteria is satisfied if the directly connected source IP address of the downstream
248	// connection is contained in at least one of the specified subnets. If the parameter is not
249	// specified or the list is empty, the directly connected source IP address is ignored.
250	DirectSourcePrefixRanges []*v3.CidrRange `protobuf:"bytes,13,rep,name=direct_source_prefix_ranges,json=directSourcePrefixRanges,proto3" json:"direct_source_prefix_ranges,omitempty"`
251	// Specifies the connection source IP match type. Can be any, local or external network.
252	SourceType FilterChainMatch_ConnectionSourceType `protobuf:"varint,12,opt,name=source_type,json=sourceType,proto3,enum=envoy.config.listener.v3.FilterChainMatch_ConnectionSourceType" json:"source_type,omitempty"`
253	// The criteria is satisfied if the source IP address of the downstream
254	// connection is contained in at least one of the specified subnets. If the
255	// parameter is not specified or the list is empty, the source IP address is
256	// ignored.
257	SourcePrefixRanges []*v3.CidrRange `protobuf:"bytes,6,rep,name=source_prefix_ranges,json=sourcePrefixRanges,proto3" json:"source_prefix_ranges,omitempty"`
258	// The criteria is satisfied if the source port of the downstream connection
259	// is contained in at least one of the specified ports. If the parameter is
260	// not specified, the source port is ignored.
261	SourcePorts []uint32 `protobuf:"varint,7,rep,packed,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"`
262	// If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
263	// a filter chain match. Those values will be compared against the server names of a new
264	// connection, when detected by one of the listener filters.
265	//
266	// The server name will be matched against all wildcard domains, i.e. ``www.example.com``
267	// will be first matched against ``www.example.com``, then ``*.example.com``, then ``*.com``.
268	//
269	// Note that partial wildcards are not supported, and values like ``*w.example.com`` are invalid.
270	//
271	// .. attention::
272	//
273	//   See the :ref:`FAQ entry <faq_how_to_setup_sni>` on how to configure SNI for more
274	//   information.
275	ServerNames []string `protobuf:"bytes,11,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"`
276	// If non-empty, a transport protocol to consider when determining a filter chain match.
277	// This value will be compared against the transport protocol of a new connection, when
278	// it's detected by one of the listener filters.
279	//
280	// Suggested values include:
281	//
282	// * ``raw_buffer`` - default, used when no transport protocol is detected,
283	// * ``tls`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
284	//   when TLS protocol is detected.
285	TransportProtocol string `protobuf:"bytes,9,opt,name=transport_protocol,json=transportProtocol,proto3" json:"transport_protocol,omitempty"`
286	// If non-empty, a list of application protocols (e.g. ALPN for TLS protocol) to consider when
287	// determining a filter chain match. Those values will be compared against the application
288	// protocols of a new connection, when detected by one of the listener filters.
289	//
290	// Suggested values include:
291	//
292	// * ``http/1.1`` - set by :ref:`envoy.filters.listener.tls_inspector
293	//   <config_listener_filters_tls_inspector>`,
294	// * ``h2`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
295	//
296	// .. attention::
297	//
298	//   Currently, only :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides
299	//   application protocol detection based on the requested
300	//   `ALPN <https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation>`_ values.
301	//
302	//   However, the use of ALPN is pretty much limited to the HTTP/2 traffic on the Internet,
303	//   and matching on values other than ``h2`` is going to lead to a lot of false negatives,
304	//   unless all connecting clients are known to use ALPN.
305	ApplicationProtocols []string `protobuf:"bytes,10,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
306}
307
308func (x *FilterChainMatch) Reset() {
309	*x = FilterChainMatch{}
310	if protoimpl.UnsafeEnabled {
311		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[1]
312		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
313		ms.StoreMessageInfo(mi)
314	}
315}
316
317func (x *FilterChainMatch) String() string {
318	return protoimpl.X.MessageStringOf(x)
319}
320
321func (*FilterChainMatch) ProtoMessage() {}
322
323func (x *FilterChainMatch) ProtoReflect() protoreflect.Message {
324	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[1]
325	if protoimpl.UnsafeEnabled && x != nil {
326		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
327		if ms.LoadMessageInfo() == nil {
328			ms.StoreMessageInfo(mi)
329		}
330		return ms
331	}
332	return mi.MessageOf(x)
333}
334
335// Deprecated: Use FilterChainMatch.ProtoReflect.Descriptor instead.
336func (*FilterChainMatch) Descriptor() ([]byte, []int) {
337	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{1}
338}
339
340func (x *FilterChainMatch) GetDestinationPort() *wrappers.UInt32Value {
341	if x != nil {
342		return x.DestinationPort
343	}
344	return nil
345}
346
347func (x *FilterChainMatch) GetPrefixRanges() []*v3.CidrRange {
348	if x != nil {
349		return x.PrefixRanges
350	}
351	return nil
352}
353
354func (x *FilterChainMatch) GetAddressSuffix() string {
355	if x != nil {
356		return x.AddressSuffix
357	}
358	return ""
359}
360
361func (x *FilterChainMatch) GetSuffixLen() *wrappers.UInt32Value {
362	if x != nil {
363		return x.SuffixLen
364	}
365	return nil
366}
367
368func (x *FilterChainMatch) GetDirectSourcePrefixRanges() []*v3.CidrRange {
369	if x != nil {
370		return x.DirectSourcePrefixRanges
371	}
372	return nil
373}
374
375func (x *FilterChainMatch) GetSourceType() FilterChainMatch_ConnectionSourceType {
376	if x != nil {
377		return x.SourceType
378	}
379	return FilterChainMatch_ANY
380}
381
382func (x *FilterChainMatch) GetSourcePrefixRanges() []*v3.CidrRange {
383	if x != nil {
384		return x.SourcePrefixRanges
385	}
386	return nil
387}
388
389func (x *FilterChainMatch) GetSourcePorts() []uint32 {
390	if x != nil {
391		return x.SourcePorts
392	}
393	return nil
394}
395
396func (x *FilterChainMatch) GetServerNames() []string {
397	if x != nil {
398		return x.ServerNames
399	}
400	return nil
401}
402
403func (x *FilterChainMatch) GetTransportProtocol() string {
404	if x != nil {
405		return x.TransportProtocol
406	}
407	return ""
408}
409
410func (x *FilterChainMatch) GetApplicationProtocols() []string {
411	if x != nil {
412		return x.ApplicationProtocols
413	}
414	return nil
415}
416
417// A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
418// various other parameters.
419// [#next-free-field: 10]
420type FilterChain struct {
421	state         protoimpl.MessageState
422	sizeCache     protoimpl.SizeCache
423	unknownFields protoimpl.UnknownFields
424
425	// The criteria to use when matching a connection to this filter chain.
426	FilterChainMatch *FilterChainMatch `protobuf:"bytes,1,opt,name=filter_chain_match,json=filterChainMatch,proto3" json:"filter_chain_match,omitempty"`
427	// A list of individual network filters that make up the filter chain for
428	// connections established with the listener. Order matters as the filters are
429	// processed sequentially as connection events happen. Note: If the filter
430	// list is empty, the connection will close by default.
431	Filters []*Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
432	// Whether the listener should expect a PROXY protocol V1 header on new
433	// connections. If this option is enabled, the listener will assume that that
434	// remote address of the connection is the one specified in the header. Some
435	// load balancers including the AWS ELB support this option. If the option is
436	// absent or set to false, Envoy will use the physical peer address of the
437	// connection as the remote address.
438	//
439	// This field is deprecated. Add a
440	// :ref:`PROXY protocol listener filter <config_listener_filters_proxy_protocol>`
441	// explicitly instead.
442	//
443	// Deprecated: Do not use.
444	UseProxyProto *wrappers.BoolValue `protobuf:"bytes,4,opt,name=use_proxy_proto,json=useProxyProto,proto3" json:"use_proxy_proto,omitempty"`
445	// [#not-implemented-hide:] filter chain metadata.
446	Metadata *v3.Metadata `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"`
447	// Optional custom transport socket implementation to use for downstream connections.
448	// To setup TLS, set a transport socket with name `envoy.transport_sockets.tls` and
449	// :ref:`DownstreamTlsContext <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.DownstreamTlsContext>` in the `typed_config`.
450	// If no transport socket configuration is specified, new connections
451	// will be set up with plaintext.
452	// [#extension-category: envoy.transport_sockets.downstream]
453	TransportSocket *v3.TransportSocket `protobuf:"bytes,6,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"`
454	// If present and nonzero, the amount of time to allow incoming connections to complete any
455	// transport socket negotiations. If this expires before the transport reports connection
456	// establishment, the connection is summarily closed.
457	TransportSocketConnectTimeout *duration.Duration `protobuf:"bytes,9,opt,name=transport_socket_connect_timeout,json=transportSocketConnectTimeout,proto3" json:"transport_socket_connect_timeout,omitempty"`
458	// [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
459	// name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
460	// chain is to be dynamically updated or removed via FCDS a unique name must be provided.
461	Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
462	// [#not-implemented-hide:] The configuration to specify whether the filter chain will be built on-demand.
463	// If this field is not empty, the filter chain will be built on-demand.
464	// Otherwise, the filter chain will be built normally and block listener warming.
465	OnDemandConfiguration *FilterChain_OnDemandConfiguration `protobuf:"bytes,8,opt,name=on_demand_configuration,json=onDemandConfiguration,proto3" json:"on_demand_configuration,omitempty"`
466}
467
468func (x *FilterChain) Reset() {
469	*x = FilterChain{}
470	if protoimpl.UnsafeEnabled {
471		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[2]
472		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
473		ms.StoreMessageInfo(mi)
474	}
475}
476
477func (x *FilterChain) String() string {
478	return protoimpl.X.MessageStringOf(x)
479}
480
481func (*FilterChain) ProtoMessage() {}
482
483func (x *FilterChain) ProtoReflect() protoreflect.Message {
484	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[2]
485	if protoimpl.UnsafeEnabled && x != nil {
486		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
487		if ms.LoadMessageInfo() == nil {
488			ms.StoreMessageInfo(mi)
489		}
490		return ms
491	}
492	return mi.MessageOf(x)
493}
494
495// Deprecated: Use FilterChain.ProtoReflect.Descriptor instead.
496func (*FilterChain) Descriptor() ([]byte, []int) {
497	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{2}
498}
499
500func (x *FilterChain) GetFilterChainMatch() *FilterChainMatch {
501	if x != nil {
502		return x.FilterChainMatch
503	}
504	return nil
505}
506
507func (x *FilterChain) GetFilters() []*Filter {
508	if x != nil {
509		return x.Filters
510	}
511	return nil
512}
513
514// Deprecated: Do not use.
515func (x *FilterChain) GetUseProxyProto() *wrappers.BoolValue {
516	if x != nil {
517		return x.UseProxyProto
518	}
519	return nil
520}
521
522func (x *FilterChain) GetMetadata() *v3.Metadata {
523	if x != nil {
524		return x.Metadata
525	}
526	return nil
527}
528
529func (x *FilterChain) GetTransportSocket() *v3.TransportSocket {
530	if x != nil {
531		return x.TransportSocket
532	}
533	return nil
534}
535
536func (x *FilterChain) GetTransportSocketConnectTimeout() *duration.Duration {
537	if x != nil {
538		return x.TransportSocketConnectTimeout
539	}
540	return nil
541}
542
543func (x *FilterChain) GetName() string {
544	if x != nil {
545		return x.Name
546	}
547	return ""
548}
549
550func (x *FilterChain) GetOnDemandConfiguration() *FilterChain_OnDemandConfiguration {
551	if x != nil {
552		return x.OnDemandConfiguration
553	}
554	return nil
555}
556
557// Listener filter chain match configuration. This is a recursive structure which allows complex
558// nested match configurations to be built using various logical operators.
559//
560// Examples:
561//
562// * Matches if the destination port is 3306.
563//
564// .. code-block:: yaml
565//
566//  destination_port_range:
567//   start: 3306
568//   end: 3307
569//
570// * Matches if the destination port is 3306 or 15000.
571//
572// .. code-block:: yaml
573//
574//  or_match:
575//    rules:
576//      - destination_port_range:
577//          start: 3306
578//          end: 3307
579//      - destination_port_range:
580//          start: 15000
581//          end: 15001
582//
583// [#next-free-field: 6]
584type ListenerFilterChainMatchPredicate struct {
585	state         protoimpl.MessageState
586	sizeCache     protoimpl.SizeCache
587	unknownFields protoimpl.UnknownFields
588
589	// Types that are assignable to Rule:
590	//	*ListenerFilterChainMatchPredicate_OrMatch
591	//	*ListenerFilterChainMatchPredicate_AndMatch
592	//	*ListenerFilterChainMatchPredicate_NotMatch
593	//	*ListenerFilterChainMatchPredicate_AnyMatch
594	//	*ListenerFilterChainMatchPredicate_DestinationPortRange
595	Rule isListenerFilterChainMatchPredicate_Rule `protobuf_oneof:"rule"`
596}
597
598func (x *ListenerFilterChainMatchPredicate) Reset() {
599	*x = ListenerFilterChainMatchPredicate{}
600	if protoimpl.UnsafeEnabled {
601		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[3]
602		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
603		ms.StoreMessageInfo(mi)
604	}
605}
606
607func (x *ListenerFilterChainMatchPredicate) String() string {
608	return protoimpl.X.MessageStringOf(x)
609}
610
611func (*ListenerFilterChainMatchPredicate) ProtoMessage() {}
612
613func (x *ListenerFilterChainMatchPredicate) ProtoReflect() protoreflect.Message {
614	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[3]
615	if protoimpl.UnsafeEnabled && x != nil {
616		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
617		if ms.LoadMessageInfo() == nil {
618			ms.StoreMessageInfo(mi)
619		}
620		return ms
621	}
622	return mi.MessageOf(x)
623}
624
625// Deprecated: Use ListenerFilterChainMatchPredicate.ProtoReflect.Descriptor instead.
626func (*ListenerFilterChainMatchPredicate) Descriptor() ([]byte, []int) {
627	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{3}
628}
629
630func (m *ListenerFilterChainMatchPredicate) GetRule() isListenerFilterChainMatchPredicate_Rule {
631	if m != nil {
632		return m.Rule
633	}
634	return nil
635}
636
637func (x *ListenerFilterChainMatchPredicate) GetOrMatch() *ListenerFilterChainMatchPredicate_MatchSet {
638	if x, ok := x.GetRule().(*ListenerFilterChainMatchPredicate_OrMatch); ok {
639		return x.OrMatch
640	}
641	return nil
642}
643
644func (x *ListenerFilterChainMatchPredicate) GetAndMatch() *ListenerFilterChainMatchPredicate_MatchSet {
645	if x, ok := x.GetRule().(*ListenerFilterChainMatchPredicate_AndMatch); ok {
646		return x.AndMatch
647	}
648	return nil
649}
650
651func (x *ListenerFilterChainMatchPredicate) GetNotMatch() *ListenerFilterChainMatchPredicate {
652	if x, ok := x.GetRule().(*ListenerFilterChainMatchPredicate_NotMatch); ok {
653		return x.NotMatch
654	}
655	return nil
656}
657
658func (x *ListenerFilterChainMatchPredicate) GetAnyMatch() bool {
659	if x, ok := x.GetRule().(*ListenerFilterChainMatchPredicate_AnyMatch); ok {
660		return x.AnyMatch
661	}
662	return false
663}
664
665func (x *ListenerFilterChainMatchPredicate) GetDestinationPortRange() *v31.Int32Range {
666	if x, ok := x.GetRule().(*ListenerFilterChainMatchPredicate_DestinationPortRange); ok {
667		return x.DestinationPortRange
668	}
669	return nil
670}
671
672type isListenerFilterChainMatchPredicate_Rule interface {
673	isListenerFilterChainMatchPredicate_Rule()
674}
675
676type ListenerFilterChainMatchPredicate_OrMatch struct {
677	// A set that describes a logical OR. If any member of the set matches, the match configuration
678	// matches.
679	OrMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,1,opt,name=or_match,json=orMatch,proto3,oneof"`
680}
681
682type ListenerFilterChainMatchPredicate_AndMatch struct {
683	// A set that describes a logical AND. If all members of the set match, the match configuration
684	// matches.
685	AndMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,2,opt,name=and_match,json=andMatch,proto3,oneof"`
686}
687
688type ListenerFilterChainMatchPredicate_NotMatch struct {
689	// A negation match. The match configuration will match if the negated match condition matches.
690	NotMatch *ListenerFilterChainMatchPredicate `protobuf:"bytes,3,opt,name=not_match,json=notMatch,proto3,oneof"`
691}
692
693type ListenerFilterChainMatchPredicate_AnyMatch struct {
694	// The match configuration will always match.
695	AnyMatch bool `protobuf:"varint,4,opt,name=any_match,json=anyMatch,proto3,oneof"`
696}
697
698type ListenerFilterChainMatchPredicate_DestinationPortRange struct {
699	// Match destination port. Particularly, the match evaluation must use the recovered local port if
700	// the owning listener filter is after :ref:`an original_dst listener filter <config_listener_filters_original_dst>`.
701	DestinationPortRange *v31.Int32Range `protobuf:"bytes,5,opt,name=destination_port_range,json=destinationPortRange,proto3,oneof"`
702}
703
704func (*ListenerFilterChainMatchPredicate_OrMatch) isListenerFilterChainMatchPredicate_Rule() {}
705
706func (*ListenerFilterChainMatchPredicate_AndMatch) isListenerFilterChainMatchPredicate_Rule() {}
707
708func (*ListenerFilterChainMatchPredicate_NotMatch) isListenerFilterChainMatchPredicate_Rule() {}
709
710func (*ListenerFilterChainMatchPredicate_AnyMatch) isListenerFilterChainMatchPredicate_Rule() {}
711
712func (*ListenerFilterChainMatchPredicate_DestinationPortRange) isListenerFilterChainMatchPredicate_Rule() {
713}
714
715type ListenerFilter struct {
716	state         protoimpl.MessageState
717	sizeCache     protoimpl.SizeCache
718	unknownFields protoimpl.UnknownFields
719
720	// The name of the filter to instantiate. The name must match a
721	// :ref:`supported filter <config_listener_filters>`.
722	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
723	// Types that are assignable to ConfigType:
724	//	*ListenerFilter_TypedConfig
725	ConfigType isListenerFilter_ConfigType `protobuf_oneof:"config_type"`
726	// Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
727	// See :ref:`ListenerFilterChainMatchPredicate <envoy_v3_api_msg_config.listener.v3.ListenerFilterChainMatchPredicate>`
728	// for further examples.
729	FilterDisabled *ListenerFilterChainMatchPredicate `protobuf:"bytes,4,opt,name=filter_disabled,json=filterDisabled,proto3" json:"filter_disabled,omitempty"`
730}
731
732func (x *ListenerFilter) Reset() {
733	*x = ListenerFilter{}
734	if protoimpl.UnsafeEnabled {
735		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[4]
736		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
737		ms.StoreMessageInfo(mi)
738	}
739}
740
741func (x *ListenerFilter) String() string {
742	return protoimpl.X.MessageStringOf(x)
743}
744
745func (*ListenerFilter) ProtoMessage() {}
746
747func (x *ListenerFilter) ProtoReflect() protoreflect.Message {
748	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[4]
749	if protoimpl.UnsafeEnabled && x != nil {
750		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
751		if ms.LoadMessageInfo() == nil {
752			ms.StoreMessageInfo(mi)
753		}
754		return ms
755	}
756	return mi.MessageOf(x)
757}
758
759// Deprecated: Use ListenerFilter.ProtoReflect.Descriptor instead.
760func (*ListenerFilter) Descriptor() ([]byte, []int) {
761	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{4}
762}
763
764func (x *ListenerFilter) GetName() string {
765	if x != nil {
766		return x.Name
767	}
768	return ""
769}
770
771func (m *ListenerFilter) GetConfigType() isListenerFilter_ConfigType {
772	if m != nil {
773		return m.ConfigType
774	}
775	return nil
776}
777
778func (x *ListenerFilter) GetTypedConfig() *any.Any {
779	if x, ok := x.GetConfigType().(*ListenerFilter_TypedConfig); ok {
780		return x.TypedConfig
781	}
782	return nil
783}
784
785func (x *ListenerFilter) GetFilterDisabled() *ListenerFilterChainMatchPredicate {
786	if x != nil {
787		return x.FilterDisabled
788	}
789	return nil
790}
791
792type isListenerFilter_ConfigType interface {
793	isListenerFilter_ConfigType()
794}
795
796type ListenerFilter_TypedConfig struct {
797	// Filter specific configuration which depends on the filter being
798	// instantiated. See the supported filters for further documentation.
799	// [#extension-category: envoy.filters.listener,envoy.filters.udp_listener]
800	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
801}
802
803func (*ListenerFilter_TypedConfig) isListenerFilter_ConfigType() {}
804
805// The configuration for on-demand filter chain. If this field is not empty in FilterChain message,
806// a filter chain will be built on-demand.
807// On-demand filter chains help speedup the warming up of listeners since the building and initialization of
808// an on-demand filter chain will be postponed to the arrival of new connection requests that require this filter chain.
809// Filter chains that are not often used can be set as on-demand.
810type FilterChain_OnDemandConfiguration struct {
811	state         protoimpl.MessageState
812	sizeCache     protoimpl.SizeCache
813	unknownFields protoimpl.UnknownFields
814
815	// The timeout to wait for filter chain placeholders to complete rebuilding.
816	// 1. If this field is set to 0, timeout is disabled.
817	// 2. If not specified, a default timeout of 15s is used.
818	// Rebuilding will wait until dependencies are ready, have failed, or this timeout is reached.
819	// Upon failure or timeout, all connections related to this filter chain will be closed.
820	// Rebuilding will start again on the next new connection.
821	RebuildTimeout *duration.Duration `protobuf:"bytes,1,opt,name=rebuild_timeout,json=rebuildTimeout,proto3" json:"rebuild_timeout,omitempty"`
822}
823
824func (x *FilterChain_OnDemandConfiguration) Reset() {
825	*x = FilterChain_OnDemandConfiguration{}
826	if protoimpl.UnsafeEnabled {
827		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[5]
828		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
829		ms.StoreMessageInfo(mi)
830	}
831}
832
833func (x *FilterChain_OnDemandConfiguration) String() string {
834	return protoimpl.X.MessageStringOf(x)
835}
836
837func (*FilterChain_OnDemandConfiguration) ProtoMessage() {}
838
839func (x *FilterChain_OnDemandConfiguration) ProtoReflect() protoreflect.Message {
840	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[5]
841	if protoimpl.UnsafeEnabled && x != nil {
842		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
843		if ms.LoadMessageInfo() == nil {
844			ms.StoreMessageInfo(mi)
845		}
846		return ms
847	}
848	return mi.MessageOf(x)
849}
850
851// Deprecated: Use FilterChain_OnDemandConfiguration.ProtoReflect.Descriptor instead.
852func (*FilterChain_OnDemandConfiguration) Descriptor() ([]byte, []int) {
853	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{2, 0}
854}
855
856func (x *FilterChain_OnDemandConfiguration) GetRebuildTimeout() *duration.Duration {
857	if x != nil {
858		return x.RebuildTimeout
859	}
860	return nil
861}
862
863// A set of match configurations used for logical operations.
864type ListenerFilterChainMatchPredicate_MatchSet struct {
865	state         protoimpl.MessageState
866	sizeCache     protoimpl.SizeCache
867	unknownFields protoimpl.UnknownFields
868
869	// The list of rules that make up the set.
870	Rules []*ListenerFilterChainMatchPredicate `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
871}
872
873func (x *ListenerFilterChainMatchPredicate_MatchSet) Reset() {
874	*x = ListenerFilterChainMatchPredicate_MatchSet{}
875	if protoimpl.UnsafeEnabled {
876		mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[6]
877		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
878		ms.StoreMessageInfo(mi)
879	}
880}
881
882func (x *ListenerFilterChainMatchPredicate_MatchSet) String() string {
883	return protoimpl.X.MessageStringOf(x)
884}
885
886func (*ListenerFilterChainMatchPredicate_MatchSet) ProtoMessage() {}
887
888func (x *ListenerFilterChainMatchPredicate_MatchSet) ProtoReflect() protoreflect.Message {
889	mi := &file_envoy_config_listener_v3_listener_components_proto_msgTypes[6]
890	if protoimpl.UnsafeEnabled && x != nil {
891		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
892		if ms.LoadMessageInfo() == nil {
893			ms.StoreMessageInfo(mi)
894		}
895		return ms
896	}
897	return mi.MessageOf(x)
898}
899
900// Deprecated: Use ListenerFilterChainMatchPredicate_MatchSet.ProtoReflect.Descriptor instead.
901func (*ListenerFilterChainMatchPredicate_MatchSet) Descriptor() ([]byte, []int) {
902	return file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP(), []int{3, 0}
903}
904
905func (x *ListenerFilterChainMatchPredicate_MatchSet) GetRules() []*ListenerFilterChainMatchPredicate {
906	if x != nil {
907		return x.Rules
908	}
909	return nil
910}
911
912var File_envoy_config_listener_v3_listener_components_proto protoreflect.FileDescriptor
913
914var file_envoy_config_listener_v3_listener_components_proto_rawDesc = []byte{
915	0x0a, 0x32, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c,
916	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65,
917	0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70,
918	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
919	0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x1a, 0x22,
920	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72,
921	0x65, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f,
922	0x74, 0x6f, 0x1a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
923	0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72,
924	0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
925	0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
926	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6e, 0x76, 0x6f, 0x79,
927	0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70,
928	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
929	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
930	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
931	0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
932	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
933	0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
934	0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
935	0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70,
936	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
937	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72,
938	0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
939	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67,
940	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
941	0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
942	0x82, 0x02, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61,
943	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
944	0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x64,
945	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
946	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
947	0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66,
948	0x69, 0x67, 0x12, 0x58, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x69, 0x73,
949	0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x65,
950	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65,
951	0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
952	0x66, 0x69, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
953	0x66, 0x69, 0x67, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x3a, 0x23, 0x9a, 0xc5,
954	0x88, 0x1e, 0x1e, 0x0a, 0x1c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
955	0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
956	0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65,
957	0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x06, 0x63, 0x6f,
958	0x6e, 0x66, 0x69, 0x67, 0x22, 0xea, 0x06, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43,
959	0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x73,
960	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20,
961	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
962	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
963	0x65, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x18, 0xff, 0xff, 0x03, 0x28, 0x01, 0x52, 0x0f,
964	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12,
965	0x44, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73,
966	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
967	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69,
968	0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52,
969	0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
970	0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61,
971	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x3b, 0x0a, 0x0a,
972	0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
973	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
974	0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09,
975	0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x5e, 0x0a, 0x1b, 0x64, 0x69, 0x72,
976	0x65, 0x63, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69,
977	0x78, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
978	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
979	0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
980	0x18, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x65,
981	0x66, 0x69, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x0b, 0x73, 0x6f, 0x75,
982	0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f,
983	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69,
984	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
985	0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
986	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42,
987	0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63,
988	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
989	0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20,
990	0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
991	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52,
992	0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x65, 0x66,
993	0x69, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72,
994	0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x10,
995	0xfa, 0x42, 0x0d, 0x92, 0x01, 0x0a, 0x22, 0x08, 0x2a, 0x06, 0x18, 0xff, 0xff, 0x03, 0x28, 0x01,
996	0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x21, 0x0a,
997	0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20,
998	0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73,
999	0x12, 0x2d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72,
1000	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72,
1001	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12,
1002	0x33, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
1003	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14,
1004	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
1005	0x63, 0x6f, 0x6c, 0x73, 0x22, 0x46, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
1006	0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03,
1007	0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x50,
1008	0x5f, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x0c,
1009	0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x02, 0x3a, 0x2d, 0x9a, 0xc5,
1010	0x88, 0x1e, 0x28, 0x0a, 0x26, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
1011	0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
1012	0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4a, 0x04, 0x08, 0x01, 0x10,
1013	0x02, 0x22, 0x89, 0x06, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69,
1014	0x6e, 0x12, 0x58, 0x0a, 0x12, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69,
1015	0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
1016	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73,
1017	0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43,
1018	0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65,
1019	0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x07, 0x66,
1020	0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65,
1021	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74,
1022	0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07,
1023	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x70,
1024	0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
1025	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
1026	0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x18, 0x01,
1027	0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x50, 0x72,
1028	0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
1029	0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x76,
1030	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76,
1031	0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
1032	0x64, 0x61, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
1033	0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
1034	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
1035	0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53,
1036	0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
1037	0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x62, 0x0a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
1038	0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
1039	0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
1040	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
1041	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x74, 0x72, 0x61,
1042	0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e,
1043	0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
1044	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x73,
1045	0x0a, 0x17, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
1046	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
1047	0x3b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c,
1048	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
1049	0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43,
1050	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6f, 0x6e,
1051	0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
1052	0x69, 0x6f, 0x6e, 0x1a, 0x5b, 0x0a, 0x15, 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43,
1053	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f,
1054	0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
1055	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
1056	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1057	0x52, 0x0e, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
1058	0x3a, 0x28, 0x9a, 0xc5, 0x88, 0x1e, 0x23, 0x0a, 0x21, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
1059	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x46,
1060	0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03,
1061	0x52, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xc2, 0x05,
1062	0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
1063	0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
1064	0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x08, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18,
1065	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
1066	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33,
1067	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43,
1068	0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61,
1069	0x74, 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f,
1070	0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x63, 0x0a, 0x09, 0x61, 0x6e, 0x64, 0x5f, 0x6d, 0x61,
1071	0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
1072	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
1073	0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c,
1074	0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65,
1075	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x48,
1076	0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x5a, 0x0a, 0x09, 0x6e,
1077	0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b,
1078	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69,
1079	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
1080	0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74,
1081	0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6e,
1082	0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x26, 0x0a, 0x09, 0x61, 0x6e, 0x79, 0x5f, 0x6d,
1083	0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x6a,
1084	0x02, 0x08, 0x01, 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
1085	0x51, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
1086	0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
1087	0x19, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e,
1088	0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65,
1089	0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e,
1090	0x67, 0x65, 0x1a, 0xb0, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x12,
1091	0x5b, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b,
1092	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69,
1093	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
1094	0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74,
1095	0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05,
1096	0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x47, 0x9a, 0xc5,
1097	0x88, 0x1e, 0x42, 0x0a, 0x40, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
1098	0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65,
1099	0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61,
1100	0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x74,
1101	0x63, 0x68, 0x53, 0x65, 0x74, 0x3a, 0x3e, 0x9a, 0xc5, 0x88, 0x1e, 0x39, 0x0a, 0x37, 0x65, 0x6e,
1102	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65,
1103	0x6e, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74,
1104	0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64,
1105	0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x03, 0xf8,
1106	0x42, 0x01, 0x22, 0x98, 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46,
1107	0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
1108	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61,
1109	0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
1110	0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1111	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00,
1112	0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x64, 0x0a,
1113	0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
1114	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
1115	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76,
1116	0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
1117	0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
1118	0x61, 0x74, 0x65, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x61, 0x62,
1119	0x6c, 0x65, 0x64, 0x3a, 0x2b, 0x9a, 0xc5, 0x88, 0x1e, 0x26, 0x0a, 0x24, 0x65, 0x6e, 0x76, 0x6f,
1120	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
1121	0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
1122	0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x4a,
1123	0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x4b, 0x0a,
1124	0x26, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x65,
1125	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74,
1126	0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x42, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
1127	0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f,
1128	0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
1129	0x6f, 0x33,
1130}
1131
1132var (
1133	file_envoy_config_listener_v3_listener_components_proto_rawDescOnce sync.Once
1134	file_envoy_config_listener_v3_listener_components_proto_rawDescData = file_envoy_config_listener_v3_listener_components_proto_rawDesc
1135)
1136
1137func file_envoy_config_listener_v3_listener_components_proto_rawDescGZIP() []byte {
1138	file_envoy_config_listener_v3_listener_components_proto_rawDescOnce.Do(func() {
1139		file_envoy_config_listener_v3_listener_components_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_listener_v3_listener_components_proto_rawDescData)
1140	})
1141	return file_envoy_config_listener_v3_listener_components_proto_rawDescData
1142}
1143
1144var file_envoy_config_listener_v3_listener_components_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
1145var file_envoy_config_listener_v3_listener_components_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
1146var file_envoy_config_listener_v3_listener_components_proto_goTypes = []interface{}{
1147	(FilterChainMatch_ConnectionSourceType)(0), // 0: envoy.config.listener.v3.FilterChainMatch.ConnectionSourceType
1148	(*Filter)(nil),                                     // 1: envoy.config.listener.v3.Filter
1149	(*FilterChainMatch)(nil),                           // 2: envoy.config.listener.v3.FilterChainMatch
1150	(*FilterChain)(nil),                                // 3: envoy.config.listener.v3.FilterChain
1151	(*ListenerFilterChainMatchPredicate)(nil),          // 4: envoy.config.listener.v3.ListenerFilterChainMatchPredicate
1152	(*ListenerFilter)(nil),                             // 5: envoy.config.listener.v3.ListenerFilter
1153	(*FilterChain_OnDemandConfiguration)(nil),          // 6: envoy.config.listener.v3.FilterChain.OnDemandConfiguration
1154	(*ListenerFilterChainMatchPredicate_MatchSet)(nil), // 7: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet
1155	(*any.Any)(nil),                                    // 8: google.protobuf.Any
1156	(*v3.ExtensionConfigSource)(nil),                   // 9: envoy.config.core.v3.ExtensionConfigSource
1157	(*wrappers.UInt32Value)(nil),                       // 10: google.protobuf.UInt32Value
1158	(*v3.CidrRange)(nil),                               // 11: envoy.config.core.v3.CidrRange
1159	(*wrappers.BoolValue)(nil),                         // 12: google.protobuf.BoolValue
1160	(*v3.Metadata)(nil),                                // 13: envoy.config.core.v3.Metadata
1161	(*v3.TransportSocket)(nil),                         // 14: envoy.config.core.v3.TransportSocket
1162	(*duration.Duration)(nil),                          // 15: google.protobuf.Duration
1163	(*v31.Int32Range)(nil),                             // 16: envoy.type.v3.Int32Range
1164}
1165var file_envoy_config_listener_v3_listener_components_proto_depIdxs = []int32{
1166	8,  // 0: envoy.config.listener.v3.Filter.typed_config:type_name -> google.protobuf.Any
1167	9,  // 1: envoy.config.listener.v3.Filter.config_discovery:type_name -> envoy.config.core.v3.ExtensionConfigSource
1168	10, // 2: envoy.config.listener.v3.FilterChainMatch.destination_port:type_name -> google.protobuf.UInt32Value
1169	11, // 3: envoy.config.listener.v3.FilterChainMatch.prefix_ranges:type_name -> envoy.config.core.v3.CidrRange
1170	10, // 4: envoy.config.listener.v3.FilterChainMatch.suffix_len:type_name -> google.protobuf.UInt32Value
1171	11, // 5: envoy.config.listener.v3.FilterChainMatch.direct_source_prefix_ranges:type_name -> envoy.config.core.v3.CidrRange
1172	0,  // 6: envoy.config.listener.v3.FilterChainMatch.source_type:type_name -> envoy.config.listener.v3.FilterChainMatch.ConnectionSourceType
1173	11, // 7: envoy.config.listener.v3.FilterChainMatch.source_prefix_ranges:type_name -> envoy.config.core.v3.CidrRange
1174	2,  // 8: envoy.config.listener.v3.FilterChain.filter_chain_match:type_name -> envoy.config.listener.v3.FilterChainMatch
1175	1,  // 9: envoy.config.listener.v3.FilterChain.filters:type_name -> envoy.config.listener.v3.Filter
1176	12, // 10: envoy.config.listener.v3.FilterChain.use_proxy_proto:type_name -> google.protobuf.BoolValue
1177	13, // 11: envoy.config.listener.v3.FilterChain.metadata:type_name -> envoy.config.core.v3.Metadata
1178	14, // 12: envoy.config.listener.v3.FilterChain.transport_socket:type_name -> envoy.config.core.v3.TransportSocket
1179	15, // 13: envoy.config.listener.v3.FilterChain.transport_socket_connect_timeout:type_name -> google.protobuf.Duration
1180	6,  // 14: envoy.config.listener.v3.FilterChain.on_demand_configuration:type_name -> envoy.config.listener.v3.FilterChain.OnDemandConfiguration
1181	7,  // 15: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.or_match:type_name -> envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet
1182	7,  // 16: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.and_match:type_name -> envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet
1183	4,  // 17: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.not_match:type_name -> envoy.config.listener.v3.ListenerFilterChainMatchPredicate
1184	16, // 18: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.destination_port_range:type_name -> envoy.type.v3.Int32Range
1185	8,  // 19: envoy.config.listener.v3.ListenerFilter.typed_config:type_name -> google.protobuf.Any
1186	4,  // 20: envoy.config.listener.v3.ListenerFilter.filter_disabled:type_name -> envoy.config.listener.v3.ListenerFilterChainMatchPredicate
1187	15, // 21: envoy.config.listener.v3.FilterChain.OnDemandConfiguration.rebuild_timeout:type_name -> google.protobuf.Duration
1188	4,  // 22: envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet.rules:type_name -> envoy.config.listener.v3.ListenerFilterChainMatchPredicate
1189	23, // [23:23] is the sub-list for method output_type
1190	23, // [23:23] is the sub-list for method input_type
1191	23, // [23:23] is the sub-list for extension type_name
1192	23, // [23:23] is the sub-list for extension extendee
1193	0,  // [0:23] is the sub-list for field type_name
1194}
1195
1196func init() { file_envoy_config_listener_v3_listener_components_proto_init() }
1197func file_envoy_config_listener_v3_listener_components_proto_init() {
1198	if File_envoy_config_listener_v3_listener_components_proto != nil {
1199		return
1200	}
1201	if !protoimpl.UnsafeEnabled {
1202		file_envoy_config_listener_v3_listener_components_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1203			switch v := v.(*Filter); i {
1204			case 0:
1205				return &v.state
1206			case 1:
1207				return &v.sizeCache
1208			case 2:
1209				return &v.unknownFields
1210			default:
1211				return nil
1212			}
1213		}
1214		file_envoy_config_listener_v3_listener_components_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1215			switch v := v.(*FilterChainMatch); i {
1216			case 0:
1217				return &v.state
1218			case 1:
1219				return &v.sizeCache
1220			case 2:
1221				return &v.unknownFields
1222			default:
1223				return nil
1224			}
1225		}
1226		file_envoy_config_listener_v3_listener_components_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1227			switch v := v.(*FilterChain); i {
1228			case 0:
1229				return &v.state
1230			case 1:
1231				return &v.sizeCache
1232			case 2:
1233				return &v.unknownFields
1234			default:
1235				return nil
1236			}
1237		}
1238		file_envoy_config_listener_v3_listener_components_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1239			switch v := v.(*ListenerFilterChainMatchPredicate); i {
1240			case 0:
1241				return &v.state
1242			case 1:
1243				return &v.sizeCache
1244			case 2:
1245				return &v.unknownFields
1246			default:
1247				return nil
1248			}
1249		}
1250		file_envoy_config_listener_v3_listener_components_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1251			switch v := v.(*ListenerFilter); i {
1252			case 0:
1253				return &v.state
1254			case 1:
1255				return &v.sizeCache
1256			case 2:
1257				return &v.unknownFields
1258			default:
1259				return nil
1260			}
1261		}
1262		file_envoy_config_listener_v3_listener_components_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1263			switch v := v.(*FilterChain_OnDemandConfiguration); i {
1264			case 0:
1265				return &v.state
1266			case 1:
1267				return &v.sizeCache
1268			case 2:
1269				return &v.unknownFields
1270			default:
1271				return nil
1272			}
1273		}
1274		file_envoy_config_listener_v3_listener_components_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1275			switch v := v.(*ListenerFilterChainMatchPredicate_MatchSet); i {
1276			case 0:
1277				return &v.state
1278			case 1:
1279				return &v.sizeCache
1280			case 2:
1281				return &v.unknownFields
1282			default:
1283				return nil
1284			}
1285		}
1286	}
1287	file_envoy_config_listener_v3_listener_components_proto_msgTypes[0].OneofWrappers = []interface{}{
1288		(*Filter_TypedConfig)(nil),
1289		(*Filter_ConfigDiscovery)(nil),
1290	}
1291	file_envoy_config_listener_v3_listener_components_proto_msgTypes[3].OneofWrappers = []interface{}{
1292		(*ListenerFilterChainMatchPredicate_OrMatch)(nil),
1293		(*ListenerFilterChainMatchPredicate_AndMatch)(nil),
1294		(*ListenerFilterChainMatchPredicate_NotMatch)(nil),
1295		(*ListenerFilterChainMatchPredicate_AnyMatch)(nil),
1296		(*ListenerFilterChainMatchPredicate_DestinationPortRange)(nil),
1297	}
1298	file_envoy_config_listener_v3_listener_components_proto_msgTypes[4].OneofWrappers = []interface{}{
1299		(*ListenerFilter_TypedConfig)(nil),
1300	}
1301	type x struct{}
1302	out := protoimpl.TypeBuilder{
1303		File: protoimpl.DescBuilder{
1304			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1305			RawDescriptor: file_envoy_config_listener_v3_listener_components_proto_rawDesc,
1306			NumEnums:      1,
1307			NumMessages:   7,
1308			NumExtensions: 0,
1309			NumServices:   0,
1310		},
1311		GoTypes:           file_envoy_config_listener_v3_listener_components_proto_goTypes,
1312		DependencyIndexes: file_envoy_config_listener_v3_listener_components_proto_depIdxs,
1313		EnumInfos:         file_envoy_config_listener_v3_listener_components_proto_enumTypes,
1314		MessageInfos:      file_envoy_config_listener_v3_listener_components_proto_msgTypes,
1315	}.Build()
1316	File_envoy_config_listener_v3_listener_components_proto = out.File
1317	file_envoy_config_listener_v3_listener_components_proto_rawDesc = nil
1318	file_envoy_config_listener_v3_listener_components_proto_goTypes = nil
1319	file_envoy_config_listener_v3_listener_components_proto_depIdxs = nil
1320}
1321