// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/config/filter/network/tcp_proxy/v3alpha/tcp_proxy.proto

package envoy_config_filter_network_tcp_proxy_v3alpha

import (
	fmt "fmt"
	core "github.com/envoyproxy/go-control-plane/envoy/api/v3alpha/core"
	v3alpha "github.com/envoyproxy/go-control-plane/envoy/config/filter/accesslog/v3alpha"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	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 TcpProxy struct {
	StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// Types that are valid to be assigned to ClusterSpecifier:
	//	*TcpProxy_Cluster
	//	*TcpProxy_WeightedClusters
	ClusterSpecifier      isTcpProxy_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
	MetadataMatch         *core.Metadata              `protobuf:"bytes,9,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
	IdleTimeout           *duration.Duration          `protobuf:"bytes,8,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
	DownstreamIdleTimeout *duration.Duration          `protobuf:"bytes,3,opt,name=downstream_idle_timeout,json=downstreamIdleTimeout,proto3" json:"downstream_idle_timeout,omitempty"`
	UpstreamIdleTimeout   *duration.Duration          `protobuf:"bytes,4,opt,name=upstream_idle_timeout,json=upstreamIdleTimeout,proto3" json:"upstream_idle_timeout,omitempty"`
	AccessLog             []*v3alpha.AccessLog        `protobuf:"bytes,5,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"`
	MaxConnectAttempts    *wrappers.UInt32Value       `protobuf:"bytes,7,opt,name=max_connect_attempts,json=maxConnectAttempts,proto3" json:"max_connect_attempts,omitempty"`
	XXX_NoUnkeyedLiteral  struct{}                    `json:"-"`
	XXX_unrecognized      []byte                      `json:"-"`
	XXX_sizecache         int32                       `json:"-"`
}

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

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

var xxx_messageInfo_TcpProxy proto.InternalMessageInfo

func (m *TcpProxy) GetStatPrefix() string {
	if m != nil {
		return m.StatPrefix
	}
	return ""
}

type isTcpProxy_ClusterSpecifier interface {
	isTcpProxy_ClusterSpecifier()
}

type TcpProxy_Cluster struct {
	Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"`
}

type TcpProxy_WeightedClusters struct {
	WeightedClusters *TcpProxy_WeightedCluster `protobuf:"bytes,10,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
}

func (*TcpProxy_Cluster) isTcpProxy_ClusterSpecifier() {}

func (*TcpProxy_WeightedClusters) isTcpProxy_ClusterSpecifier() {}

func (m *TcpProxy) GetClusterSpecifier() isTcpProxy_ClusterSpecifier {
	if m != nil {
		return m.ClusterSpecifier
	}
	return nil
}

func (m *TcpProxy) GetCluster() string {
	if x, ok := m.GetClusterSpecifier().(*TcpProxy_Cluster); ok {
		return x.Cluster
	}
	return ""
}

func (m *TcpProxy) GetWeightedClusters() *TcpProxy_WeightedCluster {
	if x, ok := m.GetClusterSpecifier().(*TcpProxy_WeightedClusters); ok {
		return x.WeightedClusters
	}
	return nil
}

func (m *TcpProxy) GetMetadataMatch() *core.Metadata {
	if m != nil {
		return m.MetadataMatch
	}
	return nil
}

func (m *TcpProxy) GetIdleTimeout() *duration.Duration {
	if m != nil {
		return m.IdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetDownstreamIdleTimeout() *duration.Duration {
	if m != nil {
		return m.DownstreamIdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetUpstreamIdleTimeout() *duration.Duration {
	if m != nil {
		return m.UpstreamIdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetAccessLog() []*v3alpha.AccessLog {
	if m != nil {
		return m.AccessLog
	}
	return nil
}

func (m *TcpProxy) GetMaxConnectAttempts() *wrappers.UInt32Value {
	if m != nil {
		return m.MaxConnectAttempts
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TcpProxy) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TcpProxy_Cluster)(nil),
		(*TcpProxy_WeightedClusters)(nil),
	}
}

type TcpProxy_WeightedCluster struct {
	Clusters             []*TcpProxy_WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
	XXX_unrecognized     []byte                                    `json:"-"`
	XXX_sizecache        int32                                     `json:"-"`
}

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

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

var xxx_messageInfo_TcpProxy_WeightedCluster proto.InternalMessageInfo

func (m *TcpProxy_WeightedCluster) GetClusters() []*TcpProxy_WeightedCluster_ClusterWeight {
	if m != nil {
		return m.Clusters
	}
	return nil
}

type TcpProxy_WeightedCluster_ClusterWeight struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Weight               uint32   `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight proto.InternalMessageInfo

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

func (m *TcpProxy_WeightedCluster_ClusterWeight) GetWeight() uint32 {
	if m != nil {
		return m.Weight
	}
	return 0
}

func init() {
	proto.RegisterType((*TcpProxy)(nil), "envoy.config.filter.network.tcp_proxy.v3alpha.TcpProxy")
	proto.RegisterType((*TcpProxy_WeightedCluster)(nil), "envoy.config.filter.network.tcp_proxy.v3alpha.TcpProxy.WeightedCluster")
	proto.RegisterType((*TcpProxy_WeightedCluster_ClusterWeight)(nil), "envoy.config.filter.network.tcp_proxy.v3alpha.TcpProxy.WeightedCluster.ClusterWeight")
}

func init() {
	proto.RegisterFile("envoy/config/filter/network/tcp_proxy/v3alpha/tcp_proxy.proto", fileDescriptor_0cada114fb4da110)
}

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