status-go/protocol/protobuf/chat_message.pb.go

2516 lines
92 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.29.1
// protoc v3.20.3
// source: chat_message.proto
package protobuf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
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 AudioMessage_AudioType int32
const (
AudioMessage_UNKNOWN_AUDIO_TYPE AudioMessage_AudioType = 0
AudioMessage_AAC AudioMessage_AudioType = 1
AudioMessage_AMR AudioMessage_AudioType = 2
)
// Enum value maps for AudioMessage_AudioType.
var (
AudioMessage_AudioType_name = map[int32]string{
0: "UNKNOWN_AUDIO_TYPE",
1: "AAC",
2: "AMR",
}
AudioMessage_AudioType_value = map[string]int32{
"UNKNOWN_AUDIO_TYPE": 0,
"AAC": 1,
"AMR": 2,
}
)
func (x AudioMessage_AudioType) Enum() *AudioMessage_AudioType {
p := new(AudioMessage_AudioType)
*p = x
return p
}
func (x AudioMessage_AudioType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AudioMessage_AudioType) Descriptor() protoreflect.EnumDescriptor {
return file_chat_message_proto_enumTypes[0].Descriptor()
}
func (AudioMessage_AudioType) Type() protoreflect.EnumType {
return &file_chat_message_proto_enumTypes[0]
}
func (x AudioMessage_AudioType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AudioMessage_AudioType.Descriptor instead.
func (AudioMessage_AudioType) EnumDescriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{2, 0}
}
type UnfurledLink_LinkType int32
const (
UnfurledLink_LINK UnfurledLink_LinkType = 0
UnfurledLink_IMAGE UnfurledLink_LinkType = 1
)
// Enum value maps for UnfurledLink_LinkType.
var (
UnfurledLink_LinkType_name = map[int32]string{
0: "LINK",
1: "IMAGE",
}
UnfurledLink_LinkType_value = map[string]int32{
"LINK": 0,
"IMAGE": 1,
}
)
func (x UnfurledLink_LinkType) Enum() *UnfurledLink_LinkType {
p := new(UnfurledLink_LinkType)
*p = x
return p
}
func (x UnfurledLink_LinkType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (UnfurledLink_LinkType) Descriptor() protoreflect.EnumDescriptor {
return file_chat_message_proto_enumTypes[1].Descriptor()
}
func (UnfurledLink_LinkType) Type() protoreflect.EnumType {
return &file_chat_message_proto_enumTypes[1]
}
func (x UnfurledLink_LinkType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use UnfurledLink_LinkType.Descriptor instead.
func (UnfurledLink_LinkType) EnumDescriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{11, 0}
}
type ChatMessage_ContentType int32
const (
ChatMessage_UNKNOWN_CONTENT_TYPE ChatMessage_ContentType = 0
ChatMessage_TEXT_PLAIN ChatMessage_ContentType = 1
ChatMessage_STICKER ChatMessage_ContentType = 2
ChatMessage_STATUS ChatMessage_ContentType = 3
ChatMessage_EMOJI ChatMessage_ContentType = 4
ChatMessage_TRANSACTION_COMMAND ChatMessage_ContentType = 5
// Only local
ChatMessage_SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP ChatMessage_ContentType = 6
ChatMessage_IMAGE ChatMessage_ContentType = 7
ChatMessage_AUDIO ChatMessage_ContentType = 8
ChatMessage_COMMUNITY ChatMessage_ContentType = 9
// Only local
ChatMessage_SYSTEM_MESSAGE_GAP ChatMessage_ContentType = 10
ChatMessage_CONTACT_REQUEST ChatMessage_ContentType = 11
ChatMessage_DISCORD_MESSAGE ChatMessage_ContentType = 12
ChatMessage_IDENTITY_VERIFICATION ChatMessage_ContentType = 13
// Only local
ChatMessage_SYSTEM_MESSAGE_PINNED_MESSAGE ChatMessage_ContentType = 14
// Only local
ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_SENT ChatMessage_ContentType = 15
// Only local
ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED ChatMessage_ContentType = 16
// Only local
ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED ChatMessage_ContentType = 17
)
// Enum value maps for ChatMessage_ContentType.
var (
ChatMessage_ContentType_name = map[int32]string{
0: "UNKNOWN_CONTENT_TYPE",
1: "TEXT_PLAIN",
2: "STICKER",
3: "STATUS",
4: "EMOJI",
5: "TRANSACTION_COMMAND",
6: "SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP",
7: "IMAGE",
8: "AUDIO",
9: "COMMUNITY",
10: "SYSTEM_MESSAGE_GAP",
11: "CONTACT_REQUEST",
12: "DISCORD_MESSAGE",
13: "IDENTITY_VERIFICATION",
14: "SYSTEM_MESSAGE_PINNED_MESSAGE",
15: "SYSTEM_MESSAGE_MUTUAL_EVENT_SENT",
16: "SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED",
17: "SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED",
}
ChatMessage_ContentType_value = map[string]int32{
"UNKNOWN_CONTENT_TYPE": 0,
"TEXT_PLAIN": 1,
"STICKER": 2,
"STATUS": 3,
"EMOJI": 4,
"TRANSACTION_COMMAND": 5,
"SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP": 6,
"IMAGE": 7,
"AUDIO": 8,
"COMMUNITY": 9,
"SYSTEM_MESSAGE_GAP": 10,
"CONTACT_REQUEST": 11,
"DISCORD_MESSAGE": 12,
"IDENTITY_VERIFICATION": 13,
"SYSTEM_MESSAGE_PINNED_MESSAGE": 14,
"SYSTEM_MESSAGE_MUTUAL_EVENT_SENT": 15,
"SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED": 16,
"SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED": 17,
}
)
func (x ChatMessage_ContentType) Enum() *ChatMessage_ContentType {
p := new(ChatMessage_ContentType)
*p = x
return p
}
func (x ChatMessage_ContentType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ChatMessage_ContentType) Descriptor() protoreflect.EnumDescriptor {
return file_chat_message_proto_enumTypes[2].Descriptor()
}
func (ChatMessage_ContentType) Type() protoreflect.EnumType {
return &file_chat_message_proto_enumTypes[2]
}
func (x ChatMessage_ContentType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ChatMessage_ContentType.Descriptor instead.
func (ChatMessage_ContentType) EnumDescriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{17, 0}
}
type StickerMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
Pack int32 `protobuf:"varint,2,opt,name=pack,proto3" json:"pack,omitempty"`
}
func (x *StickerMessage) Reset() {
*x = StickerMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StickerMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StickerMessage) ProtoMessage() {}
func (x *StickerMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead.
func (*StickerMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{0}
}
func (x *StickerMessage) GetHash() string {
if x != nil {
return x.Hash
}
return ""
}
func (x *StickerMessage) GetPack() int32 {
if x != nil {
return x.Pack
}
return 0
}
type ImageMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Type ImageType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.ImageType" json:"type,omitempty"`
AlbumId string `protobuf:"bytes,3,opt,name=album_id,json=albumId,proto3" json:"album_id,omitempty"`
Width uint32 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"`
Height uint32 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
AlbumImagesCount uint32 `protobuf:"varint,6,opt,name=album_images_count,json=albumImagesCount,proto3" json:"album_images_count,omitempty"`
}
func (x *ImageMessage) Reset() {
*x = ImageMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ImageMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ImageMessage) ProtoMessage() {}
func (x *ImageMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ImageMessage.ProtoReflect.Descriptor instead.
func (*ImageMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{1}
}
func (x *ImageMessage) GetPayload() []byte {
if x != nil {
return x.Payload
}
return nil
}
func (x *ImageMessage) GetType() ImageType {
if x != nil {
return x.Type
}
return ImageType_UNKNOWN_IMAGE_TYPE
}
func (x *ImageMessage) GetAlbumId() string {
if x != nil {
return x.AlbumId
}
return ""
}
func (x *ImageMessage) GetWidth() uint32 {
if x != nil {
return x.Width
}
return 0
}
func (x *ImageMessage) GetHeight() uint32 {
if x != nil {
return x.Height
}
return 0
}
func (x *ImageMessage) GetAlbumImagesCount() uint32 {
if x != nil {
return x.AlbumImagesCount
}
return 0
}
type AudioMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Type AudioMessage_AudioType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.AudioMessage_AudioType" json:"type,omitempty"`
DurationMs uint64 `protobuf:"varint,3,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
}
func (x *AudioMessage) Reset() {
*x = AudioMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AudioMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AudioMessage) ProtoMessage() {}
func (x *AudioMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AudioMessage.ProtoReflect.Descriptor instead.
func (*AudioMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{2}
}
func (x *AudioMessage) GetPayload() []byte {
if x != nil {
return x.Payload
}
return nil
}
func (x *AudioMessage) GetType() AudioMessage_AudioType {
if x != nil {
return x.Type
}
return AudioMessage_UNKNOWN_AUDIO_TYPE
}
func (x *AudioMessage) GetDurationMs() uint64 {
if x != nil {
return x.DurationMs
}
return 0
}
type EditMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
// Text of the message
Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
MessageId string `protobuf:"bytes,4,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
// Grant for community edit messages
Grant []byte `protobuf:"bytes,5,opt,name=grant,proto3" json:"grant,omitempty"`
// The type of message (public/one-to-one/private-group-chat)
MessageType MessageType `protobuf:"varint,6,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
ContentType ChatMessage_ContentType `protobuf:"varint,7,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"`
UnfurledLinks []*UnfurledLink `protobuf:"bytes,8,rep,name=unfurled_links,json=unfurledLinks,proto3" json:"unfurled_links,omitempty"`
UnfurledStatusLinks *UnfurledStatusLinks `protobuf:"bytes,9,opt,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"`
}
func (x *EditMessage) Reset() {
*x = EditMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EditMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EditMessage) ProtoMessage() {}
func (x *EditMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EditMessage.ProtoReflect.Descriptor instead.
func (*EditMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{3}
}
func (x *EditMessage) GetClock() uint64 {
if x != nil {
return x.Clock
}
return 0
}
func (x *EditMessage) GetText() string {
if x != nil {
return x.Text
}
return ""
}
func (x *EditMessage) GetChatId() string {
if x != nil {
return x.ChatId
}
return ""
}
func (x *EditMessage) GetMessageId() string {
if x != nil {
return x.MessageId
}
return ""
}
func (x *EditMessage) GetGrant() []byte {
if x != nil {
return x.Grant
}
return nil
}
func (x *EditMessage) GetMessageType() MessageType {
if x != nil {
return x.MessageType
}
return MessageType_UNKNOWN_MESSAGE_TYPE
}
func (x *EditMessage) GetContentType() ChatMessage_ContentType {
if x != nil {
return x.ContentType
}
return ChatMessage_UNKNOWN_CONTENT_TYPE
}
func (x *EditMessage) GetUnfurledLinks() []*UnfurledLink {
if x != nil {
return x.UnfurledLinks
}
return nil
}
func (x *EditMessage) GetUnfurledStatusLinks() *UnfurledStatusLinks {
if x != nil {
return x.UnfurledStatusLinks
}
return nil
}
type DeleteMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
ChatId string `protobuf:"bytes,2,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
// Grant for community delete messages
Grant []byte `protobuf:"bytes,4,opt,name=grant,proto3" json:"grant,omitempty"`
// The type of message (public/one-to-one/private-group-chat)
MessageType MessageType `protobuf:"varint,5,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
DeletedBy string `protobuf:"bytes,6,opt,name=deleted_by,json=deletedBy,proto3" json:"deleted_by,omitempty"`
}
func (x *DeleteMessage) Reset() {
*x = DeleteMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteMessage) ProtoMessage() {}
func (x *DeleteMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteMessage.ProtoReflect.Descriptor instead.
func (*DeleteMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{4}
}
func (x *DeleteMessage) GetClock() uint64 {
if x != nil {
return x.Clock
}
return 0
}
func (x *DeleteMessage) GetChatId() string {
if x != nil {
return x.ChatId
}
return ""
}
func (x *DeleteMessage) GetMessageId() string {
if x != nil {
return x.MessageId
}
return ""
}
func (x *DeleteMessage) GetGrant() []byte {
if x != nil {
return x.Grant
}
return nil
}
func (x *DeleteMessage) GetMessageType() MessageType {
if x != nil {
return x.MessageType
}
return MessageType_UNKNOWN_MESSAGE_TYPE
}
func (x *DeleteMessage) GetDeletedBy() string {
if x != nil {
return x.DeletedBy
}
return ""
}
type SyncDeleteForMeMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
MessageId string `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
}
func (x *SyncDeleteForMeMessage) Reset() {
*x = SyncDeleteForMeMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncDeleteForMeMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncDeleteForMeMessage) ProtoMessage() {}
func (x *SyncDeleteForMeMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncDeleteForMeMessage.ProtoReflect.Descriptor instead.
func (*SyncDeleteForMeMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{5}
}
func (x *SyncDeleteForMeMessage) GetClock() uint64 {
if x != nil {
return x.Clock
}
return 0
}
func (x *SyncDeleteForMeMessage) GetMessageId() string {
if x != nil {
return x.MessageId
}
return ""
}
type DiscordMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
TimestampEdited string `protobuf:"bytes,4,opt,name=timestampEdited,proto3" json:"timestampEdited,omitempty"`
Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
Author *DiscordMessageAuthor `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"`
Reference *DiscordMessageReference `protobuf:"bytes,7,opt,name=reference,proto3" json:"reference,omitempty"`
Attachments []*DiscordMessageAttachment `protobuf:"bytes,8,rep,name=attachments,proto3" json:"attachments,omitempty"`
}
func (x *DiscordMessage) Reset() {
*x = DiscordMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DiscordMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiscordMessage) ProtoMessage() {}
func (x *DiscordMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiscordMessage.ProtoReflect.Descriptor instead.
func (*DiscordMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{6}
}
func (x *DiscordMessage) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DiscordMessage) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *DiscordMessage) GetTimestamp() string {
if x != nil {
return x.Timestamp
}
return ""
}
func (x *DiscordMessage) GetTimestampEdited() string {
if x != nil {
return x.TimestampEdited
}
return ""
}
func (x *DiscordMessage) GetContent() string {
if x != nil {
return x.Content
}
return ""
}
func (x *DiscordMessage) GetAuthor() *DiscordMessageAuthor {
if x != nil {
return x.Author
}
return nil
}
func (x *DiscordMessage) GetReference() *DiscordMessageReference {
if x != nil {
return x.Reference
}
return nil
}
func (x *DiscordMessage) GetAttachments() []*DiscordMessageAttachment {
if x != nil {
return x.Attachments
}
return nil
}
type DiscordMessageAuthor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Discriminator string `protobuf:"bytes,3,opt,name=discriminator,proto3" json:"discriminator,omitempty"`
Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname,omitempty"`
AvatarUrl string `protobuf:"bytes,5,opt,name=avatarUrl,proto3" json:"avatarUrl,omitempty"`
AvatarImagePayload []byte `protobuf:"bytes,6,opt,name=avatarImagePayload,proto3" json:"avatarImagePayload,omitempty"`
LocalUrl string `protobuf:"bytes,7,opt,name=localUrl,proto3" json:"localUrl,omitempty"`
}
func (x *DiscordMessageAuthor) Reset() {
*x = DiscordMessageAuthor{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DiscordMessageAuthor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiscordMessageAuthor) ProtoMessage() {}
func (x *DiscordMessageAuthor) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiscordMessageAuthor.ProtoReflect.Descriptor instead.
func (*DiscordMessageAuthor) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{7}
}
func (x *DiscordMessageAuthor) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DiscordMessageAuthor) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DiscordMessageAuthor) GetDiscriminator() string {
if x != nil {
return x.Discriminator
}
return ""
}
func (x *DiscordMessageAuthor) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *DiscordMessageAuthor) GetAvatarUrl() string {
if x != nil {
return x.AvatarUrl
}
return ""
}
func (x *DiscordMessageAuthor) GetAvatarImagePayload() []byte {
if x != nil {
return x.AvatarImagePayload
}
return nil
}
func (x *DiscordMessageAuthor) GetLocalUrl() string {
if x != nil {
return x.LocalUrl
}
return ""
}
type DiscordMessageReference struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MessageId string `protobuf:"bytes,1,opt,name=messageId,proto3" json:"messageId,omitempty"`
ChannelId string `protobuf:"bytes,2,opt,name=channelId,proto3" json:"channelId,omitempty"`
GuildId string `protobuf:"bytes,3,opt,name=guildId,proto3" json:"guildId,omitempty"`
}
func (x *DiscordMessageReference) Reset() {
*x = DiscordMessageReference{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DiscordMessageReference) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiscordMessageReference) ProtoMessage() {}
func (x *DiscordMessageReference) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiscordMessageReference.ProtoReflect.Descriptor instead.
func (*DiscordMessageReference) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{8}
}
func (x *DiscordMessageReference) GetMessageId() string {
if x != nil {
return x.MessageId
}
return ""
}
func (x *DiscordMessageReference) GetChannelId() string {
if x != nil {
return x.ChannelId
}
return ""
}
func (x *DiscordMessageReference) GetGuildId() string {
if x != nil {
return x.GuildId
}
return ""
}
type DiscordMessageAttachment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
FileName string `protobuf:"bytes,4,opt,name=fileName,proto3" json:"fileName,omitempty"`
FileSizeBytes uint64 `protobuf:"varint,5,opt,name=fileSizeBytes,proto3" json:"fileSizeBytes,omitempty"`
ContentType string `protobuf:"bytes,6,opt,name=contentType,proto3" json:"contentType,omitempty"`
Payload []byte `protobuf:"bytes,7,opt,name=payload,proto3" json:"payload,omitempty"`
LocalUrl string `protobuf:"bytes,8,opt,name=localUrl,proto3" json:"localUrl,omitempty"`
}
func (x *DiscordMessageAttachment) Reset() {
*x = DiscordMessageAttachment{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DiscordMessageAttachment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiscordMessageAttachment) ProtoMessage() {}
func (x *DiscordMessageAttachment) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiscordMessageAttachment.ProtoReflect.Descriptor instead.
func (*DiscordMessageAttachment) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{9}
}
func (x *DiscordMessageAttachment) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DiscordMessageAttachment) GetMessageId() string {
if x != nil {
return x.MessageId
}
return ""
}
func (x *DiscordMessageAttachment) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *DiscordMessageAttachment) GetFileName() string {
if x != nil {
return x.FileName
}
return ""
}
func (x *DiscordMessageAttachment) GetFileSizeBytes() uint64 {
if x != nil {
return x.FileSizeBytes
}
return 0
}
func (x *DiscordMessageAttachment) GetContentType() string {
if x != nil {
return x.ContentType
}
return ""
}
func (x *DiscordMessageAttachment) GetPayload() []byte {
if x != nil {
return x.Payload
}
return nil
}
func (x *DiscordMessageAttachment) GetLocalUrl() string {
if x != nil {
return x.LocalUrl
}
return ""
}
type UnfurledLinkThumbnail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Width uint32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"`
Height uint32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
}
func (x *UnfurledLinkThumbnail) Reset() {
*x = UnfurledLinkThumbnail{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledLinkThumbnail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledLinkThumbnail) ProtoMessage() {}
func (x *UnfurledLinkThumbnail) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledLinkThumbnail.ProtoReflect.Descriptor instead.
func (*UnfurledLinkThumbnail) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{10}
}
func (x *UnfurledLinkThumbnail) GetPayload() []byte {
if x != nil {
return x.Payload
}
return nil
}
func (x *UnfurledLinkThumbnail) GetWidth() uint32 {
if x != nil {
return x.Width
}
return 0
}
func (x *UnfurledLinkThumbnail) GetHeight() uint32 {
if x != nil {
return x.Height
}
return 0
}
type UnfurledLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A valid URL which uniquely identifies this link.
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
// Website's title.
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
// Description is sometimes available, but can be empty. Most mainstream
// websites provide this information.
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
ThumbnailPayload []byte `protobuf:"bytes,4,opt,name=thumbnail_payload,json=thumbnailPayload,proto3" json:"thumbnail_payload,omitempty"`
ThumbnailWidth uint32 `protobuf:"varint,5,opt,name=thumbnail_width,json=thumbnailWidth,proto3" json:"thumbnail_width,omitempty"`
ThumbnailHeight uint32 `protobuf:"varint,6,opt,name=thumbnail_height,json=thumbnailHeight,proto3" json:"thumbnail_height,omitempty"`
Type UnfurledLink_LinkType `protobuf:"varint,7,opt,name=type,proto3,enum=protobuf.UnfurledLink_LinkType" json:"type,omitempty"`
}
func (x *UnfurledLink) Reset() {
*x = UnfurledLink{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledLink) ProtoMessage() {}
func (x *UnfurledLink) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledLink.ProtoReflect.Descriptor instead.
func (*UnfurledLink) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{11}
}
func (x *UnfurledLink) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *UnfurledLink) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *UnfurledLink) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UnfurledLink) GetThumbnailPayload() []byte {
if x != nil {
return x.ThumbnailPayload
}
return nil
}
func (x *UnfurledLink) GetThumbnailWidth() uint32 {
if x != nil {
return x.ThumbnailWidth
}
return 0
}
func (x *UnfurledLink) GetThumbnailHeight() uint32 {
if x != nil {
return x.ThumbnailHeight
}
return 0
}
func (x *UnfurledLink) GetType() UnfurledLink_LinkType {
if x != nil {
return x.Type
}
return UnfurledLink_LINK
}
type UnfurledStatusContactLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
Icon *UnfurledLinkThumbnail `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"`
}
func (x *UnfurledStatusContactLink) Reset() {
*x = UnfurledStatusContactLink{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledStatusContactLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledStatusContactLink) ProtoMessage() {}
func (x *UnfurledStatusContactLink) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledStatusContactLink.ProtoReflect.Descriptor instead.
func (*UnfurledStatusContactLink) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{12}
}
func (x *UnfurledStatusContactLink) GetPublicKey() []byte {
if x != nil {
return x.PublicKey
}
return nil
}
func (x *UnfurledStatusContactLink) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *UnfurledStatusContactLink) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UnfurledStatusContactLink) GetIcon() *UnfurledLinkThumbnail {
if x != nil {
return x.Icon
}
return nil
}
type UnfurledStatusCommunityLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
MembersCount uint32 `protobuf:"varint,4,opt,name=members_count,json=membersCount,proto3" json:"members_count,omitempty"`
Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"`
Icon *UnfurledLinkThumbnail `protobuf:"bytes,7,opt,name=icon,proto3" json:"icon,omitempty"`
Banner *UnfurledLinkThumbnail `protobuf:"bytes,8,opt,name=banner,proto3" json:"banner,omitempty"`
}
func (x *UnfurledStatusCommunityLink) Reset() {
*x = UnfurledStatusCommunityLink{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledStatusCommunityLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledStatusCommunityLink) ProtoMessage() {}
func (x *UnfurledStatusCommunityLink) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledStatusCommunityLink.ProtoReflect.Descriptor instead.
func (*UnfurledStatusCommunityLink) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{13}
}
func (x *UnfurledStatusCommunityLink) GetCommunityId() []byte {
if x != nil {
return x.CommunityId
}
return nil
}
func (x *UnfurledStatusCommunityLink) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *UnfurledStatusCommunityLink) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UnfurledStatusCommunityLink) GetMembersCount() uint32 {
if x != nil {
return x.MembersCount
}
return 0
}
func (x *UnfurledStatusCommunityLink) GetColor() string {
if x != nil {
return x.Color
}
return ""
}
func (x *UnfurledStatusCommunityLink) GetIcon() *UnfurledLinkThumbnail {
if x != nil {
return x.Icon
}
return nil
}
func (x *UnfurledStatusCommunityLink) GetBanner() *UnfurledLinkThumbnail {
if x != nil {
return x.Banner
}
return nil
}
type UnfurledStatusChannelLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChannelUuid []byte `protobuf:"bytes,1,opt,name=channel_uuid,json=channelUuid,proto3" json:"channel_uuid,omitempty"`
Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji,omitempty"`
DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"`
Community *UnfurledStatusCommunityLink `protobuf:"bytes,6,opt,name=community,proto3" json:"community,omitempty"`
}
func (x *UnfurledStatusChannelLink) Reset() {
*x = UnfurledStatusChannelLink{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledStatusChannelLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledStatusChannelLink) ProtoMessage() {}
func (x *UnfurledStatusChannelLink) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledStatusChannelLink.ProtoReflect.Descriptor instead.
func (*UnfurledStatusChannelLink) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{14}
}
func (x *UnfurledStatusChannelLink) GetChannelUuid() []byte {
if x != nil {
return x.ChannelUuid
}
return nil
}
func (x *UnfurledStatusChannelLink) GetEmoji() string {
if x != nil {
return x.Emoji
}
return ""
}
func (x *UnfurledStatusChannelLink) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *UnfurledStatusChannelLink) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UnfurledStatusChannelLink) GetColor() string {
if x != nil {
return x.Color
}
return ""
}
func (x *UnfurledStatusChannelLink) GetCommunity() *UnfurledStatusCommunityLink {
if x != nil {
return x.Community
}
return nil
}
type UnfurledStatusLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
// Types that are assignable to Payload:
//
// *UnfurledStatusLink_Contact
// *UnfurledStatusLink_Community
// *UnfurledStatusLink_Channel
Payload isUnfurledStatusLink_Payload `protobuf_oneof:"payload"`
}
func (x *UnfurledStatusLink) Reset() {
*x = UnfurledStatusLink{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledStatusLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledStatusLink) ProtoMessage() {}
func (x *UnfurledStatusLink) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledStatusLink.ProtoReflect.Descriptor instead.
func (*UnfurledStatusLink) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{15}
}
func (x *UnfurledStatusLink) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (m *UnfurledStatusLink) GetPayload() isUnfurledStatusLink_Payload {
if m != nil {
return m.Payload
}
return nil
}
func (x *UnfurledStatusLink) GetContact() *UnfurledStatusContactLink {
if x, ok := x.GetPayload().(*UnfurledStatusLink_Contact); ok {
return x.Contact
}
return nil
}
func (x *UnfurledStatusLink) GetCommunity() *UnfurledStatusCommunityLink {
if x, ok := x.GetPayload().(*UnfurledStatusLink_Community); ok {
return x.Community
}
return nil
}
func (x *UnfurledStatusLink) GetChannel() *UnfurledStatusChannelLink {
if x, ok := x.GetPayload().(*UnfurledStatusLink_Channel); ok {
return x.Channel
}
return nil
}
type isUnfurledStatusLink_Payload interface {
isUnfurledStatusLink_Payload()
}
type UnfurledStatusLink_Contact struct {
Contact *UnfurledStatusContactLink `protobuf:"bytes,2,opt,name=contact,proto3,oneof"`
}
type UnfurledStatusLink_Community struct {
Community *UnfurledStatusCommunityLink `protobuf:"bytes,3,opt,name=community,proto3,oneof"`
}
type UnfurledStatusLink_Channel struct {
Channel *UnfurledStatusChannelLink `protobuf:"bytes,4,opt,name=channel,proto3,oneof"`
}
func (*UnfurledStatusLink_Contact) isUnfurledStatusLink_Payload() {}
func (*UnfurledStatusLink_Community) isUnfurledStatusLink_Payload() {}
func (*UnfurledStatusLink_Channel) isUnfurledStatusLink_Payload() {}
// Create a wrapper around repeated property for proper unmarshalling
type UnfurledStatusLinks struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UnfurledStatusLinks []*UnfurledStatusLink `protobuf:"bytes,1,rep,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"`
}
func (x *UnfurledStatusLinks) Reset() {
*x = UnfurledStatusLinks{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnfurledStatusLinks) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnfurledStatusLinks) ProtoMessage() {}
func (x *UnfurledStatusLinks) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnfurledStatusLinks.ProtoReflect.Descriptor instead.
func (*UnfurledStatusLinks) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{16}
}
func (x *UnfurledStatusLinks) GetUnfurledStatusLinks() []*UnfurledStatusLink {
if x != nil {
return x.UnfurledStatusLinks
}
return nil
}
type ChatMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Lamport timestamp of the chat message
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
// Unix timestamps in milliseconds, currently not used as we use whisper as
// more reliable, but here so that we don't rely on it
Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// Text of the message
Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
// Id of the message that we are replying to
ResponseTo string `protobuf:"bytes,4,opt,name=response_to,json=responseTo,proto3" json:"response_to,omitempty"`
// Ens name of the sender
EnsName string `protobuf:"bytes,5,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
// Chat id, this field is symmetric for public-chats and private group chats,
// but asymmetric in case of one-to-ones, as the sender will use the chat-id
// of the received, while the receiver will use the chat-id of the sender.
// Probably should be the concatenation of sender-pk & receiver-pk in
// alphabetical order
ChatId string `protobuf:"bytes,6,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
// The type of message (public/one-to-one/private-group-chat)
MessageType MessageType `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"`
// The type of the content of the message
ContentType ChatMessage_ContentType `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"`
// Types that are assignable to Payload:
//
// *ChatMessage_Sticker
// *ChatMessage_Image
// *ChatMessage_Audio
// *ChatMessage_Community
// *ChatMessage_DiscordMessage
Payload isChatMessage_Payload `protobuf_oneof:"payload"`
// Grant for community chat messages
Grant []byte `protobuf:"bytes,13,opt,name=grant,proto3" json:"grant,omitempty"`
// Message author's display name, introduced in version 1
DisplayName string `protobuf:"bytes,14,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
ContactRequestPropagatedState *ContactRequestPropagatedState `protobuf:"bytes,15,opt,name=contact_request_propagated_state,json=contactRequestPropagatedState,proto3" json:"contact_request_propagated_state,omitempty"`
UnfurledLinks []*UnfurledLink `protobuf:"bytes,16,rep,name=unfurled_links,json=unfurledLinks,proto3" json:"unfurled_links,omitempty"`
Shard *Shard `protobuf:"bytes,17,opt,name=shard,proto3" json:"shard,omitempty"`
UnfurledStatusLinks *UnfurledStatusLinks `protobuf:"bytes,18,opt,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"`
}
func (x *ChatMessage) Reset() {
*x = ChatMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_chat_message_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChatMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChatMessage) ProtoMessage() {}
func (x *ChatMessage) ProtoReflect() protoreflect.Message {
mi := &file_chat_message_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChatMessage.ProtoReflect.Descriptor instead.
func (*ChatMessage) Descriptor() ([]byte, []int) {
return file_chat_message_proto_rawDescGZIP(), []int{17}
}
func (x *ChatMessage) GetClock() uint64 {
if x != nil {
return x.Clock
}
return 0
}
func (x *ChatMessage) GetTimestamp() uint64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *ChatMessage) GetText() string {
if x != nil {
return x.Text
}
return ""
}
func (x *ChatMessage) GetResponseTo() string {
if x != nil {
return x.ResponseTo
}
return ""
}
func (x *ChatMessage) GetEnsName() string {
if x != nil {
return x.EnsName
}
return ""
}
func (x *ChatMessage) GetChatId() string {
if x != nil {
return x.ChatId
}
return ""
}
func (x *ChatMessage) GetMessageType() MessageType {
if x != nil {
return x.MessageType
}
return MessageType_UNKNOWN_MESSAGE_TYPE
}
func (x *ChatMessage) GetContentType() ChatMessage_ContentType {
if x != nil {
return x.ContentType
}
return ChatMessage_UNKNOWN_CONTENT_TYPE
}
func (m *ChatMessage) GetPayload() isChatMessage_Payload {
if m != nil {
return m.Payload
}
return nil
}
func (x *ChatMessage) GetSticker() *StickerMessage {
if x, ok := x.GetPayload().(*ChatMessage_Sticker); ok {
return x.Sticker
}
return nil
}
func (x *ChatMessage) GetImage() *ImageMessage {
if x, ok := x.GetPayload().(*ChatMessage_Image); ok {
return x.Image
}
return nil
}
func (x *ChatMessage) GetAudio() *AudioMessage {
if x, ok := x.GetPayload().(*ChatMessage_Audio); ok {
return x.Audio
}
return nil
}
func (x *ChatMessage) GetCommunity() []byte {
if x, ok := x.GetPayload().(*ChatMessage_Community); ok {
return x.Community
}
return nil
}
func (x *ChatMessage) GetDiscordMessage() *DiscordMessage {
if x, ok := x.GetPayload().(*ChatMessage_DiscordMessage); ok {
return x.DiscordMessage
}
return nil
}
func (x *ChatMessage) GetGrant() []byte {
if x != nil {
return x.Grant
}
return nil
}
func (x *ChatMessage) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *ChatMessage) GetContactRequestPropagatedState() *ContactRequestPropagatedState {
if x != nil {
return x.ContactRequestPropagatedState
}
return nil
}
func (x *ChatMessage) GetUnfurledLinks() []*UnfurledLink {
if x != nil {
return x.UnfurledLinks
}
return nil
}
func (x *ChatMessage) GetShard() *Shard {
if x != nil {
return x.Shard
}
return nil
}
func (x *ChatMessage) GetUnfurledStatusLinks() *UnfurledStatusLinks {
if x != nil {
return x.UnfurledStatusLinks
}
return nil
}
type isChatMessage_Payload interface {
isChatMessage_Payload()
}
type ChatMessage_Sticker struct {
Sticker *StickerMessage `protobuf:"bytes,9,opt,name=sticker,proto3,oneof"`
}
type ChatMessage_Image struct {
Image *ImageMessage `protobuf:"bytes,10,opt,name=image,proto3,oneof"`
}
type ChatMessage_Audio struct {
Audio *AudioMessage `protobuf:"bytes,11,opt,name=audio,proto3,oneof"`
}
type ChatMessage_Community struct {
Community []byte `protobuf:"bytes,12,opt,name=community,proto3,oneof"`
}
type ChatMessage_DiscordMessage struct {
DiscordMessage *DiscordMessage `protobuf:"bytes,99,opt,name=discord_message,json=discordMessage,proto3,oneof"`
}
func (*ChatMessage_Sticker) isChatMessage_Payload() {}
func (*ChatMessage_Image) isChatMessage_Payload() {}
func (*ChatMessage_Audio) isChatMessage_Payload() {}
func (*ChatMessage_Community) isChatMessage_Payload() {}
func (*ChatMessage_DiscordMessage) isChatMessage_Payload() {}
var File_chat_message_proto protoreflect.FileDescriptor
var file_chat_message_proto_rawDesc = []byte{
0x0a, 0x12, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x0b,
0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x63, 0x6f, 0x6e,
0x74, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x73, 0x68, 0x61, 0x72,
0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x74, 0x69, 0x63, 0x6b,
0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73,
0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a,
0x04, 0x70, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x63,
0x6b, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x27, 0x0a, 0x04,
0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x5f, 0x69,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x49, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c,
0x0a, 0x12, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x6c, 0x62, 0x75,
0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb6, 0x01, 0x0a,
0x0c, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a,
0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01,
0x28, 0x04, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x22, 0x35,
0x0a, 0x09, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x41, 0x43, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
0x41, 0x4d, 0x52, 0x10, 0x02, 0x22, 0x97, 0x03, 0x0a, 0x0b, 0x45, 0x64, 0x69, 0x74, 0x4d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01,
0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12,
0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x38, 0x0a,
0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65,
0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a,
0x0e, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18,
0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0d, 0x75,
0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x15,
0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75,
0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22,
0xcc, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64,
0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12,
0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05,
0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x79, 0x22, 0x4d,
0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x4d,
0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63,
0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d,
0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xd5, 0x02,
0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45,
0x64, 0x69, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x64, 0x69, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x3f,
0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x73,
0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72,
0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,
0x44, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74,
0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72,
0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61,
0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72,
0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72,
0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55,
0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6d, 0x61, 0x67,
0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f,
0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x07,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x6f,
0x0a, 0x17, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e,
0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22,
0xf4, 0x01, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08,
0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65,
0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
0x0d, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20,
0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x5f, 0x0a, 0x15, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c,
0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12,
0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64,
0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12,
0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xaf, 0x02, 0x0a, 0x0c, 0x55, 0x6e, 0x66, 0x75,
0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f,
0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74,
0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12,
0x27, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x77, 0x69, 0x64,
0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e,
0x61, 0x69, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x75, 0x6d,
0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x48, 0x65, 0x69,
0x67, 0x68, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66,
0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x79,
0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1f, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x6b,
0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x00, 0x12, 0x09,
0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x01, 0x22, 0xb4, 0x01, 0x0a, 0x19, 0x55, 0x6e,
0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x74,
0x61, 0x63, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69,
0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x69,
0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e,
0x6b, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e,
0x22, 0xae, 0x02, 0x0a, 0x1b, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b,
0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c,
0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a,
0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f,
0x6c, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66,
0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61,
0x69, 0x6c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e,
0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b,
0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65,
0x72, 0x22, 0xf4, 0x01, 0x0a, 0x19, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x12,
0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x75,
0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70,
0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f,
0x6c, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x09, 0x63,
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xfa, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x66,
0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
0x6c, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e,
0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x74,
0x61, 0x63, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61,
0x63, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x09,
0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x68, 0x61,
0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x48,
0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61,
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x67, 0x0a, 0x13, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x50, 0x0a, 0x15,
0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75, 0x72,
0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xd3,
0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63,
0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x6d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73,
0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65,
0x72, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6d, 0x61, 0x67,
0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67,
0x65, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69,
0x6f, 0x12, 0x1e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
0x79, 0x12, 0x43, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18,
0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x70, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74,
0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x65, 0x52, 0x1d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x69,
0x6e, 0x6b, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e,
0x6b, 0x52, 0x0d, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x73,
0x12, 0x25, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64,
0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x51, 0x0a, 0x15, 0x75, 0x6e, 0x66, 0x75, 0x72,
0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xbc, 0x03, 0x0a, 0x0b, 0x43,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e,
0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59,
0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x50, 0x4c, 0x41,
0x49, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x10,
0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x03, 0x12, 0x09, 0x0a,
0x05, 0x45, 0x4d, 0x4f, 0x4a, 0x49, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x41, 0x4e,
0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10,
0x05, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53,
0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x49, 0x56,
0x41, 0x54, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x49,
0x4d, 0x41, 0x47, 0x45, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10,
0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x09,
0x12, 0x16, 0x0a, 0x12, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
0x47, 0x45, 0x5f, 0x47, 0x41, 0x50, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4f, 0x4e, 0x54,
0x41, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0b, 0x12, 0x13, 0x0a,
0x0f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56,
0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0d, 0x12, 0x21, 0x0a,
0x1d, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
0x50, 0x49, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0e,
0x12, 0x24, 0x0a, 0x20, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
0x47, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
0x53, 0x45, 0x4e, 0x54, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d,
0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f,
0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x10,
0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
0x47, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x11, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79,
0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_chat_message_proto_rawDescOnce sync.Once
file_chat_message_proto_rawDescData = file_chat_message_proto_rawDesc
)
func file_chat_message_proto_rawDescGZIP() []byte {
file_chat_message_proto_rawDescOnce.Do(func() {
file_chat_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_message_proto_rawDescData)
})
return file_chat_message_proto_rawDescData
}
var file_chat_message_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_chat_message_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_chat_message_proto_goTypes = []interface{}{
(AudioMessage_AudioType)(0), // 0: protobuf.AudioMessage.AudioType
(UnfurledLink_LinkType)(0), // 1: protobuf.UnfurledLink.LinkType
(ChatMessage_ContentType)(0), // 2: protobuf.ChatMessage.ContentType
(*StickerMessage)(nil), // 3: protobuf.StickerMessage
(*ImageMessage)(nil), // 4: protobuf.ImageMessage
(*AudioMessage)(nil), // 5: protobuf.AudioMessage
(*EditMessage)(nil), // 6: protobuf.EditMessage
(*DeleteMessage)(nil), // 7: protobuf.DeleteMessage
(*SyncDeleteForMeMessage)(nil), // 8: protobuf.SyncDeleteForMeMessage
(*DiscordMessage)(nil), // 9: protobuf.DiscordMessage
(*DiscordMessageAuthor)(nil), // 10: protobuf.DiscordMessageAuthor
(*DiscordMessageReference)(nil), // 11: protobuf.DiscordMessageReference
(*DiscordMessageAttachment)(nil), // 12: protobuf.DiscordMessageAttachment
(*UnfurledLinkThumbnail)(nil), // 13: protobuf.UnfurledLinkThumbnail
(*UnfurledLink)(nil), // 14: protobuf.UnfurledLink
(*UnfurledStatusContactLink)(nil), // 15: protobuf.UnfurledStatusContactLink
(*UnfurledStatusCommunityLink)(nil), // 16: protobuf.UnfurledStatusCommunityLink
(*UnfurledStatusChannelLink)(nil), // 17: protobuf.UnfurledStatusChannelLink
(*UnfurledStatusLink)(nil), // 18: protobuf.UnfurledStatusLink
(*UnfurledStatusLinks)(nil), // 19: protobuf.UnfurledStatusLinks
(*ChatMessage)(nil), // 20: protobuf.ChatMessage
(ImageType)(0), // 21: protobuf.ImageType
(MessageType)(0), // 22: protobuf.MessageType
(*ContactRequestPropagatedState)(nil), // 23: protobuf.ContactRequestPropagatedState
(*Shard)(nil), // 24: protobuf.Shard
}
var file_chat_message_proto_depIdxs = []int32{
21, // 0: protobuf.ImageMessage.type:type_name -> protobuf.ImageType
0, // 1: protobuf.AudioMessage.type:type_name -> protobuf.AudioMessage.AudioType
22, // 2: protobuf.EditMessage.message_type:type_name -> protobuf.MessageType
2, // 3: protobuf.EditMessage.content_type:type_name -> protobuf.ChatMessage.ContentType
14, // 4: protobuf.EditMessage.unfurled_links:type_name -> protobuf.UnfurledLink
19, // 5: protobuf.EditMessage.unfurled_status_links:type_name -> protobuf.UnfurledStatusLinks
22, // 6: protobuf.DeleteMessage.message_type:type_name -> protobuf.MessageType
10, // 7: protobuf.DiscordMessage.author:type_name -> protobuf.DiscordMessageAuthor
11, // 8: protobuf.DiscordMessage.reference:type_name -> protobuf.DiscordMessageReference
12, // 9: protobuf.DiscordMessage.attachments:type_name -> protobuf.DiscordMessageAttachment
1, // 10: protobuf.UnfurledLink.type:type_name -> protobuf.UnfurledLink.LinkType
13, // 11: protobuf.UnfurledStatusContactLink.icon:type_name -> protobuf.UnfurledLinkThumbnail
13, // 12: protobuf.UnfurledStatusCommunityLink.icon:type_name -> protobuf.UnfurledLinkThumbnail
13, // 13: protobuf.UnfurledStatusCommunityLink.banner:type_name -> protobuf.UnfurledLinkThumbnail
16, // 14: protobuf.UnfurledStatusChannelLink.community:type_name -> protobuf.UnfurledStatusCommunityLink
15, // 15: protobuf.UnfurledStatusLink.contact:type_name -> protobuf.UnfurledStatusContactLink
16, // 16: protobuf.UnfurledStatusLink.community:type_name -> protobuf.UnfurledStatusCommunityLink
17, // 17: protobuf.UnfurledStatusLink.channel:type_name -> protobuf.UnfurledStatusChannelLink
18, // 18: protobuf.UnfurledStatusLinks.unfurled_status_links:type_name -> protobuf.UnfurledStatusLink
22, // 19: protobuf.ChatMessage.message_type:type_name -> protobuf.MessageType
2, // 20: protobuf.ChatMessage.content_type:type_name -> protobuf.ChatMessage.ContentType
3, // 21: protobuf.ChatMessage.sticker:type_name -> protobuf.StickerMessage
4, // 22: protobuf.ChatMessage.image:type_name -> protobuf.ImageMessage
5, // 23: protobuf.ChatMessage.audio:type_name -> protobuf.AudioMessage
9, // 24: protobuf.ChatMessage.discord_message:type_name -> protobuf.DiscordMessage
23, // 25: protobuf.ChatMessage.contact_request_propagated_state:type_name -> protobuf.ContactRequestPropagatedState
14, // 26: protobuf.ChatMessage.unfurled_links:type_name -> protobuf.UnfurledLink
24, // 27: protobuf.ChatMessage.shard:type_name -> protobuf.Shard
19, // 28: protobuf.ChatMessage.unfurled_status_links:type_name -> protobuf.UnfurledStatusLinks
29, // [29:29] is the sub-list for method output_type
29, // [29:29] is the sub-list for method input_type
29, // [29:29] is the sub-list for extension type_name
29, // [29:29] is the sub-list for extension extendee
0, // [0:29] is the sub-list for field type_name
}
func init() { file_chat_message_proto_init() }
func file_chat_message_proto_init() {
if File_chat_message_proto != nil {
return
}
file_enums_proto_init()
file_contact_proto_init()
file_shard_proto_init()
if !protoimpl.UnsafeEnabled {
file_chat_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StickerMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ImageMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AudioMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EditMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SyncDeleteForMeMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DiscordMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DiscordMessageAuthor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DiscordMessageReference); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DiscordMessageAttachment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledLinkThumbnail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledStatusContactLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledStatusCommunityLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledStatusChannelLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledStatusLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnfurledStatusLinks); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_chat_message_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChatMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_chat_message_proto_msgTypes[15].OneofWrappers = []interface{}{
(*UnfurledStatusLink_Contact)(nil),
(*UnfurledStatusLink_Community)(nil),
(*UnfurledStatusLink_Channel)(nil),
}
file_chat_message_proto_msgTypes[17].OneofWrappers = []interface{}{
(*ChatMessage_Sticker)(nil),
(*ChatMessage_Image)(nil),
(*ChatMessage_Audio)(nil),
(*ChatMessage_Community)(nil),
(*ChatMessage_DiscordMessage)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_chat_message_proto_rawDesc,
NumEnums: 3,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_chat_message_proto_goTypes,
DependencyIndexes: file_chat_message_proto_depIdxs,
EnumInfos: file_chat_message_proto_enumTypes,
MessageInfos: file_chat_message_proto_msgTypes,
}.Build()
File_chat_message_proto = out.File
file_chat_message_proto_rawDesc = nil
file_chat_message_proto_goTypes = nil
file_chat_message_proto_depIdxs = nil
}