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