// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/config/listener/v3/listener_components.proto

package envoy_config_listener_v3

import (
	fmt "fmt"
	_ "github.com/cncf/udpa/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v31 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
	v32 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	any "github.com/golang/protobuf/ptypes/any"
	_struct "github.com/golang/protobuf/ptypes/struct"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type FilterChainMatch_ConnectionSourceType int32

const (
	FilterChainMatch_ANY                 FilterChainMatch_ConnectionSourceType = 0
	FilterChainMatch_SAME_IP_OR_LOOPBACK FilterChainMatch_ConnectionSourceType = 1
	FilterChainMatch_EXTERNAL            FilterChainMatch_ConnectionSourceType = 2
)

var FilterChainMatch_ConnectionSourceType_name = map[int32]string{
	0: "ANY",
	1: "SAME_IP_OR_LOOPBACK",
	2: "EXTERNAL",
}

var FilterChainMatch_ConnectionSourceType_value = map[string]int32{
	"ANY":                 0,
	"SAME_IP_OR_LOOPBACK": 1,
	"EXTERNAL":            2,
}

func (x FilterChainMatch_ConnectionSourceType) String() string {
	return proto.EnumName(FilterChainMatch_ConnectionSourceType_name, int32(x))
}

func (FilterChainMatch_ConnectionSourceType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{1, 0}
}

type Filter struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to ConfigType:
	//	*Filter_HiddenEnvoyDeprecatedConfig
	//	*Filter_TypedConfig
	ConfigType           isFilter_ConfigType `protobuf_oneof:"config_type"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *Filter) Reset()         { *m = Filter{} }
func (m *Filter) String() string { return proto.CompactTextString(m) }
func (*Filter) ProtoMessage()    {}
func (*Filter) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{0}
}

func (m *Filter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Filter.Unmarshal(m, b)
}
func (m *Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Filter.Marshal(b, m, deterministic)
}
func (m *Filter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Filter.Merge(m, src)
}
func (m *Filter) XXX_Size() int {
	return xxx_messageInfo_Filter.Size(m)
}
func (m *Filter) XXX_DiscardUnknown() {
	xxx_messageInfo_Filter.DiscardUnknown(m)
}

var xxx_messageInfo_Filter proto.InternalMessageInfo

func (m *Filter) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type isFilter_ConfigType interface {
	isFilter_ConfigType()
}

type Filter_HiddenEnvoyDeprecatedConfig struct {
	HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"`
}

type Filter_TypedConfig struct {
	TypedConfig *any.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

func (*Filter_HiddenEnvoyDeprecatedConfig) isFilter_ConfigType() {}

func (*Filter_TypedConfig) isFilter_ConfigType() {}

func (m *Filter) GetConfigType() isFilter_ConfigType {
	if m != nil {
		return m.ConfigType
	}
	return nil
}

// Deprecated: Do not use.
func (m *Filter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct {
	if x, ok := m.GetConfigType().(*Filter_HiddenEnvoyDeprecatedConfig); ok {
		return x.HiddenEnvoyDeprecatedConfig
	}
	return nil
}

func (m *Filter) GetTypedConfig() *any.Any {
	if x, ok := m.GetConfigType().(*Filter_TypedConfig); ok {
		return x.TypedConfig
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Filter) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Filter_HiddenEnvoyDeprecatedConfig)(nil),
		(*Filter_TypedConfig)(nil),
	}
}

type FilterChainMatch struct {
	DestinationPort      *wrappers.UInt32Value                 `protobuf:"bytes,8,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
	PrefixRanges         []*v3.CidrRange                       `protobuf:"bytes,3,rep,name=prefix_ranges,json=prefixRanges,proto3" json:"prefix_ranges,omitempty"`
	AddressSuffix        string                                `protobuf:"bytes,4,opt,name=address_suffix,json=addressSuffix,proto3" json:"address_suffix,omitempty"`
	SuffixLen            *wrappers.UInt32Value                 `protobuf:"bytes,5,opt,name=suffix_len,json=suffixLen,proto3" json:"suffix_len,omitempty"`
	SourceType           FilterChainMatch_ConnectionSourceType `protobuf:"varint,12,opt,name=source_type,json=sourceType,proto3,enum=envoy.config.listener.v3.FilterChainMatch_ConnectionSourceType" json:"source_type,omitempty"`
	SourcePrefixRanges   []*v3.CidrRange                       `protobuf:"bytes,6,rep,name=source_prefix_ranges,json=sourcePrefixRanges,proto3" json:"source_prefix_ranges,omitempty"`
	SourcePorts          []uint32                              `protobuf:"varint,7,rep,packed,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"`
	ServerNames          []string                              `protobuf:"bytes,11,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"`
	TransportProtocol    string                                `protobuf:"bytes,9,opt,name=transport_protocol,json=transportProtocol,proto3" json:"transport_protocol,omitempty"`
	ApplicationProtocols []string                              `protobuf:"bytes,10,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
	XXX_unrecognized     []byte                                `json:"-"`
	XXX_sizecache        int32                                 `json:"-"`
}

