// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/type/metadata/v2/metadata.proto

package envoy_type_metadata_v2

import (
	fmt "fmt"
	_ "github.com/cncf/udpa/go/udpa/annotations"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	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 MetadataKey struct {
	Key                  string                     `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Path                 []*MetadataKey_PathSegment `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKey proto.InternalMessageInfo

func (m *MetadataKey) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *MetadataKey) GetPath() []*MetadataKey_PathSegment {
	if m != nil {
		return m.Path
	}
	return nil
}

type MetadataKey_PathSegment struct {
	// Types that are valid to be assigned to Segment:
	//	*MetadataKey_PathSegment_Key
	Segment              isMetadataKey_PathSegment_Segment `protobuf_oneof:"segment"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKey_PathSegment proto.InternalMessageInfo

type isMetadataKey_PathSegment_Segment interface {
	isMetadataKey_PathSegment_Segment()
}

type MetadataKey_PathSegment_Key struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"`
}

func (*MetadataKey_PathSegment_Key) isMetadataKey_PathSegment_Segment() {}

func (m *MetadataKey_PathSegment) GetSegment() isMetadataKey_PathSegment_Segment {
	if m != nil {
		return m.Segment
	}
	return nil
}

func (m *MetadataKey_PathSegment) GetKey() string {
	if x, ok := m.GetSegment().(*MetadataKey_PathSegment_Key); ok {
		return x.Key
	}
	return ""
}

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

type MetadataKind struct {
	// Types that are valid to be assigned to Kind:
	//	*MetadataKind_Request_
	//	*MetadataKind_Route_
	//	*MetadataKind_Cluster_
	//	*MetadataKind_Host_
	Kind                 isMetadataKind_Kind `protobuf_oneof:"kind"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKind proto.InternalMessageInfo

type isMetadataKind_Kind interface {
	isMetadataKind_Kind()
}

type MetadataKind_Request_ struct {
	Request *MetadataKind_Request `protobuf:"bytes,1,opt,name=request,proto3,oneof"`
}

type MetadataKind_Route_ struct {
	Route *MetadataKind_Route `protobuf:"bytes,2,opt,name=route,proto3,oneof"`
}

type MetadataKind_Cluster_ struct {
	Cluster *MetadataKind_Cluster `protobuf:"bytes,3,opt,name=cluster,proto3,oneof"`
}

type MetadataKind_Host_ struct {
	Host *MetadataKind_Host `protobuf:"bytes,4,opt,name=host,proto3,oneof"`
}

func (*MetadataKind_Request_) isMetadataKind_Kind() {}

func (*MetadataKind_Route_) isMetadataKind_Kind() {}

func (*MetadataKind_Cluster_) isMetadataKind_Kind() {}

func (*MetadataKind_Host_) isMetadataKind_Kind() {}

func (m *MetadataKind) GetKind() isMetadataKind_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (m *MetadataKind) GetRequest() *MetadataKind_Request {
	if x, ok := m.GetKind().(*MetadataKind_Request_); ok {
		return x.Request
	}
	return nil
}

func (m *MetadataKind) GetRoute() *MetadataKind_Route {
	if x, ok := m.GetKind().(*MetadataKind_Route_); ok {
		return x.Route
	}
	return nil
}

func (m *MetadataKind) GetCluster() *MetadataKind_Cluster {
	if x, ok := m.GetKind().(*MetadataKind_Cluster_); ok {
		return x.Cluster
	}
	return nil
}

func (m *MetadataKind) GetHost() *MetadataKind_Host {
	if x, ok := m.GetKind().(*MetadataKind_Host_); ok {
		return x.Host
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*MetadataKind) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*MetadataKind_Request_)(nil),
		(*MetadataKind_Route_)(nil),
		(*MetadataKind_Cluster_)(nil),
		(*MetadataKind_Host_)(nil),
	}
}

type MetadataKind_Request struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKind_Request proto.InternalMessageInfo

type MetadataKind_Route struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKind_Route proto.InternalMessageInfo

type MetadataKind_Cluster struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKind_Cluster proto.InternalMessageInfo

type MetadataKind_Host struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MetadataKind_Host proto.InternalMessageInfo

func init() {
	proto.RegisterType((*MetadataKey)(nil), "envoy.type.metadata.v2.MetadataKey")
	proto.RegisterType((*MetadataKey_PathSegment)(nil), "envoy.type.metadata.v2.MetadataKey.PathSegment")
	proto.RegisterType((*MetadataKind)(nil), "envoy.type.metadata.v2.MetadataKind")
	proto.RegisterType((*MetadataKind_Request)(nil), "envoy.type.metadata.v2.MetadataKind.Request")
	proto.RegisterType((*MetadataKind_Route)(nil), "envoy.type.metadata.v2.MetadataKind.Route")
	proto.RegisterType((*MetadataKind_Cluster)(nil), "envoy.type.metadata.v2.MetadataKind.Cluster")
	proto.RegisterType((*MetadataKind_Host)(nil), "envoy.type.metadata.v2.MetadataKind.Host")
}

func init() {
	proto.RegisterFile("envoy/type/metadata/v2/metadata.proto", fileDescriptor_3d75f017d303239e)
}

var fileDescriptor_3d75f017d303239e = []byte{
	// 387 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x4a, 0xeb, 0x40,
	0x14, 0x87, 0x3b, 0xf9, 0xd3, 0xb4, 0x93, 0x7b, 0xef, 0x22, 0x8b, 0x6b, 0x8c, 0x20, 0xa5, 0x28,
	0x54, 0x91, 0x04, 0xd2, 0x9d, 0x1b, 0x61, 0xdc, 0x04, 0xa4, 0x50, 0x22, 0x3e, 0xc0, 0x68, 0x86,
	0x36, 0xb4, 0xcd, 0xc4, 0xe4, 0x24, 0x98, 0xa7, 0x10, 0x5c, 0xf9, 0x1e, 0x3e, 0x8e, 0x6f, 0xe1,
	0x4a, 0xba, 0x10, 0x99, 0x49, 0x5a, 0xba, 0x68, 0xb1, 0xee, 0x86, 0x39, 0xe7, 0xf7, 0x9d, 0x6f,
	0x86, 0x83, 0x4f, 0x59, 0x52, 0xf2, 0xca, 0x83, 0x2a, 0x65, 0xde, 0x82, 0x01, 0x8d, 0x28, 0x50,
	0xaf, 0xf4, 0xd7, 0x67, 0x37, 0xcd, 0x38, 0x70, 0xeb, 0xbf, 0x6c, 0x73, 0x45, 0x9b, 0xbb, 0x2e,
	0x95, 0xbe, 0x73, 0x5c, 0x44, 0x29, 0xf5, 0x68, 0x92, 0x70, 0xa0, 0x10, 0xf3, 0x24, 0xf7, 0x16,
	0xf1, 0x24, 0xa3, 0xc0, 0xea, 0x9c, 0x73, 0x50, 0xd2, 0x79, 0x1c, 0x51, 0x60, 0xde, 0xea, 0x50,
	0x17, 0xfa, 0x6f, 0x08, 0x9b, 0xa3, 0x06, 0x74, 0xc3, 0x2a, 0xeb, 0x10, 0xab, 0x33, 0x56, 0xd9,
	0xa8, 0x87, 0x06, 0x5d, 0x62, 0x2c, 0x89, 0x96, 0x29, 0x3d, 0x14, 0x8a, 0x3b, 0x6b, 0x84, 0xb5,
	0x94, 0xc2, 0xd4, 0x56, 0x7a, 0xea, 0xc0, 0xf4, 0x3d, 0x77, 0xbb, 0x8a, 0xbb, 0x41, 0x73, 0xc7,
	0x14, 0xa6, 0xb7, 0x6c, 0xb2, 0x60, 0x09, 0x90, 0xce, 0x92, 0xe8, 0x2f, 0x48, 0xe9, 0xa0, 0x50,
	0x62, 0x9c, 0x4b, 0x6c, 0x6e, 0x94, 0xad, 0xa3, 0x6d, 0x83, 0x83, 0x96, 0x1c, 0x4d, 0xfe, 0x61,
	0x23, 0x6f, 0xfa, 0xd4, 0x4f, 0x82, 0xfa, 0xef, 0x0a, 0xfe, 0xb3, 0x9e, 0x13, 0x27, 0x91, 0x15,
	0x60, 0x23, 0x63, 0x8f, 0x05, 0xcb, 0x41, 0x12, 0x4c, 0xff, 0xe2, 0x47, 0xbd, 0x38, 0x89, 0xdc,
	0xb0, 0xce, 0x04, 0xad, 0x70, 0x15, 0xb7, 0x08, 0xd6, 0x33, 0x5e, 0x00, 0xb3, 0x15, 0xc9, 0x39,
	0xdf, 0x8f, 0x23, 0x12, 0x41, 0x2b, 0xac, 0xa3, 0xc2, 0xe6, 0x61, 0x5e, 0xe4, 0xc0, 0x32, 0x5b,
	0xfd, 0x85, 0xcd, 0x75, 0x9d, 0x11, 0x36, 0x4d, 0xdc, 0xba, 0xc2, 0xda, 0x94, 0xe7, 0x60, 0x6b,
	0x12, 0x73, 0xb6, 0x17, 0x26, 0xe0, 0xf2, 0x45, 0x32, 0xe8, 0x74, 0xb1, 0xd1, 0x3c, 0xd2, 0x31,
	0xb0, 0x2e, 0x3d, 0xc5, 0x5d, 0x33, 0xca, 0x69, 0x63, 0x4d, 0xb4, 0x13, 0x13, 0x6b, 0x33, 0xf1,
	0x8f, 0xe2, 0x77, 0xc9, 0xdd, 0xc7, 0xeb, 0xd7, 0xb3, 0x6e, 0xef, 0x58, 0xb6, 0x21, 0x3e, 0x89,
	0x79, 0x2d, 0x92, 0x66, 0xfc, 0xa9, 0xda, 0xe1, 0x44, 0xfe, 0xae, 0xa4, 0xc6, 0x62, 0xd1, 0xc6,
	0xe8, 0xbe, 0x2d, 0x37, 0x6e, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x89, 0x5b, 0x4c, 0xc8, 0xeb,
	0x02, 0x00, 0x00,
}
