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