func (m *FilterChainMatch) Reset()         { *m = FilterChainMatch{} }
func (m *FilterChainMatch) String() string { return proto.CompactTextString(m) }
func (*FilterChainMatch) ProtoMessage()    {}
func (*FilterChainMatch) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{1}
}

func (m *FilterChainMatch) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FilterChainMatch.Unmarshal(m, b)
}
func (m *FilterChainMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FilterChainMatch.Marshal(b, m, deterministic)
}
func (m *FilterChainMatch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FilterChainMatch.Merge(m, src)
}
func (m *FilterChainMatch) XXX_Size() int {
	return xxx_messageInfo_FilterChainMatch.Size(m)
}
func (m *FilterChainMatch) XXX_DiscardUnknown() {
	xxx_messageInfo_FilterChainMatch.DiscardUnknown(m)
}

var xxx_messageInfo_FilterChainMatch proto.InternalMessageInfo

func (m *FilterChainMatch) GetDestinationPort() *wrappers.UInt32Value {
	if m != nil {
		return m.DestinationPort
	}
	return nil
}

func (m *FilterChainMatch) GetPrefixRanges() []*v3.CidrRange {
	if m != nil {
		return m.PrefixRanges
	}
	return nil
}

func (m *FilterChainMatch) GetAddressSuffix() string {
	if m != nil {
		return m.AddressSuffix
	}
	return ""
}

func (m *FilterChainMatch) GetSuffixLen() *wrappers.UInt32Value {
	if m != nil {
		return m.SuffixLen
	}
	return nil
}

func (m *FilterChainMatch) GetSourceType() FilterChainMatch_ConnectionSourceType {
	if m != nil {
		return m.SourceType
	}
	return FilterChainMatch_ANY
}

func (m *FilterChainMatch) GetSourcePrefixRanges() []*v3.CidrRange {
	if m != nil {
		return m.SourcePrefixRanges
	}
	return nil
}

func (m *FilterChainMatch) GetSourcePorts() []uint32 {
	if m != nil {
		return m.SourcePorts
	}
	return nil
}

func (m *FilterChainMatch) GetServerNames() []string {
	if m != nil {
		return m.ServerNames
	}
	return nil
}

func (m *FilterChainMatch) GetTransportProtocol() string {
	if m != nil {
		return m.TransportProtocol
	}
	return ""
}

func (m *FilterChainMatch) GetApplicationProtocols() []string {
	if m != nil {
		return m.ApplicationProtocols
	}
	return nil
}

