// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.7
// 	protoc        v5.27.5
// source: github.com/cloudprober/cloudprober/internal/udpmessage/proto/message.proto

package proto

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type DataNode_Type int32

const (
	DataNode_UNKNOWN DataNode_Type = 0
	DataNode_CLIENT  DataNode_Type = 1
	DataNode_SERVER  DataNode_Type = 2
)

// Enum value maps for DataNode_Type.
var (
	DataNode_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "CLIENT",
		2: "SERVER",
	}
	DataNode_Type_value = map[string]int32{
		"UNKNOWN": 0,
		"CLIENT":  1,
		"SERVER":  2,
	}
)

func (x DataNode_Type) Enum() *DataNode_Type {
	p := new(DataNode_Type)
	*p = x
	return p
}

func (x DataNode_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DataNode_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_enumTypes[0].Descriptor()
}

func (DataNode_Type) Type() protoreflect.EnumType {
	return &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_enumTypes[0]
}

func (x DataNode_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DataNode_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DataNode_Type(num)
	return nil
}

// Deprecated: Use DataNode_Type.Descriptor instead.
func (DataNode_Type) EnumDescriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescGZIP(), []int{1, 0}
}

// Constants defines constants with default values.
type Constants struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Magic         *uint64                `protobuf:"varint,1,opt,name=magic,def=257787339638762" json:"magic,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for Constants fields.
const (
	Default_Constants_Magic = uint64(257787339638762)
)

func (x *Constants) Reset() {
	*x = Constants{}
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Constants) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Constants) ProtoMessage() {}

func (x *Constants) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Constants.ProtoReflect.Descriptor instead.
func (*Constants) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescGZIP(), []int{0}
}

func (x *Constants) GetMagic() uint64 {
	if x != nil && x.Magic != nil {
		return *x.Magic
	}
	return Default_Constants_Magic
}

// Datanode is something that see's a message AND can modify it.
type DataNode struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Type  *DataNode_Type         `protobuf:"varint,1,opt,name=type,enum=message.DataNode_Type,def=1" json:"type,omitempty"`
	Name  *string                `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Port  *string                `protobuf:"bytes,4,opt,name=port" json:"port,omitempty"`
	// 8 bytes of timestamp in pcap-friendly network byte order.
	TimestampUsec []byte `protobuf:"bytes,3,opt,name=timestamp_usec,json=timestampUsec" json:"timestamp_usec,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for DataNode fields.
const (
	Default_DataNode_Type = DataNode_CLIENT
)

func (x *DataNode) Reset() {
	*x = DataNode{}
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataNode) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataNode) ProtoMessage() {}

func (x *DataNode) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataNode.ProtoReflect.Descriptor instead.
func (*DataNode) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescGZIP(), []int{1}
}

func (x *DataNode) GetType() DataNode_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Default_DataNode_Type
}

func (x *DataNode) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *DataNode) GetPort() string {
	if x != nil && x.Port != nil {
		return *x.Port
	}
	return ""
}

func (x *DataNode) GetTimestampUsec() []byte {
	if x != nil {
		return x.TimestampUsec
	}
	return nil
}

// Msg is a message sent over the network.
// magic, seq, src and dst are required fields.
type Msg struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Magic *uint64                `protobuf:"fixed64,1,opt,name=magic" json:"magic,omitempty"` // required.
	// 8 bytes of sequence in pcap-friendly network byte order.
	Seq []byte `protobuf:"bytes,2,opt,name=seq" json:"seq,omitempty"` // required.
	// Datanodes seen by this message.
	Src   *DataNode   `protobuf:"bytes,3,opt,name=src" json:"src,omitempty"`     // required.
	Dst   *DataNode   `protobuf:"bytes,4,opt,name=dst" json:"dst,omitempty"`     // required.
	Nodes []*DataNode `protobuf:"bytes,5,rep,name=nodes" json:"nodes,omitempty"` // Intermediate nodes.
	// Optional payload.
	Payload       []byte `protobuf:"bytes,99,opt,name=payload" json:"payload,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Msg) Reset() {
	*x = Msg{}
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Msg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Msg) ProtoMessage() {}

func (x *Msg) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Msg.ProtoReflect.Descriptor instead.
func (*Msg) Descriptor() ([]byte, []int) {
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescGZIP(), []int{2}
}

func (x *Msg) GetMagic() uint64 {
	if x != nil && x.Magic != nil {
		return *x.Magic
	}
	return 0
}

func (x *Msg) GetSeq() []byte {
	if x != nil {
		return x.Seq
	}
	return nil
}

func (x *Msg) GetSrc() *DataNode {
	if x != nil {
		return x.Src
	}
	return nil
}

func (x *Msg) GetDst() *DataNode {
	if x != nil {
		return x.Dst
	}
	return nil
}

func (x *Msg) GetNodes() []*DataNode {
	if x != nil {
		return x.Nodes
	}
	return nil
}

func (x *Msg) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

var File_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDesc = "" +
	"\n" +
	"Jgithub.com/cloudprober/cloudprober/internal/udpmessage/proto/message.proto\x12\amessage\"2\n" +
	"\tConstants\x12%\n" +
	"\x05magic\x18\x01 \x01(\x04:\x0f257787339638762R\x05magic\"\xba\x01\n" +
	"\bDataNode\x122\n" +
	"\x04type\x18\x01 \x01(\x0e2\x16.message.DataNode.Type:\x06CLIENTR\x04type\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
	"\x04port\x18\x04 \x01(\tR\x04port\x12%\n" +
	"\x0etimestamp_usec\x18\x03 \x01(\fR\rtimestampUsec\"+\n" +
	"\x04Type\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\n" +
	"\n" +
	"\x06CLIENT\x10\x01\x12\n" +
	"\n" +
	"\x06SERVER\x10\x02\"\xba\x01\n" +
	"\x03Msg\x12\x14\n" +
	"\x05magic\x18\x01 \x01(\x06R\x05magic\x12\x10\n" +
	"\x03seq\x18\x02 \x01(\fR\x03seq\x12#\n" +
	"\x03src\x18\x03 \x01(\v2\x11.message.DataNodeR\x03src\x12#\n" +
	"\x03dst\x18\x04 \x01(\v2\x11.message.DataNodeR\x03dst\x12'\n" +
	"\x05nodes\x18\x05 \x03(\v2\x11.message.DataNodeR\x05nodes\x12\x18\n" +
	"\apayload\x18c \x01(\fR\apayloadB>Z<github.com/cloudprober/cloudprober/internal/udpmessage/proto"

var (
	file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_goTypes = []any{
	(DataNode_Type)(0), // 0: message.DataNode.Type
	(*Constants)(nil),  // 1: message.Constants
	(*DataNode)(nil),   // 2: message.DataNode
	(*Msg)(nil),        // 3: message.Msg
}
var file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_depIdxs = []int32{
	0, // 0: message.DataNode.type:type_name -> message.DataNode.Type
	2, // 1: message.Msg.src:type_name -> message.DataNode
	2, // 2: message.Msg.dst:type_name -> message.DataNode
	2, // 3: message.Msg.nodes:type_name -> message.DataNode
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_init() }
func file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_init() {
	if File_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   3,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_depIdxs,
		EnumInfos:         file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_enumTypes,
		MessageInfos:      file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto = out.File
	file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_internal_udpmessage_proto_message_proto_depIdxs = nil
}
