// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v5.29.2
// source: p2p/protocol/identify/pb/identify.proto

package pb

import (
	protoreflect 
	protoimpl 
	reflect 
	sync 
	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 Identify struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// protocolVersion determines compatibility between peers
	ProtocolVersion *string `protobuf:"bytes,5,opt,name=protocolVersion" json:"protocolVersion,omitempty"` // e.g. ipfs/1.0.0
	// agentVersion is like a UserAgent string in browsers, or client version in bittorrent
	// includes the client name and client.
	AgentVersion *string `protobuf:"bytes,6,opt,name=agentVersion" json:"agentVersion,omitempty"` // e.g. go-ipfs/0.1.0
	// publicKey is this node's public key (which also gives its node.ID)
	// - may not need to be sent, as secure channel implies it has been sent.
	// - then again, if we change / disable secure channel, may still want it.
	PublicKey []byte `protobuf:"bytes,1,opt,name=publicKey" json:"publicKey,omitempty"`
	// listenAddrs are the multiaddrs the sender node listens for open connections on
	ListenAddrs [][]byte `protobuf:"bytes,2,rep,name=listenAddrs" json:"listenAddrs,omitempty"`
	// oservedAddr is the multiaddr of the remote endpoint that the sender node perceives
	// this is useful information to convey to the other side, as it helps the remote endpoint
	// determine whether its connection to the local peer goes through NAT.
	ObservedAddr []byte `protobuf:"bytes,4,opt,name=observedAddr" json:"observedAddr,omitempty"`
	// protocols are the services this node is running
	Protocols []string `protobuf:"bytes,3,rep,name=protocols" json:"protocols,omitempty"`
	// signedPeerRecord contains a serialized SignedEnvelope containing a PeerRecord,
	// signed by the sending node. It contains the same addresses as the listenAddrs field, but
	// in a form that lets us share authenticated addrs with other peers.
	// see github.com/libp2p/go-libp2p/core/record/pb/envelope.proto and
	// github.com/libp2p/go-libp2p/core/peer/pb/peer_record.proto for message definitions.
	SignedPeerRecord []byte `protobuf:"bytes,8,opt,name=signedPeerRecord" json:"signedPeerRecord,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func ( *Identify) () {
	* = Identify{}
	 := &file_p2p_protocol_identify_pb_identify_proto_msgTypes[0]
	 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
	.StoreMessageInfo()
}

func ( *Identify) () string {
	return protoimpl.X.MessageStringOf()
}

func (*Identify) () {}

func ( *Identify) () protoreflect.Message {
	 := &file_p2p_protocol_identify_pb_identify_proto_msgTypes[0]
	if  != nil {
		 := protoimpl.X.MessageStateOf(protoimpl.Pointer())
		if .LoadMessageInfo() == nil {
			.StoreMessageInfo()
		}
		return 
	}
	return .MessageOf()
}

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

func ( *Identify) () string {
	if  != nil && .ProtocolVersion != nil {
		return *.ProtocolVersion
	}
	return ""
}

func ( *Identify) () string {
	if  != nil && .AgentVersion != nil {
		return *.AgentVersion
	}
	return ""
}

func ( *Identify) () []byte {
	if  != nil {
		return .PublicKey
	}
	return nil
}

func ( *Identify) () [][]byte {
	if  != nil {
		return .ListenAddrs
	}
	return nil
}

func ( *Identify) () []byte {
	if  != nil {
		return .ObservedAddr
	}
	return nil
}

func ( *Identify) () []string {
	if  != nil {
		return .Protocols
	}
	return nil
}

func ( *Identify) () []byte {
	if  != nil {
		return .SignedPeerRecord
	}
	return nil
}

var File_p2p_protocol_identify_pb_identify_proto protoreflect.FileDescriptor

const file_p2p_protocol_identify_pb_identify_proto_rawDesc = "" +
	"\n" +
	"'p2p/protocol/identify/pb/identify.proto\x12\videntify.pb\"\x86\x02\n" +
	"\bIdentify\x12(\n" +
	"\x0fprotocolVersion\x18\x05 \x01(\tR\x0fprotocolVersion\x12\"\n" +
	"\fagentVersion\x18\x06 \x01(\tR\fagentVersion\x12\x1c\n" +
	"\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12 \n" +
	"\vlistenAddrs\x18\x02 \x03(\fR\vlistenAddrs\x12\"\n" +
	"\fobservedAddr\x18\x04 \x01(\fR\fobservedAddr\x12\x1c\n" +
	"\tprotocols\x18\x03 \x03(\tR\tprotocols\x12*\n" +
	"\x10signedPeerRecord\x18\b \x01(\fR\x10signedPeerRecordB6Z4github.com/libp2p/go-libp2p/p2p/protocol/identify/pb"

var (
	file_p2p_protocol_identify_pb_identify_proto_rawDescOnce sync.Once
	file_p2p_protocol_identify_pb_identify_proto_rawDescData []byte
)

func file_p2p_protocol_identify_pb_identify_proto_rawDescGZIP() []byte {
	file_p2p_protocol_identify_pb_identify_proto_rawDescOnce.Do(func() {
		file_p2p_protocol_identify_pb_identify_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_p2p_protocol_identify_pb_identify_proto_rawDesc), len(file_p2p_protocol_identify_pb_identify_proto_rawDesc)))
	})
	return file_p2p_protocol_identify_pb_identify_proto_rawDescData
}

var file_p2p_protocol_identify_pb_identify_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_p2p_protocol_identify_pb_identify_proto_goTypes = []any{
	(*Identify)(nil), // 0: identify.pb.Identify
}
var file_p2p_protocol_identify_pb_identify_proto_depIdxs = []int32{
	0, // [0:0] is the sub-list for method output_type
	0, // [0:0] is the sub-list for method input_type
	0, // [0:0] is the sub-list for extension type_name
	0, // [0:0] is the sub-list for extension extendee
	0, // [0:0] is the sub-list for field type_name
}

func init() { file_p2p_protocol_identify_pb_identify_proto_init() }
func file_p2p_protocol_identify_pb_identify_proto_init() {
	if File_p2p_protocol_identify_pb_identify_proto != nil {
		return
	}
	type  struct{}
	 := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf({}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_p2p_protocol_identify_pb_identify_proto_rawDesc), len(file_p2p_protocol_identify_pb_identify_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_p2p_protocol_identify_pb_identify_proto_goTypes,
		DependencyIndexes: file_p2p_protocol_identify_pb_identify_proto_depIdxs,
		MessageInfos:      file_p2p_protocol_identify_pb_identify_proto_msgTypes,
	}.Build()
	File_p2p_protocol_identify_pb_identify_proto = .File
	file_p2p_protocol_identify_pb_identify_proto_goTypes = nil
	file_p2p_protocol_identify_pb_identify_proto_depIdxs = nil
}