type FilterChain struct {
	FilterChainMatch                *FilterChainMatch         `protobuf:"bytes,1,opt,name=filter_chain_match,json=filterChainMatch,proto3" json:"filter_chain_match,omitempty"`
	HiddenEnvoyDeprecatedTlsContext *v31.DownstreamTlsContext `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_tls_context,json=hiddenEnvoyDeprecatedTlsContext,proto3" json:"hidden_envoy_deprecated_tls_context,omitempty"` // Deprecated: Do not use.
	Filters                         []*Filter                 `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
	UseProxyProto                   *wrappers.BoolValue       `protobuf:"bytes,4,opt,name=use_proxy_proto,json=useProxyProto,proto3" json:"use_proxy_proto,omitempty"`
	Metadata                        *v3.Metadata              `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"`
	TransportSocket                 *v3.TransportSocket       `protobuf:"bytes,6,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"`
	Name                            string                    `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral            struct{}                  `json:"-"`
	XXX_unrecognized                []byte                    `json:"-"`
	XXX_sizecache                   int32                     `json:"-"`
}

func (m *FilterChain) Reset()         { *m = FilterChain{} }
func (m *FilterChain) String() string { return proto.CompactTextString(m) }
func (*FilterChain) ProtoMessage()    {}
func (*FilterChain) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{2}
}

func (m *FilterChain) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FilterChain.Unmarshal(m, b)
}
func (m *FilterChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FilterChain.Marshal(b, m, deterministic)
}
func (m *FilterChain) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FilterChain.Merge(m, src)
}
func (m *FilterChain) XXX_Size() int {
	return xxx_messageInfo_FilterChain.Size(m)
}
func (m *FilterChain) XXX_DiscardUnknown() {
	xxx_messageInfo_FilterChain.DiscardUnknown(m)
}

var xxx_messageInfo_FilterChain proto.InternalMessageInfo

func (m *FilterChain) GetFilterChainMatch() *FilterChainMatch {
	if m != nil {
		return m.FilterChainMatch
	}
	return nil
}

// Deprecated: Do not use.
func (m *FilterChain) GetHiddenEnvoyDeprecatedTlsContext() *v31.DownstreamTlsContext {
	if m != nil {
		return m.HiddenEnvoyDeprecatedTlsContext
	}
	return nil
}

func (m *FilterChain) GetFilters() []*Filter {
	if m != nil {
		return m.Filters
	}
	return nil
}

func (m *FilterChain) GetUseProxyProto() *wrappers.BoolValue {
	if m != nil {
		return m.UseProxyProto
	}
	return nil
}

func (m *FilterChain) GetMetadata() *v3.Metadata {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *FilterChain) GetTransportSocket() *v3.TransportSocket {
	if m != nil {
		return m.TransportSocket
	}
	return nil
}

func (m *FilterChain) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListenerFilterChainMatchPredicate struct {
	// Types that are valid to be assigned to Rule:
	//	*ListenerFilterChainMatchPredicate_OrMatch
	//	*ListenerFilterChainMatchPredicate_AndMatch
	//	*ListenerFilterChainMatchPredicate_NotMatch
	//	*ListenerFilterChainMatchPredicate_AnyMatch
	//	*ListenerFilterChainMatchPredicate_DestinationPortRange
	Rule                 isListenerFilterChainMatchPredicate_Rule `protobuf_oneof:"rule"`
	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
	XXX_unrecognized     []byte                                   `json:"-"`
	XXX_sizecache        int32                                    `json:"-"`
}

func (m *ListenerFilterChainMatchPredicate) Reset()         { *m = ListenerFilterChainMatchPredicate{} }
func (m *ListenerFilterChainMatchPredicate) String() string { return proto.CompactTextString(m) }
func (*ListenerFilterChainMatchPredicate) ProtoMessage()    {}
func (*ListenerFilterChainMatchPredicate) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{3}
}

func (m *ListenerFilterChainMatchPredicate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate.Unmarshal(m, b)
}
func (m *ListenerFilterChainMatchPredicate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate.Marshal(b, m, deterministic)
}
func (m *ListenerFilterChainMatchPredicate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListenerFilterChainMatchPredicate.Merge(m, src)
}
func (m *ListenerFilterChainMatchPredicate) XXX_Size() int {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate.Size(m)
}
func (m *ListenerFilterChainMatchPredicate) XXX_DiscardUnknown() {
	xxx_messageInfo_ListenerFilterChainMatchPredicate.DiscardUnknown(m)
}

var xxx_messageInfo_ListenerFilterChainMatchPredicate proto.InternalMessageInfo

type isListenerFilterChainMatchPredicate_Rule interface {
	isListenerFilterChainMatchPredicate_Rule()
}

type ListenerFilterChainMatchPredicate_OrMatch struct {
	OrMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,1,opt,name=or_match,json=orMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_AndMatch struct {
	AndMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,2,opt,name=and_match,json=andMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_NotMatch struct {
	NotMatch *ListenerFilterChainMatchPredicate `protobuf:"bytes,3,opt,name=not_match,json=notMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_AnyMatch struct {
	AnyMatch bool `protobuf:"varint,4,opt,name=any_match,json=anyMatch,proto3,oneof"`
}

type ListenerFilterChainMatchPredicate_DestinationPortRange struct {
	DestinationPortRange *v32.Int32Range `protobuf:"bytes,5,opt,name=destination_port_range,json=destinationPortRange,proto3,oneof"`
}

func (*ListenerFilterChainMatchPredicate_OrMatch) isListenerFilterChainMatchPredicate_Rule() {}

func (*ListenerFilterChainMatchPredicate_AndMatch) isListenerFilterChainMatchPredicate_Rule() {}

func (*ListenerFilterChainMatchPredicate_NotMatch) isListenerFilterChainMatchPredicate_Rule() {}

func (*ListenerFilterChainMatchPredicate_AnyMatch) isListenerFilterChainMatchPredicate_Rule() {}

func (*ListenerFilterChainMatchPredicate_DestinationPortRange) isListenerFilterChainMatchPredicate_Rule() {
}

func (m *ListenerFilterChainMatchPredicate) GetRule() isListenerFilterChainMatchPredicate_Rule {
	if m != nil {
		return m.Rule
	}
	return nil
}

func (m *ListenerFilterChainMatchPredicate) GetOrMatch() *ListenerFilterChainMatchPredicate_MatchSet {
	if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_OrMatch); ok {
		return x.OrMatch
	}
	return nil
}

