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