func (m *ListenerFilterChainMatchPredicate) GetAndMatch() *ListenerFilterChainMatchPredicate_MatchSet {
	if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_AndMatch); ok {
		return x.AndMatch
	}
	return nil
}

func (m *ListenerFilterChainMatchPredicate) GetNotMatch() *ListenerFilterChainMatchPredicate {
	if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_NotMatch); ok {
		return x.NotMatch
	}
	return nil
}

func (m *ListenerFilterChainMatchPredicate) GetAnyMatch() bool {
	if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_AnyMatch); ok {
		return x.AnyMatch
	}
	return false
}

func (m *ListenerFilterChainMatchPredicate) GetDestinationPortRange() *v32.Int32Range {
	if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_DestinationPortRange); ok {
		return x.DestinationPortRange
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ListenerFilterChainMatchPredicate) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ListenerFilterChainMatchPredicate_OrMatch)(nil),
		(*ListenerFilterChainMatchPredicate_AndMatch)(nil),
		(*ListenerFilterChainMatchPredicate_NotMatch)(nil),
		(*ListenerFilterChainMatchPredicate_AnyMatch)(nil),
		(*ListenerFilterChainMatchPredicate_DestinationPortRange)(nil),
	}
}

type ListenerFilterChainMatchPredicate_MatchSet struct {
	Rules                []*ListenerFilterChainMatchPredicate `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
	XXX_unrecognized     []byte                               `json:"-"`
	XXX_sizecache        int32                                `json:"-"`
}

func (m *ListenerFilterChainMatchPredicate_MatchSet) Reset() {
	*m = ListenerFilterChainMatchPredicate_MatchSet{}
}
func (m *ListenerFilterChainMatchPredicate_MatchSet) String() string {
	return proto.CompactTextString(m)
}
func (*ListenerFilterChainMatchPredicate_MatchSet) ProtoMessage() {}
func (*ListenerFilterChainMatchPredicate_MatchSet) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{3, 0}
}

func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Unmarshal(m, b)
}
func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Marshal(b, m, deterministic)
}
func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Merge(m, src)
}
func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Size() int {
	return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Size(m)
}
func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_DiscardUnknown() {
	xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.DiscardUnknown(m)
}

var xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet proto.InternalMessageInfo

func (m *ListenerFilterChainMatchPredicate_MatchSet) GetRules() []*ListenerFilterChainMatchPredicate {
	if m != nil {
		return m.Rules
	}
	return nil
}

type ListenerFilter struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to ConfigType:
	//	*ListenerFilter_HiddenEnvoyDeprecatedConfig
	//	*ListenerFilter_TypedConfig
	ConfigType           isListenerFilter_ConfigType        `protobuf_oneof:"config_type"`
	FilterDisabled       *ListenerFilterChainMatchPredicate `protobuf:"bytes,4,opt,name=filter_disabled,json=filterDisabled,proto3" json:"filter_disabled,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
	XXX_unrecognized     []byte                             `json:"-"`
	XXX_sizecache        int32                              `json:"-"`
}

func (m *ListenerFilter) Reset()         { *m = ListenerFilter{} }
func (m *ListenerFilter) String() string { return proto.CompactTextString(m) }
func (*ListenerFilter) ProtoMessage()    {}
func (*ListenerFilter) Descriptor() ([]byte, []int) {
	return fileDescriptor_87f255d2eccc91b5, []int{4}
}

func (m *ListenerFilter) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListenerFilter.Unmarshal(m, b)
}
func (m *ListenerFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListenerFilter.Marshal(b, m, deterministic)
}
func (m *ListenerFilter) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListenerFilter.Merge(m, src)
}
func (m *ListenerFilter) XXX_Size() int {
	return xxx_messageInfo_ListenerFilter.Size(m)
}
func (m *ListenerFilter) XXX_DiscardUnknown() {
	xxx_messageInfo_ListenerFilter.DiscardUnknown(m)
}

var xxx_messageInfo_ListenerFilter proto.InternalMessageInfo

func (m *ListenerFilter) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type isListenerFilter_ConfigType interface {
	isListenerFilter_ConfigType()
}

type ListenerFilter_HiddenEnvoyDeprecatedConfig struct {
	HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"`
}

type ListenerFilter_TypedConfig struct {
	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

func (*ListenerFilter_HiddenEnvoyDeprecatedConfig) isListenerFilter_ConfigType() {}

func (*ListenerFilter_TypedConfig) isListenerFilter_ConfigType() {}

func (m *ListenerFilter) GetConfigType() isListenerFilter_ConfigType {
	if m != nil {
		return m.ConfigType
	}
	return nil
}

// Deprecated: Do not use.
func (m *ListenerFilter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct {
	if x, ok := m.GetConfigType().(*ListenerFilter_HiddenEnvoyDeprecatedConfig); ok {
		return x.HiddenEnvoyDeprecatedConfig
	}
	return nil
}

func (m *ListenerFilter) GetTypedConfig() *any.Any {
	if x, ok := m.GetConfigType().(*ListenerFilter_TypedConfig); ok {
		return x.TypedConfig
	}
	return nil
}

func (m *ListenerFilter) GetFilterDisabled() *ListenerFilterChainMatchPredicate {
	if m != nil {
		return m.FilterDisabled
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ListenerFilter) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ListenerFilter_HiddenEnvoyDeprecatedConfig)(nil),
		(*ListenerFilter_TypedConfig)(nil),
	}
}

func init() {
	proto.RegisterEnum("envoy.config.listener.v3.FilterChainMatch_ConnectionSourceType", FilterChainMatch_ConnectionSourceType_name, FilterChainMatch_ConnectionSourceType_value)
	proto.RegisterType((*Filter)(nil), "envoy.config.listener.v3.Filter")
	proto.RegisterType((*FilterChainMatch)(nil), "envoy.config.listener.v3.FilterChainMatch")
	proto.RegisterType((*FilterChain)(nil), "envoy.config.listener.v3.FilterChain")
	proto.RegisterType((*ListenerFilterChainMatchPredicate)(nil), "envoy.config.listener.v3.ListenerFilterChainMatchPredicate")
	proto.RegisterType((*ListenerFilterChainMatchPredicate_MatchSet)(nil), "envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet")
	proto.RegisterType((*ListenerFilter)(nil), "envoy.config.listener.v3.ListenerFilter")
}

func init() {
	proto.RegisterFile("envoy/config/listener/v3/listener_components.proto", fileDescriptor_87f255d2eccc91b5)
}

var fileDescriptor_87f255d2eccc91b5 = []byte{
	// 1217 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4d, 0x6f, 0x1b, 0x45,
	0x18, 0xce, 0xda, 0x4e, 0xb2, 0x1e, 0xe7, 0xc3, 0x0c, 0x81, 0x6c, 0xd3, 0x2a, 0x75, 0x5c, 0x1a,
	0x59, 0x45, 0x5d, 0x4b, 0x36, 0x12, 0xaa, 0x2b, 0x01, 0x59, 0x27, 0x25, 0x2d, 0x69, 0xeb, 0x6e,
	0x02, 0x2a, 0x70, 0x58, 0x4d, 0x76, 0xc7, 0xe9, 0x96, 0xcd, 0xcc, 0x6a, 0x66, 0xec, 0xc6, 0x57,
	0x4e, 0x88, 0x1b, 0x3d, 0xf2, 0x2b, 0xf8, 0x0d, 0x48, 0x88, 0x7f, 0xc3, 0x19, 0xe5, 0x40, 0xd1,
	0x7c, 0xac, 0x1d, 0x3b, 0x0e, 0x89, 0x28, 0x07, 0x6e, 0x9e, 0x79, 0xdf, 0xf7, 0x99, 0xf7, 0xe3,
	0x99, 0x67, 0xd6, 0xa0, 0x81, 0x49, 0x9f, 0x0e, 0xea, 0x21, 0x25, 0xdd, 0xf8, 0xa8, 0x9e, 0xc4,
	0x5c, 0x60, 0x82, 0x59, 0xbd, 0xdf, 0x1c, 0xfe, 0x0e, 0x42, 0x7a, 0x9c, 0x52, 0x82, 0x89, 0xe0,
	0x6e, 0xca, 0xa8, 0xa0, 0xd0, 0x51, 0x31, 0xae, 0x8e, 0x71, 0x33, 0x3f, 0xb7, 0xdf, 0x5c, 0xab,
	0x8e, 0xa1, 0x85, 0x94, 0x61, 0x89, 0x84, 0xa2, 0x88, 0x61, 0x6e, 0xa2, 0xd7, 0x6e, 0x4e, 0xf5,
	0x39, 0x44, 0x1c, 0x1b, 0x87, 0x8f, 0xb4, 0x03, 0x3e, 0x11, 0x98, 0xf0, 0x98, 0x12, 0x5e, 0x17,
	0x0c, 0x11, 0x9e, 0x52, 0x26, 0x02, 0x4e, 0xc3, 0xef, 0xb0, 0xe0, 0x75, 0x91, 0x70, 0x19, 0x15,
	0x62, 0x26, 0x4c, 0xd4, 0x35, 0x1d, 0x25, 0x06, 0xa9, 0xc2, 0x63, 0x88, 0x1c, 0x65, 0x80, 0xd7,
	0x8e, 0x28, 0x3d, 0x4a, 0x70, 0x5d, 0xad, 0x0e, 0x7b, 0xdd, 0x3a, 0x22, 0x03, 0x63, 0xba, 0x31,
	0x69, 0xe2, 0x82, 0xf5, 0xc2, 0x0c, 0x73, 0x7d, 0xd2, 0xfa, 0x8a, 0xa1, 0x34, 0xc5, 0x2c, 0x2b,
	0x65, 0xa3, 0x17, 0xa5, 0xa8, 0x8e, 0x08, 0xa1, 0x02, 0x09, 0x95, 0x69, 0x1f, 0x33, 0x99, 0x72,
	0x4c, 0x8e, 0x8c, 0xcb, 0x6a, 0x1f, 0x25, 0x71, 0x84, 0x04, 0xae, 0x67, 0x3f, 0xb4, 0xa1, 0xfa,
	0x97, 0x05, 0xe6, 0x1e, 0xc4, 0x89, 0xc0, 0x0c, 0x5e, 0x07, 0x05, 0x82, 0x8e, 0xb1, 0x63, 0x55,
	0xac, 0x5a, 0xd1, 0x9b, 0x3f, 0xf5, 0x0a, 0x2c, 0x57, 0xb1, 0x7c, 0xb5, 0x09, 0x0f, 0xc1, 0xfa,
	0x8b, 0x38, 0x8a, 0x30, 0x09, 0x54, 0x81, 0x41, 0x84, 0x53, 0x86, 0x43, 0x24, 0x70, 0x14, 0xe8,
	0x16, 0x3a, 0xb9, 0x8a, 0x55, 0x2b, 0x35, 0x56, 0x5d, 0x9d, 0xac, 0x9b, 0x25, 0xeb, 0xee, 0xab,
	0x52, 0xbc, 0x9c, 0x63, 0xed, 0xce, 0xf8, 0xd7, 0x35, 0xc8, 0x8e, 0xc4, 0xd8, 0x1e, 0x42, 0xb4,
	0x15, 0x02, 0xbc, 0x07, 0x16, 0x64, 0xdf, 0x86, 0x88, 0x05, 0x85, 0xb8, 0x72, 0x0e, 0x71, 0x8b,
	0x0c, 0x76, 0x67, 0xfc, 0x92, 0xf2, 0xd5, 0xa1, 0xad, 0x5b, 0x3f, 0xff, 0xf6, 0xc3, 0xfa, 0x3a,
	0xb8, 0xa1, 0x29, 0x81, 0xd2, 0xd8, 0xed, 0x37, 0x46, 0x94, 0xd0, 0x05, 0x7a, 0x8b, 0xa0, 0xa4,
	0x91, 0x03, 0x19, 0xfa, 0xa8, 0x60, 0xe7, 0xcb, 0x85, 0xea, 0x8f, 0x73, 0xa0, 0xac, 0xed, 0xed,
	0x17, 0x28, 0x26, 0x8f, 0x91, 0x08, 0x5f, 0xc0, 0x03, 0x50, 0x8e, 0x30, 0x17, 0x31, 0x51, 0xfd,
	0x0c, 0xe4, 0xcc, 0x1d, 0x5b, 0x65, 0x73, 0xe3, 0x5c, 0x36, 0x5f, 0x3e, 0x24, 0xa2, 0xd9, 0xf8,
	0x0a, 0x25, 0x3d, 0xec, 0x95, 0x4e, 0x3d, 0xfb, 0xce, 0x9c, 0xf3, 0xe6, 0x4d, 0xbe, 0x66, 0xf9,
	0xcb, 0x67, 0x20, 0x3a, 0x94, 0x09, 0xb8, 0x0d, 0x16, 0x53, 0x86, 0xbb, 0xf1, 0x49, 0xa0, 0x68,
	0xc1, 0x9d, 0x7c, 0x25, 0x5f, 0x2b, 0x35, 0x6e, 0xba, 0x63, 0x44, 0x96, 0x54, 0x74, 0xfb, 0x4d,
	0xb7, 0x1d, 0x47, 0xcc, 0x97, 0x7e, 0xfe, 0x82, 0x8e, 0x52, 0x0b, 0x0e, 0x6f, 0x83, 0x25, 0xc3,
	0xe4, 0x80, 0xf7, 0xba, 0xdd, 0xf8, 0x44, 0xf5, 0xa9, 0xe8, 0x2f, 0x9a, 0xdd, 0x7d, 0xb5, 0x09,
	0xef, 0x03, 0xa0, 0xcd, 0x41, 0x82, 0x89, 0x33, 0x7b, 0x79, 0xf2, 0x7e, 0x51, 0xfb, 0xef, 0x61,
	0x02, 0x5f, 0x82, 0x12, 0xa7, 0x3d, 0x16, 0x62, 0xd5, 0x29, 0x67, 0xa1, 0x62, 0xd5, 0x96, 0x1a,
	0x9f, 0xba, 0x17, 0x5d, 0x38, 0x77, 0xb2, 0x81, 0x6e, 0x9b, 0x12, 0x82, 0x43, 0x59, 0xf9, 0xbe,
	0xc2, 0x39, 0x18, 0xa4, 0xd8, 0xb3, 0x4f, 0xbd, 0xd9, 0xef, 0xad, 0x5c, 0xd9, 0xf2, 0x01, 0x1f,
	0xee, 0xc2, 0x67, 0x60, 0xc5, 0x9c, 0x35, 0xde, 0x9c, 0xb9, 0xab, 0x35, 0x07, 0xea, 0xe0, 0xce,
	0xd9, 0x16, 0x35, 0xc1, 0x42, 0x06, 0x49, 0x99, 0xe0, 0xce, 0x7c, 0x25, 0x5f, 0x5b, 0xf4, 0xca,
	0xa7, 0xde, 0xe2, 0x6b, 0x0b, 0x54, 0x47, 0x13, 0x32, 0x45, 0xca, 0xe1, 0x70, 0xb8, 0x01, 0x16,
	0x38, 0x66, 0x7d, 0xcc, 0x02, 0x49, 0x78, 0xee, 0x94, 0x2a, 0xf9, 0x5a, 0xd1, 0x2f, 0xe9, 0xbd,
	0x27, 0x72, 0x0b, 0xde, 0x05, 0x70, 0xa4, 0x01, 0xaa, 0x87, 0x21, 0x4d, 0x9c, 0xa2, 0x6a, 0xff,
	0x3b, 0x43, 0x4b, 0xc7, 0x18, 0x60, 0x13, 0xbc, 0x87, 0xd2, 0x34, 0x89, 0x43, 0xc3, 0x22, 0xb3,
	0xcf, 0x1d, 0xa0, 0xa0, 0x57, 0xce, 0x18, 0xb3, 0x18, 0x5e, 0x7d, 0x00, 0x56, 0xa6, 0x35, 0x0f,
	0xce, 0x83, 0xfc, 0xd6, 0x93, 0xaf, 0xcb, 0x33, 0x70, 0x15, 0xbc, 0xbb, 0xbf, 0xf5, 0x78, 0x27,
	0x78, 0xd8, 0x09, 0x9e, 0xfa, 0xc1, 0xde, 0xd3, 0xa7, 0x1d, 0x6f, 0xab, 0xfd, 0x45, 0xd9, 0x82,
	0x0b, 0xc0, 0xde, 0x79, 0x7e, 0xb0, 0xe3, 0x3f, 0xd9, 0xda, 0x2b, 0xe7, 0x5a, 0x77, 0xe5, 0x8d,
	0xa8, 0x81, 0xcd, 0x7f, 0xba, 0x11, 0xa3, 0x81, 0x3d, 0x2a, 0xd8, 0x56, 0x39, 0x57, 0xfd, 0xbd,
	0x00, 0x4a, 0x67, 0x4c, 0xf0, 0x39, 0x80, 0x5d, 0xb5, 0x0c, 0x42, 0xb9, 0x0e, 0x8e, 0xa5, 0xaf,
	0x12, 0x88, 0x52, 0xe3, 0xce, 0xd5, 0xe9, 0xe0, 0x97, 0xbb, 0x93, 0x37, 0xec, 0x27, 0x0b, 0xdc,
	0xba, 0x48, 0x50, 0x44, 0xc2, 0xa5, 0x04, 0x08, 0x7c, 0x22, 0x8c, 0xaa, 0x64, 0xd4, 0x1b, 0x89,
	0xb1, 0x7b, 0x4e, 0x8c, 0x5d, 0x91, 0x70, 0x79, 0xf8, 0x36, 0x7d, 0x45, 0xb8, 0x60, 0x18, 0x1d,
	0x1f, 0x24, 0xbc, 0xad, 0x61, 0xa4, 0xfa, 0xf8, 0x37, 0xa7, 0x6a, 0xcf, 0xc8, 0x09, 0xb6, 0xc0,
	0xbc, 0xce, 0x33, 0xbb, 0x99, 0x95, 0xcb, 0x4a, 0xf4, 0xb3, 0x00, 0xe8, 0x81, 0xe5, 0x1e, 0x97,
	0x14, 0xa6, 0x27, 0x03, 0x3d, 0x69, 0x23, 0x5f, 0x6b, 0xe7, 0xee, 0x9c, 0x47, 0x69, 0xa2, 0x6f,
	0xdc, 0x62, 0x8f, 0xe3, 0x8e, 0x8c, 0x50, 0xe3, 0x87, 0x2d, 0x60, 0x1f, 0x63, 0x81, 0x22, 0x24,
	0x90, 0xb9, 0xb0, 0xeb, 0xd3, 0xd9, 0xff, 0xd8, 0x78, 0xf9, 0x43, 0x7f, 0xd8, 0x01, 0xe5, 0xc9,
	0x8e, 0x38, 0x73, 0x0a, 0xe3, 0xf6, 0x74, 0x8c, 0x83, 0xcc, 0x7b, 0x5f, 0x39, 0xfb, 0xcb, 0x62,
	0x7c, 0x03, 0x42, 0xf3, 0x1c, 0xcc, 0x2b, 0x7a, 0xab, 0xdf, 0xad, 0x9a, 0x24, 0xd5, 0x2d, 0xb0,
	0x71, 0x29, 0xa9, 0xaa, 0xbf, 0xce, 0x82, 0x8d, 0x3d, 0x63, 0x98, 0xa4, 0x43, 0x87, 0xe1, 0x48,
	0xf2, 0x1e, 0x43, 0x04, 0x6c, 0xca, 0xc6, 0x58, 0xb5, 0x7d, 0x71, 0xcb, 0x2f, 0x85, 0x73, 0xd5,
	0x72, 0x1f, 0x8b, 0xdd, 0x19, 0x7f, 0x9e, 0x32, 0x4d, 0xb4, 0x10, 0x14, 0x11, 0x89, 0xcc, 0x19,
	0xb9, 0xff, 0xf4, 0x0c, 0x1b, 0x91, 0x48, 0x1f, 0xf2, 0x0d, 0x28, 0x12, 0x2a, 0xcc, 0x21, 0x79,
	0x75, 0xc8, 0xfd, 0xb7, 0x38, 0x44, 0x62, 0x13, 0x2a, 0x34, 0xf6, 0xa6, 0x2c, 0x60, 0x60, 0xb0,
	0x25, 0xa7, 0x6c, 0xf5, 0x36, 0xbf, 0xcc, 0xd9, 0x96, 0xce, 0x61, 0xa0, 0xfd, 0x9e, 0x81, 0xf7,
	0x27, 0xdf, 0x2c, 0x2d, 0xa5, 0x86, 0x4b, 0xd7, 0x4c, 0x42, 0x52, 0xd1, 0x65, 0x16, 0x4a, 0xf9,
	0x95, 0x60, 0xee, 0xce, 0xf8, 0x2b, 0x13, 0x6f, 0x95, 0xda, 0x5f, 0xfb, 0xc5, 0x02, 0x76, 0x56,
	0x2f, 0xfc, 0x16, 0xcc, 0xb2, 0x5e, 0x82, 0xb9, 0x63, 0xa9, 0xbb, 0xf1, 0x36, 0xf5, 0xa9, 0x97,
	0xe0, 0xb5, 0x95, 0xb3, 0x73, 0xbe, 0xc6, 0x6c, 0x7d, 0x2e, 0x89, 0xe5, 0x81, 0xcf, 0xa6, 0x13,
	0xeb, 0xea, 0x53, 0x69, 0x7d, 0x22, 0x81, 0xee, 0x81, 0x8f, 0xff, 0x25, 0x90, 0x57, 0x02, 0x05,
	0x99, 0x11, 0xcc, 0xff, 0xe9, 0x59, 0xd5, 0x3f, 0x72, 0x60, 0x69, 0x3c, 0xe4, 0xff, 0xf7, 0x91,
	0x94, 0xbf, 0xf2, 0x47, 0x12, 0x8c, 0xc0, 0xb2, 0x51, 0xf3, 0x28, 0xe6, 0xe8, 0x30, 0xc1, 0x91,
	0xd1, 0xa8, 0xb7, 0x99, 0xa5, 0xbf, 0xa4, 0x31, 0xb7, 0x0d, 0x64, 0xeb, 0x43, 0x39, 0x81, 0x4d,
	0xf0, 0xc1, 0x55, 0x26, 0x30, 0xf1, 0x49, 0xe6, 0xb5, 0xc1, 0x66, 0x4c, 0x75, 0x32, 0x4a, 0x49,
	0x2f, 0xcc, 0xcb, 0x5b, 0xcd, 0x80, 0xda, 0xc3, 0xbf, 0x05, 0x4a, 0x44, 0x3b, 0xd6, 0xe1, 0x9c,
	0xea, 0x41, 0xf3, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8d, 0x30, 0x45, 0xc3, 0x54, 0x0c, 0x00,
	0x00,
}
