diff options
author | Janet Blackquill <uhhadd@gmail.com> | 2021-12-18 16:43:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-18 22:43:29 +0100 |
commit | dbedc994216fa2e932f1aefd3ea27832419b85ef (patch) | |
tree | 2a577dda9e296c9f854ea0677394128d17ca6d17 /vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go | |
parent | 6cb359cb808e2353db2675b58da95ac0349689fe (diff) | |
download | matterbridge-msglm-dbedc994216fa2e932f1aefd3ea27832419b85ef.tar.gz matterbridge-msglm-dbedc994216fa2e932f1aefd3ea27832419b85ef.tar.bz2 matterbridge-msglm-dbedc994216fa2e932f1aefd3ea27832419b85ef.zip |
Add support for Harmony (#1656)
Harmony is a relatively new (1,5yo) chat protocol with a small community.
This introduces support for Harmony into Matterbridge, using the functionality
specifically designed for bridge bots. The implementation is a modest 200 lines
of code.
Diffstat (limited to 'vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go')
-rw-r--r-- | vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go | 6224 |
1 files changed, 6224 insertions, 0 deletions
diff --git a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go new file mode 100644 index 00000000..d14636f2 --- /dev/null +++ b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go @@ -0,0 +1,6224 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.23.0 +// protoc v3.17.3 +// source: chat/v1/messages.proto + +package chatv1 + +import ( + proto "github.com/golang/protobuf/proto" + v11 "github.com/harmony-development/shibshib/gen/emote/v1" + v1 "github.com/harmony-development/shibshib/gen/harmonytypes/v1" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// The action type. This is primarily used to change the look of the action to +// the user (example: Destructive actions will have a red background). +type Action_Type int32 + +const ( + // a normal action. + Action_TYPE_NORMAL_UNSPECIFIED Action_Type = 0 + // a primary action. + Action_TYPE_PRIMARY Action_Type = 1 + // A destructive / dangerous action. + Action_TYPE_DESTRUCTIVE Action_Type = 2 +) + +// Enum value maps for Action_Type. +var ( + Action_Type_name = map[int32]string{ + 0: "TYPE_NORMAL_UNSPECIFIED", + 1: "TYPE_PRIMARY", + 2: "TYPE_DESTRUCTIVE", + } + Action_Type_value = map[string]int32{ + "TYPE_NORMAL_UNSPECIFIED": 0, + "TYPE_PRIMARY": 1, + "TYPE_DESTRUCTIVE": 2, + } +) + +func (x Action_Type) Enum() *Action_Type { + p := new(Action_Type) + *p = x + return p +} + +func (x Action_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Action_Type) Descriptor() protoreflect.EnumDescriptor { + return file_chat_v1_messages_proto_enumTypes[0].Descriptor() +} + +func (Action_Type) Type() protoreflect.EnumType { + return &file_chat_v1_messages_proto_enumTypes[0] +} + +func (x Action_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Action_Type.Descriptor instead. +func (Action_Type) EnumDescriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2, 0} +} + +// Type representing how to present an embed field. +type Embed_EmbedField_Presentation int32 + +const ( + // Show the field as data. + Embed_EmbedField_PRESENTATION_DATA_UNSPECIFIED Embed_EmbedField_Presentation = 0 + // Show the field as a captioned image. + Embed_EmbedField_PRESENTATION_CAPTIONED_IMAGE Embed_EmbedField_Presentation = 1 + // Show the field as a row. + Embed_EmbedField_PRESENTATION_ROW Embed_EmbedField_Presentation = 2 +) + +// Enum value maps for Embed_EmbedField_Presentation. +var ( + Embed_EmbedField_Presentation_name = map[int32]string{ + 0: "PRESENTATION_DATA_UNSPECIFIED", + 1: "PRESENTATION_CAPTIONED_IMAGE", + 2: "PRESENTATION_ROW", + } + Embed_EmbedField_Presentation_value = map[string]int32{ + "PRESENTATION_DATA_UNSPECIFIED": 0, + "PRESENTATION_CAPTIONED_IMAGE": 1, + "PRESENTATION_ROW": 2, + } +) + +func (x Embed_EmbedField_Presentation) Enum() *Embed_EmbedField_Presentation { + p := new(Embed_EmbedField_Presentation) + *p = x + return p +} + +func (x Embed_EmbedField_Presentation) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Embed_EmbedField_Presentation) Descriptor() protoreflect.EnumDescriptor { + return file_chat_v1_messages_proto_enumTypes[1].Descriptor() +} + +func (Embed_EmbedField_Presentation) Type() protoreflect.EnumType { + return &file_chat_v1_messages_proto_enumTypes[1] +} + +func (x Embed_EmbedField_Presentation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Embed_EmbedField_Presentation.Descriptor instead. +func (Embed_EmbedField_Presentation) EnumDescriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{3, 1, 0} +} + +// The kind of colour modification to apply +type Format_Color_Kind int32 + +const ( + // Dimmed colour + Format_Color_KIND_DIM_UNSPECIFIED Format_Color_Kind = 0 + // Brightened colour + Format_Color_KIND_BRIGHT Format_Color_Kind = 1 + // Negative colour (usually red) + Format_Color_KIND_NEGATIVE Format_Color_Kind = 2 + // Positive colour (usually green) + Format_Color_KIND_POSITIVE Format_Color_Kind = 3 + // Informational colour (usually blue) + Format_Color_KIND_INFO Format_Color_Kind = 4 + // Warning colour (usually yellow-orange) + Format_Color_KIND_WARNING Format_Color_Kind = 5 +) + +// Enum value maps for Format_Color_Kind. +var ( + Format_Color_Kind_name = map[int32]string{ + 0: "KIND_DIM_UNSPECIFIED", + 1: "KIND_BRIGHT", + 2: "KIND_NEGATIVE", + 3: "KIND_POSITIVE", + 4: "KIND_INFO", + 5: "KIND_WARNING", + } + Format_Color_Kind_value = map[string]int32{ + "KIND_DIM_UNSPECIFIED": 0, + "KIND_BRIGHT": 1, + "KIND_NEGATIVE": 2, + "KIND_POSITIVE": 3, + "KIND_INFO": 4, + "KIND_WARNING": 5, + } +) + +func (x Format_Color_Kind) Enum() *Format_Color_Kind { + p := new(Format_Color_Kind) + *p = x + return p +} + +func (x Format_Color_Kind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Format_Color_Kind) Descriptor() protoreflect.EnumDescriptor { + return file_chat_v1_messages_proto_enumTypes[2].Descriptor() +} + +func (Format_Color_Kind) Type() protoreflect.EnumType { + return &file_chat_v1_messages_proto_enumTypes[2] +} + +func (x Format_Color_Kind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Format_Color_Kind.Descriptor instead. +func (Format_Color_Kind) EnumDescriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 12, 0} +} + +// The direction relative to the `message_id` message to get messages from. +type GetChannelMessagesRequest_Direction int32 + +const ( + // Get messages before the anchor. + GetChannelMessagesRequest_DIRECTION_BEFORE_UNSPECIFIED GetChannelMessagesRequest_Direction = 0 + // Get messages around the anchor, including the anchor. + GetChannelMessagesRequest_DIRECTION_AROUND GetChannelMessagesRequest_Direction = 1 + // Get messages after the anchor. + GetChannelMessagesRequest_DIRECTION_AFTER GetChannelMessagesRequest_Direction = 2 +) + +// Enum value maps for GetChannelMessagesRequest_Direction. +var ( + GetChannelMessagesRequest_Direction_name = map[int32]string{ + 0: "DIRECTION_BEFORE_UNSPECIFIED", + 1: "DIRECTION_AROUND", + 2: "DIRECTION_AFTER", + } + GetChannelMessagesRequest_Direction_value = map[string]int32{ + "DIRECTION_BEFORE_UNSPECIFIED": 0, + "DIRECTION_AROUND": 1, + "DIRECTION_AFTER": 2, + } +) + +func (x GetChannelMessagesRequest_Direction) Enum() *GetChannelMessagesRequest_Direction { + p := new(GetChannelMessagesRequest_Direction) + *p = x + return p +} + +func (x GetChannelMessagesRequest_Direction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetChannelMessagesRequest_Direction) Descriptor() protoreflect.EnumDescriptor { + return file_chat_v1_messages_proto_enumTypes[3].Descriptor() +} + +func (GetChannelMessagesRequest_Direction) Type() protoreflect.EnumType { + return &file_chat_v1_messages_proto_enumTypes[3] +} + +func (x GetChannelMessagesRequest_Direction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetChannelMessagesRequest_Direction.Descriptor instead. +func (GetChannelMessagesRequest_Direction) EnumDescriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{13, 0} +} + +// Overrides provide a way to override the name and avatar of a message. +type Overrides struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the overridden username. + Username *string `protobuf:"bytes,1,opt,name=username,proto3,oneof" json:"username,omitempty"` + // the overridden avatar. + Avatar *string `protobuf:"bytes,2,opt,name=avatar,proto3,oneof" json:"avatar,omitempty"` + // the reason for overriding username and avatar. + // + // Types that are assignable to Reason: + // *Overrides_UserDefined + // *Overrides_Webhook + // *Overrides_SystemPlurality + // *Overrides_SystemMessage + // *Overrides_Bridge + Reason isOverrides_Reason `protobuf_oneof:"reason"` +} + +func (x *Overrides) Reset() { + *x = Overrides{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Overrides) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Overrides) ProtoMessage() {} + +func (x *Overrides) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Overrides.ProtoReflect.Descriptor instead. +func (*Overrides) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{0} +} + +func (x *Overrides) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + +func (x *Overrides) GetAvatar() string { + if x != nil && x.Avatar != nil { + return *x.Avatar + } + return "" +} + +func (m *Overrides) GetReason() isOverrides_Reason { + if m != nil { + return m.Reason + } + return nil +} + +func (x *Overrides) GetUserDefined() string { + if x, ok := x.GetReason().(*Overrides_UserDefined); ok { + return x.UserDefined + } + return "" +} + +func (x *Overrides) GetWebhook() *v1.Empty { + if x, ok := x.GetReason().(*Overrides_Webhook); ok { + return x.Webhook + } + return nil +} + +func (x *Overrides) GetSystemPlurality() *v1.Empty { + if x, ok := x.GetReason().(*Overrides_SystemPlurality); ok { + return x.SystemPlurality + } + return nil +} + +func (x *Overrides) GetSystemMessage() *v1.Empty { + if x, ok := x.GetReason().(*Overrides_SystemMessage); ok { + return x.SystemMessage + } + return nil +} + +func (x *Overrides) GetBridge() *v1.Empty { + if x, ok := x.GetReason().(*Overrides_Bridge); ok { + return x.Bridge + } + return nil +} + +type isOverrides_Reason interface { + isOverrides_Reason() +} + +type Overrides_UserDefined struct { + // a custom reason in case the builtin ones don't fit + UserDefined string `protobuf:"bytes,3,opt,name=user_defined,json=userDefined,proto3,oneof"` +} + +type Overrides_Webhook struct { + // the override occured because of a webhook + Webhook *v1.Empty `protobuf:"bytes,4,opt,name=webhook,proto3,oneof"` +} + +type Overrides_SystemPlurality struct { + // plurality, not system as in computer + SystemPlurality *v1.Empty `protobuf:"bytes,5,opt,name=system_plurality,json=systemPlurality,proto3,oneof"` +} + +type Overrides_SystemMessage struct { + // the override occured because it was made by the server + // + // Servers should reject messages sent by users with this override. + SystemMessage *v1.Empty `protobuf:"bytes,6,opt,name=system_message,json=systemMessage,proto3,oneof"` +} + +type Overrides_Bridge struct { + // the override occured because of bridging + Bridge *v1.Empty `protobuf:"bytes,7,opt,name=bridge,proto3,oneof"` +} + +func (*Overrides_UserDefined) isOverrides_Reason() {} + +func (*Overrides_Webhook) isOverrides_Reason() {} + +func (*Overrides_SystemPlurality) isOverrides_Reason() {} + +func (*Overrides_SystemMessage) isOverrides_Reason() {} + +func (*Overrides_Bridge) isOverrides_Reason() {} + +// The payload sent to the bot when an action is triggered. +type ActionPayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The payload data + // + // Types that are assignable to Payload: + // *ActionPayload_Button_ + // *ActionPayload_Dropdown_ + // *ActionPayload_Input_ + Payload isActionPayload_Payload `protobuf_oneof:"payload"` +} + +func (x *ActionPayload) Reset() { + *x = ActionPayload{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActionPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionPayload) ProtoMessage() {} + +func (x *ActionPayload) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 ActionPayload.ProtoReflect.Descriptor instead. +func (*ActionPayload) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{1} +} + +func (m *ActionPayload) GetPayload() isActionPayload_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (x *ActionPayload) GetButton() *ActionPayload_Button { + if x, ok := x.GetPayload().(*ActionPayload_Button_); ok { + return x.Button + } + return nil +} + +func (x *ActionPayload) GetDropdown() *ActionPayload_Dropdown { + if x, ok := x.GetPayload().(*ActionPayload_Dropdown_); ok { + return x.Dropdown + } + return nil +} + +func (x *ActionPayload) GetInput() *ActionPayload_Input { + if x, ok := x.GetPayload().(*ActionPayload_Input_); ok { + return x.Input + } + return nil +} + +type isActionPayload_Payload interface { + isActionPayload_Payload() +} + +type ActionPayload_Button_ struct { + // Payload for a button + Button *ActionPayload_Button `protobuf:"bytes,1,opt,name=button,proto3,oneof"` +} + +type ActionPayload_Dropdown_ struct { + // Payload for a dropdown + Dropdown *ActionPayload_Dropdown `protobuf:"bytes,2,opt,name=dropdown,proto3,oneof"` +} + +type ActionPayload_Input_ struct { + // Payload for a text input + Input *ActionPayload_Input `protobuf:"bytes,3,opt,name=input,proto3,oneof"` +} + +func (*ActionPayload_Button_) isActionPayload_Payload() {} + +func (*ActionPayload_Dropdown_) isActionPayload_Payload() {} + +func (*ActionPayload_Input_) isActionPayload_Payload() {} + +// Actions are interactive elements that can exist within an embed. +type Action struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Type of the action. + ActionType Action_Type `protobuf:"varint,1,opt,name=action_type,json=actionType,proto3,enum=protocol.chat.v1.Action_Type" json:"action_type,omitempty"` + // The kind of the action. + // + // Types that are assignable to Kind: + // *Action_Button_ + // *Action_Dropdown_ + // *Action_Input_ + Kind isAction_Kind `protobuf_oneof:"kind"` +} + +func (x *Action) Reset() { + *x = Action{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action) ProtoMessage() {} + +func (x *Action) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Action.ProtoReflect.Descriptor instead. +func (*Action) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2} +} + +func (x *Action) GetActionType() Action_Type { + if x != nil { + return x.ActionType + } + return Action_TYPE_NORMAL_UNSPECIFIED +} + +func (m *Action) GetKind() isAction_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (x *Action) GetButton() *Action_Button { + if x, ok := x.GetKind().(*Action_Button_); ok { + return x.Button + } + return nil +} + +func (x *Action) GetDropdown() *Action_Dropdown { + if x, ok := x.GetKind().(*Action_Dropdown_); ok { + return x.Dropdown + } + return nil +} + +func (x *Action) GetInput() *Action_Input { + if x, ok := x.GetKind().(*Action_Input_); ok { + return x.Input + } + return nil +} + +type isAction_Kind interface { + isAction_Kind() +} + +type Action_Button_ struct { + // Button action. + Button *Action_Button `protobuf:"bytes,2,opt,name=button,proto3,oneof"` +} + +type Action_Dropdown_ struct { + // Dropdown action. + Dropdown *Action_Dropdown `protobuf:"bytes,3,opt,name=dropdown,proto3,oneof"` +} + +type Action_Input_ struct { + // Input action. + Input *Action_Input `protobuf:"bytes,4,opt,name=input,proto3,oneof"` +} + +func (*Action_Button_) isAction_Kind() {} + +func (*Action_Dropdown_) isAction_Kind() {} + +func (*Action_Input_) isAction_Kind() {} + +// Object representing a message embed. +type Embed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Title of this embed. + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + // Body text of this embed. + Body *FormattedText `protobuf:"bytes,2,opt,name=body,proto3,oneof" json:"body,omitempty"` + // Color of this embed. + Color *int32 `protobuf:"varint,3,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Embed heading for the header. + Header *Embed_EmbedHeading `protobuf:"bytes,4,opt,name=header,proto3,oneof" json:"header,omitempty"` + // Embed heading for the footer. + Footer *Embed_EmbedHeading `protobuf:"bytes,5,opt,name=footer,proto3,oneof" json:"footer,omitempty"` + // Fields of this embed. + Fields []*Embed_EmbedField `protobuf:"bytes,6,rep,name=fields,proto3" json:"fields,omitempty"` +} + +func (x *Embed) Reset() { + *x = Embed{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Embed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Embed) ProtoMessage() {} + +func (x *Embed) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Embed.ProtoReflect.Descriptor instead. +func (*Embed) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{3} +} + +func (x *Embed) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Embed) GetBody() *FormattedText { + if x != nil { + return x.Body + } + return nil +} + +func (x *Embed) GetColor() int32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *Embed) GetHeader() *Embed_EmbedHeading { + if x != nil { + return x.Header + } + return nil +} + +func (x *Embed) GetFooter() *Embed_EmbedHeading { + if x != nil { + return x.Footer + } + return nil +} + +func (x *Embed) GetFields() []*Embed_EmbedField { + if x != nil { + return x.Fields + } + return nil +} + +// +// Minithumbnail is an extremely low-quality JPEG thumbnail. +// +// The resolution is usually no larger than 64x64. +type Minithumbnail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The width of the minithumbnail + Width uint32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"` + // The height of the minithumbnail + Height uint32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // The JPEG data of the minithumbnail + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Minithumbnail) Reset() { + *x = Minithumbnail{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Minithumbnail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Minithumbnail) ProtoMessage() {} + +func (x *Minithumbnail) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Minithumbnail.ProtoReflect.Descriptor instead. +func (*Minithumbnail) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{4} +} + +func (x *Minithumbnail) GetWidth() uint32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *Minithumbnail) GetHeight() uint32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Minithumbnail) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// +// Photo contains data about a photo. +// +// Photo are always JPEG, and are +// constrained to the following rules: +// +// - width+height <= 10_000 +// - width <= height*20 +// - height <= width*20 +// +// Photos are preferably no more than 10MB +// in size, and servers may compress as necessary. +type Photo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The HMC URL of the photo. + Hmc string `protobuf:"bytes,1,opt,name=hmc,proto3" json:"hmc,omitempty"` + // The filename of the photo. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // The size of the photo. + FileSize uint32 `protobuf:"varint,3,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + // The height of the photo, in pixels. + Height uint32 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // The width of the photo, in pixels. + Width uint32 `protobuf:"varint,5,opt,name=width,proto3" json:"width,omitempty"` + // The photo's caption. + Caption *FormattedText `protobuf:"bytes,6,opt,name=caption,proto3" json:"caption,omitempty"` + // A thumbnail representing the photo. + Minithumbnail *Minithumbnail `protobuf:"bytes,7,opt,name=minithumbnail,proto3" json:"minithumbnail,omitempty"` +} + +func (x *Photo) Reset() { + *x = Photo{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Photo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Photo) ProtoMessage() {} + +func (x *Photo) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Photo.ProtoReflect.Descriptor instead. +func (*Photo) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{5} +} + +func (x *Photo) GetHmc() string { + if x != nil { + return x.Hmc + } + return "" +} + +func (x *Photo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Photo) GetFileSize() uint32 { + if x != nil { + return x.FileSize + } + return 0 +} + +func (x *Photo) GetHeight() uint32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Photo) GetWidth() uint32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *Photo) GetCaption() *FormattedText { + if x != nil { + return x.Caption + } + return nil +} + +func (x *Photo) GetMinithumbnail() *Minithumbnail { + if x != nil { + return x.Minithumbnail + } + return nil +} + +// Object representing a generic message attachment. +type Attachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // File ID of this attachment. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Filename of this attachment. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Mimetype of this attachment. + Mimetype string `protobuf:"bytes,3,opt,name=mimetype,proto3" json:"mimetype,omitempty"` + // Size of this attachment. + Size uint32 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` + // Caption of this attachment. + Caption *FormattedText `protobuf:"bytes,5,opt,name=caption,proto3,oneof" json:"caption,omitempty"` +} + +func (x *Attachment) Reset() { + *x = Attachment{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Attachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Attachment) ProtoMessage() {} + +func (x *Attachment) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Attachment.ProtoReflect.Descriptor instead. +func (*Attachment) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{6} +} + +func (x *Attachment) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Attachment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Attachment) GetMimetype() string { + if x != nil { + return x.Mimetype + } + return "" +} + +func (x *Attachment) GetSize() uint32 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *Attachment) GetCaption() *FormattedText { + if x != nil { + return x.Caption + } + return nil +} + +// Object representing a message's content. +type Content struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Content data. + // + // Types that are assignable to Content: + // *Content_TextMessage + // *Content_EmbedMessage + // *Content_AttachmentMessage + // *Content_PhotoMessage + // *Content_InviteRejected_ + // *Content_InviteAccepted_ + // *Content_RoomUpgradedToGuild_ + Content isContent_Content `protobuf_oneof:"content"` +} + +func (x *Content) Reset() { + *x = Content{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content) ProtoMessage() {} + +func (x *Content) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Content.ProtoReflect.Descriptor instead. +func (*Content) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7} +} + +func (m *Content) GetContent() isContent_Content { + if m != nil { + return m.Content + } + return nil +} + +func (x *Content) GetTextMessage() *Content_TextContent { + if x, ok := x.GetContent().(*Content_TextMessage); ok { + return x.TextMessage + } + return nil +} + +func (x *Content) GetEmbedMessage() *Content_EmbedContent { + if x, ok := x.GetContent().(*Content_EmbedMessage); ok { + return x.EmbedMessage + } + return nil +} + +func (x *Content) GetAttachmentMessage() *Content_AttachmentContent { + if x, ok := x.GetContent().(*Content_AttachmentMessage); ok { + return x.AttachmentMessage + } + return nil +} + +func (x *Content) GetPhotoMessage() *Content_PhotoContent { + if x, ok := x.GetContent().(*Content_PhotoMessage); ok { + return x.PhotoMessage + } + return nil +} + +func (x *Content) GetInviteRejected() *Content_InviteRejected { + if x, ok := x.GetContent().(*Content_InviteRejected_); ok { + return x.InviteRejected + } + return nil +} + +func (x *Content) GetInviteAccepted() *Content_InviteAccepted { + if x, ok := x.GetContent().(*Content_InviteAccepted_); ok { + return x.InviteAccepted + } + return nil +} + +func (x *Content) GetRoomUpgradedToGuild() *Content_RoomUpgradedToGuild { + if x, ok := x.GetContent().(*Content_RoomUpgradedToGuild_); ok { + return x.RoomUpgradedToGuild + } + return nil +} + +type isContent_Content interface { + isContent_Content() +} + +type Content_TextMessage struct { + // Text content. + TextMessage *Content_TextContent `protobuf:"bytes,1,opt,name=text_message,json=textMessage,proto3,oneof"` +} + +type Content_EmbedMessage struct { + // Embed content. + EmbedMessage *Content_EmbedContent `protobuf:"bytes,2,opt,name=embed_message,json=embedMessage,proto3,oneof"` +} + +type Content_AttachmentMessage struct { + // Attachment content. + AttachmentMessage *Content_AttachmentContent `protobuf:"bytes,3,opt,name=attachment_message,json=attachmentMessage,proto3,oneof"` +} + +type Content_PhotoMessage struct { + // Photo content. + PhotoMessage *Content_PhotoContent `protobuf:"bytes,4,opt,name=photo_message,json=photoMessage,proto3,oneof"` +} + +type Content_InviteRejected_ struct { + // A user rejected an invite. + InviteRejected *Content_InviteRejected `protobuf:"bytes,5,opt,name=invite_rejected,json=inviteRejected,proto3,oneof"` +} + +type Content_InviteAccepted_ struct { + // A user accepted an invite. + InviteAccepted *Content_InviteAccepted `protobuf:"bytes,6,opt,name=invite_accepted,json=inviteAccepted,proto3,oneof"` +} + +type Content_RoomUpgradedToGuild_ struct { + // A user upgraded a guild from "room" to "normal". + RoomUpgradedToGuild *Content_RoomUpgradedToGuild `protobuf:"bytes,7,opt,name=room_upgraded_to_guild,json=roomUpgradedToGuild,proto3,oneof"` +} + +func (*Content_TextMessage) isContent_Content() {} + +func (*Content_EmbedMessage) isContent_Content() {} + +func (*Content_AttachmentMessage) isContent_Content() {} + +func (*Content_PhotoMessage) isContent_Content() {} + +func (*Content_InviteRejected_) isContent_Content() {} + +func (*Content_InviteAccepted_) isContent_Content() {} + +func (*Content_RoomUpgradedToGuild_) isContent_Content() {} + +// Object representing a reaction. +type Reaction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Emote data for this reaction. + // + // Emote's image ID is used as an identifier for unique reactions. + // Emotes with the same names should be "deduplicated" by a client, by suffixing + // their names with `~1`, `~2` and so on. + Emote *v11.Emote `protobuf:"bytes,1,opt,name=emote,proto3" json:"emote,omitempty"` + // How many reactions this reaction has. + Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *Reaction) Reset() { + *x = Reaction{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Reaction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reaction) ProtoMessage() {} + +func (x *Reaction) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Reaction.ProtoReflect.Descriptor instead. +func (*Reaction) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{8} +} + +func (x *Reaction) GetEmote() *v11.Emote { + if x != nil { + return x.Emote + } + return nil +} + +func (x *Reaction) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +// A format for text +type Format struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // where the format begins to apply to + Start uint32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + // how many characters the format is + Length uint32 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"` + // the style if format to apply to this text + // + // Types that are assignable to Format: + // *Format_Bold_ + // *Format_Italic_ + // *Format_Underline_ + // *Format_Monospace_ + // *Format_Superscript_ + // *Format_Subscript_ + // *Format_CodeBlock_ + // *Format_UserMention_ + // *Format_RoleMention_ + // *Format_ChannelMention_ + // *Format_GuildMention_ + // *Format_Emoji_ + // *Format_Color_ + // *Format_Localization_ + Format isFormat_Format `protobuf_oneof:"format"` +} + +func (x *Format) Reset() { + *x = Format{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format) ProtoMessage() {} + +func (x *Format) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Format.ProtoReflect.Descriptor instead. +func (*Format) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9} +} + +func (x *Format) GetStart() uint32 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *Format) GetLength() uint32 { + if x != nil { + return x.Length + } + return 0 +} + +func (m *Format) GetFormat() isFormat_Format { + if m != nil { + return m.Format + } + return nil +} + +func (x *Format) GetBold() *Format_Bold { + if x, ok := x.GetFormat().(*Format_Bold_); ok { + return x.Bold + } + return nil +} + +func (x *Format) GetItalic() *Format_Italic { + if x, ok := x.GetFormat().(*Format_Italic_); ok { + return x.Italic + } + return nil +} + +func (x *Format) GetUnderline() *Format_Underline { + if x, ok := x.GetFormat().(*Format_Underline_); ok { + return x.Underline + } + return nil +} + +func (x *Format) GetMonospace() *Format_Monospace { + if x, ok := x.GetFormat().(*Format_Monospace_); ok { + return x.Monospace + } + return nil +} + +func (x *Format) GetSuperscript() *Format_Superscript { + if x, ok := x.GetFormat().(*Format_Superscript_); ok { + return x.Superscript + } + return nil +} + +func (x *Format) GetSubscript() *Format_Subscript { + if x, ok := x.GetFormat().(*Format_Subscript_); ok { + return x.Subscript + } + return nil +} + +func (x *Format) GetCodeBlock() *Format_CodeBlock { + if x, ok := x.GetFormat().(*Format_CodeBlock_); ok { + return x.CodeBlock + } + return nil +} + +func (x *Format) GetUserMention() *Format_UserMention { + if x, ok := x.GetFormat().(*Format_UserMention_); ok { + return x.UserMention + } + return nil +} + +func (x *Format) GetRoleMention() *Format_RoleMention { + if x, ok := x.GetFormat().(*Format_RoleMention_); ok { + return x.RoleMention + } + return nil +} + +func (x *Format) GetChannelMention() *Format_ChannelMention { + if x, ok := x.GetFormat().(*Format_ChannelMention_); ok { + return x.ChannelMention + } + return nil +} + +func (x *Format) GetGuildMention() *Format_GuildMention { + if x, ok := x.GetFormat().(*Format_GuildMention_); ok { + return x.GuildMention + } + return nil +} + +func (x *Format) GetEmoji() *Format_Emoji { + if x, ok := x.GetFormat().(*Format_Emoji_); ok { + return x.Emoji + } + return nil +} + +func (x *Format) GetColor() *Format_Color { + if x, ok := x.GetFormat().(*Format_Color_); ok { + return x.Color + } + return nil +} + +func (x *Format) GetLocalization() *Format_Localization { + if x, ok := x.GetFormat().(*Format_Localization_); ok { + return x.Localization + } + return nil +} + +type isFormat_Format interface { + isFormat_Format() +} + +type Format_Bold_ struct { + // a text format for bold text + Bold *Format_Bold `protobuf:"bytes,3,opt,name=bold,proto3,oneof"` +} + +type Format_Italic_ struct { + // a text format for italic text + Italic *Format_Italic `protobuf:"bytes,4,opt,name=italic,proto3,oneof"` +} + +type Format_Underline_ struct { + // a text format for underline text + Underline *Format_Underline `protobuf:"bytes,5,opt,name=underline,proto3,oneof"` +} + +type Format_Monospace_ struct { + // a text format for monospace text + Monospace *Format_Monospace `protobuf:"bytes,6,opt,name=monospace,proto3,oneof"` +} + +type Format_Superscript_ struct { + // a text format for superscript text + Superscript *Format_Superscript `protobuf:"bytes,7,opt,name=superscript,proto3,oneof"` +} + +type Format_Subscript_ struct { + // a text format for subscript text + Subscript *Format_Subscript `protobuf:"bytes,8,opt,name=subscript,proto3,oneof"` +} + +type Format_CodeBlock_ struct { + // a text format for a codeblock + CodeBlock *Format_CodeBlock `protobuf:"bytes,9,opt,name=code_block,json=codeBlock,proto3,oneof"` +} + +type Format_UserMention_ struct { + // a text format for a user mention + UserMention *Format_UserMention `protobuf:"bytes,10,opt,name=user_mention,json=userMention,proto3,oneof"` +} + +type Format_RoleMention_ struct { + // a text format for a role mention + RoleMention *Format_RoleMention `protobuf:"bytes,11,opt,name=role_mention,json=roleMention,proto3,oneof"` +} + +type Format_ChannelMention_ struct { + // a text format for a channel mention + ChannelMention *Format_ChannelMention `protobuf:"bytes,12,opt,name=channel_mention,json=channelMention,proto3,oneof"` +} + +type Format_GuildMention_ struct { + // a text format for a guild mention + GuildMention *Format_GuildMention `protobuf:"bytes,13,opt,name=guild_mention,json=guildMention,proto3,oneof"` +} + +type Format_Emoji_ struct { + // a text format for an emoji + Emoji *Format_Emoji `protobuf:"bytes,14,opt,name=emoji,proto3,oneof"` +} + +type Format_Color_ struct { + // a text format for coloured text + Color *Format_Color `protobuf:"bytes,15,opt,name=color,proto3,oneof"` +} + +type Format_Localization_ struct { + // a text format for localization + Localization *Format_Localization `protobuf:"bytes,16,opt,name=localization,proto3,oneof"` +} + +func (*Format_Bold_) isFormat_Format() {} + +func (*Format_Italic_) isFormat_Format() {} + +func (*Format_Underline_) isFormat_Format() {} + +func (*Format_Monospace_) isFormat_Format() {} + +func (*Format_Superscript_) isFormat_Format() {} + +func (*Format_Subscript_) isFormat_Format() {} + +func (*Format_CodeBlock_) isFormat_Format() {} + +func (*Format_UserMention_) isFormat_Format() {} + +func (*Format_RoleMention_) isFormat_Format() {} + +func (*Format_ChannelMention_) isFormat_Format() {} + +func (*Format_GuildMention_) isFormat_Format() {} + +func (*Format_Emoji_) isFormat_Format() {} + +func (*Format_Color_) isFormat_Format() {} + +func (*Format_Localization_) isFormat_Format() {} + +// Formatted text +type FormattedText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The textual content of a message + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + // The formats for a message + Format []*Format `protobuf:"bytes,2,rep,name=format,proto3" json:"format,omitempty"` +} + +func (x *FormattedText) Reset() { + *x = FormattedText{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FormattedText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FormattedText) ProtoMessage() {} + +func (x *FormattedText) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 FormattedText.ProtoReflect.Descriptor instead. +func (*FormattedText) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{10} +} + +func (x *FormattedText) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *FormattedText) GetFormat() []*Format { + if x != nil { + return x.Format + } + return nil +} + +// Object representing a message without the ID part. +type Message struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Metadata of this message. + Metadata *v1.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + // Overrides of this message. + Overrides *Overrides `protobuf:"bytes,2,opt,name=overrides,proto3" json:"overrides,omitempty"` + // User ID of the user who sent this message. + AuthorId uint64 `protobuf:"varint,3,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` + // When this message was created, in miliseconds since unix epoch + CreatedAt uint64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // The most recent time this message was edited, in milliseconds since unix epoch + EditedAt *uint64 `protobuf:"varint,5,opt,name=edited_at,json=editedAt,proto3,oneof" json:"edited_at,omitempty"` + // The message this message is a reply to. + InReplyTo *uint64 `protobuf:"varint,6,opt,name=in_reply_to,json=inReplyTo,proto3,oneof" json:"in_reply_to,omitempty"` + // The content of the message. + Content *Content `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` + // The reactions of the message. + Reactions []*Reaction `protobuf:"bytes,8,rep,name=reactions,proto3" json:"reactions,omitempty"` +} + +func (x *Message) Reset() { + *x = Message{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Message) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Message) ProtoMessage() {} + +func (x *Message) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 Message.ProtoReflect.Descriptor instead. +func (*Message) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{11} +} + +func (x *Message) GetMetadata() *v1.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Message) GetOverrides() *Overrides { + if x != nil { + return x.Overrides + } + return nil +} + +func (x *Message) GetAuthorId() uint64 { + if x != nil { + return x.AuthorId + } + return 0 +} + +func (x *Message) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *Message) GetEditedAt() uint64 { + if x != nil && x.EditedAt != nil { + return *x.EditedAt + } + return 0 +} + +func (x *Message) GetInReplyTo() uint64 { + if x != nil && x.InReplyTo != nil { + return *x.InReplyTo + } + return 0 +} + +func (x *Message) GetContent() *Content { + if x != nil { + return x.Content + } + return nil +} + +func (x *Message) GetReactions() []*Reaction { + if x != nil { + return x.Reactions + } + return nil +} + +// Object representing a message with it's ID. +type MessageWithId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID of the message. + MessageId uint64 `protobuf:"varint,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + // The message data. + Message *Message `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *MessageWithId) Reset() { + *x = MessageWithId{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageWithId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageWithId) ProtoMessage() {} + +func (x *MessageWithId) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 MessageWithId.ProtoReflect.Descriptor instead. +func (*MessageWithId) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{12} +} + +func (x *MessageWithId) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *MessageWithId) GetMessage() *Message { + if x != nil { + return x.Message + } + return nil +} + +// Used in the `GetChannelMessages` endpoint. +type GetChannelMessagesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild that has the channel. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel to get messages from. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // The ID of the message that will be used as an "anchor" point to figure out + // where to get the messages. + // If not specified, the `direction` will be ignored and the newest messages + // will be returned. + MessageId *uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3,oneof" json:"message_id,omitempty"` + // On which direction to get the messages. + // + // - By default, it is "before", which means you will get messages before the + // `message_id` message. + // - If it is "around", you will get the messages around the `message_id` + // message. This will include the `message_id` message itself, as the middle + // item of the list returned. + // - If it is "after", you will get the messages after the `message_id` + // message. + Direction *GetChannelMessagesRequest_Direction `protobuf:"varint,4,opt,name=direction,proto3,enum=protocol.chat.v1.GetChannelMessagesRequest_Direction,oneof" json:"direction,omitempty"` + // How many messages to get. + // + // - If `0`, a recommended message count to return is 25. If the direction is + // "around", the recommended value is 12. + // - If the direction to get the messages is "around", this count will not be + // the *total* count of messages to return, but instead the count of messages + // to return *for each direction*, before and after. + // - Servers should enforce their own maximum limit, and clamp this value to + // the limit. + Count *uint32 `protobuf:"varint,5,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *GetChannelMessagesRequest) Reset() { + *x = GetChannelMessagesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetChannelMessagesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChannelMessagesRequest) ProtoMessage() {} + +func (x *GetChannelMessagesRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 GetChannelMessagesRequest.ProtoReflect.Descriptor instead. +func (*GetChannelMessagesRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{13} +} + +func (x *GetChannelMessagesRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *GetChannelMessagesRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *GetChannelMessagesRequest) GetMessageId() uint64 { + if x != nil && x.MessageId != nil { + return *x.MessageId + } + return 0 +} + +func (x *GetChannelMessagesRequest) GetDirection() GetChannelMessagesRequest_Direction { + if x != nil && x.Direction != nil { + return *x.Direction + } + return GetChannelMessagesRequest_DIRECTION_BEFORE_UNSPECIFIED +} + +func (x *GetChannelMessagesRequest) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Used in the `GetChannelMessages` endpoint. +type GetChannelMessagesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Has reached the top (first message) of the message history. + ReachedTop bool `protobuf:"varint,1,opt,name=reached_top,json=reachedTop,proto3" json:"reached_top,omitempty"` + // Has reached the bottom (last message) of the message history. + ReachedBottom bool `protobuf:"varint,2,opt,name=reached_bottom,json=reachedBottom,proto3" json:"reached_bottom,omitempty"` + // The messages requested. + Messages []*MessageWithId `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *GetChannelMessagesResponse) Reset() { + *x = GetChannelMessagesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetChannelMessagesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChannelMessagesResponse) ProtoMessage() {} + +func (x *GetChannelMessagesResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 GetChannelMessagesResponse.ProtoReflect.Descriptor instead. +func (*GetChannelMessagesResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{14} +} + +func (x *GetChannelMessagesResponse) GetReachedTop() bool { + if x != nil { + return x.ReachedTop + } + return false +} + +func (x *GetChannelMessagesResponse) GetReachedBottom() bool { + if x != nil { + return x.ReachedBottom + } + return false +} + +func (x *GetChannelMessagesResponse) GetMessages() []*MessageWithId { + if x != nil { + return x.Messages + } + return nil +} + +// Used in the `GetMessage` endpoint. +type GetMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message you want to get. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *GetMessageRequest) Reset() { + *x = GetMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessageRequest) ProtoMessage() {} + +func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 GetMessageRequest.ProtoReflect.Descriptor instead. +func (*GetMessageRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{15} +} + +func (x *GetMessageRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *GetMessageRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *GetMessageRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +// Used in the `GetMessage` endpoint. +type GetMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The message requested. + Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *GetMessageResponse) Reset() { + *x = GetMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessageResponse) ProtoMessage() {} + +func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 GetMessageResponse.ProtoReflect.Descriptor instead. +func (*GetMessageResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{16} +} + +func (x *GetMessageResponse) GetMessage() *Message { + if x != nil { + return x.Message + } + return nil +} + +// Used in the `DeleteMessage` endpoint. +type DeleteMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message you want to delete. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *DeleteMessageRequest) Reset() { + *x = DeleteMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMessageRequest) ProtoMessage() {} + +func (x *DeleteMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_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 DeleteMessageRequest.ProtoReflect.Descriptor instead. +func (*DeleteMessageRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteMessageRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *DeleteMessageRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *DeleteMessageRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +// Used in the `DeleteMessage` endpoint. +type DeleteMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteMessageResponse) Reset() { + *x = DeleteMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMessageResponse) ProtoMessage() {} + +func (x *DeleteMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[18] + 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 DeleteMessageResponse.ProtoReflect.Descriptor instead. +func (*DeleteMessageResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{18} +} + +// Used in the `TriggerAction` endpoint. +type TriggerActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message you want to trigger an action in. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + // Payload of action data. + Payload *ActionPayload `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *TriggerActionRequest) Reset() { + *x = TriggerActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TriggerActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TriggerActionRequest) ProtoMessage() {} + +func (x *TriggerActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[19] + 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 TriggerActionRequest.ProtoReflect.Descriptor instead. +func (*TriggerActionRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{19} +} + +func (x *TriggerActionRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *TriggerActionRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *TriggerActionRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *TriggerActionRequest) GetPayload() *ActionPayload { + if x != nil { + return x.Payload + } + return nil +} + +// Used in the `TriggerAction` endpoint. +type TriggerActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TriggerActionResponse) Reset() { + *x = TriggerActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TriggerActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TriggerActionResponse) ProtoMessage() {} + +func (x *TriggerActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[20] + 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 TriggerActionResponse.ProtoReflect.Descriptor instead. +func (*TriggerActionResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{20} +} + +// Used in the `SendMessage` endpoint. +type SendMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel you want to send a message in. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Content of the new message. + Content *Content `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + // Echo ID of the new message. This can be used by clients to + // determine whether a message is sent. + EchoId *uint64 `protobuf:"varint,4,opt,name=echo_id,json=echoId,proto3,oneof" json:"echo_id,omitempty"` + // The overrides of this new message. + Overrides *Overrides `protobuf:"bytes,6,opt,name=overrides,proto3,oneof" json:"overrides,omitempty"` + // The message this new message is a reply to. + InReplyTo *uint64 `protobuf:"varint,7,opt,name=in_reply_to,json=inReplyTo,proto3,oneof" json:"in_reply_to,omitempty"` + // The metadata of this new message. + Metadata *v1.Metadata `protobuf:"bytes,5,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` +} + +func (x *SendMessageRequest) Reset() { + *x = SendMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageRequest) ProtoMessage() {} + +func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[21] + 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 SendMessageRequest.ProtoReflect.Descriptor instead. +func (*SendMessageRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{21} +} + +func (x *SendMessageRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *SendMessageRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *SendMessageRequest) GetContent() *Content { + if x != nil { + return x.Content + } + return nil +} + +func (x *SendMessageRequest) GetEchoId() uint64 { + if x != nil && x.EchoId != nil { + return *x.EchoId + } + return 0 +} + +func (x *SendMessageRequest) GetOverrides() *Overrides { + if x != nil { + return x.Overrides + } + return nil +} + +func (x *SendMessageRequest) GetInReplyTo() uint64 { + if x != nil && x.InReplyTo != nil { + return *x.InReplyTo + } + return 0 +} + +func (x *SendMessageRequest) GetMetadata() *v1.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +// Used in the `SendMessage` endpoint. +type SendMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Message ID of the message sent. + MessageId uint64 `protobuf:"varint,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *SendMessageResponse) Reset() { + *x = SendMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageResponse) ProtoMessage() {} + +func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[22] + 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 SendMessageResponse.ProtoReflect.Descriptor instead. +func (*SendMessageResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{22} +} + +func (x *SendMessageResponse) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +// Used in the `UpdateMessageText` endpoint. +type UpdateMessageTextRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message you want to edit the text of. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + // New content for this message. + NewContent *FormattedText `protobuf:"bytes,4,opt,name=new_content,json=newContent,proto3" json:"new_content,omitempty"` +} + +func (x *UpdateMessageTextRequest) Reset() { + *x = UpdateMessageTextRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMessageTextRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMessageTextRequest) ProtoMessage() {} + +func (x *UpdateMessageTextRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[23] + 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 UpdateMessageTextRequest.ProtoReflect.Descriptor instead. +func (*UpdateMessageTextRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{23} +} + +func (x *UpdateMessageTextRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *UpdateMessageTextRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *UpdateMessageTextRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *UpdateMessageTextRequest) GetNewContent() *FormattedText { + if x != nil { + return x.NewContent + } + return nil +} + +// Used in the `UpdateMessageText` endpoint. +type UpdateMessageTextResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateMessageTextResponse) Reset() { + *x = UpdateMessageTextResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMessageTextResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMessageTextResponse) ProtoMessage() {} + +func (x *UpdateMessageTextResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[24] + 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 UpdateMessageTextResponse.ProtoReflect.Descriptor instead. +func (*UpdateMessageTextResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{24} +} + +// Used in the `PinMessage` endpoint. +type PinMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message we want to pin. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *PinMessageRequest) Reset() { + *x = PinMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PinMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PinMessageRequest) ProtoMessage() {} + +func (x *PinMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[25] + 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 PinMessageRequest.ProtoReflect.Descriptor instead. +func (*PinMessageRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{25} +} + +func (x *PinMessageRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *PinMessageRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *PinMessageRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +// Used in the `UnpinMessage` endpoint. +type PinMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PinMessageResponse) Reset() { + *x = PinMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PinMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PinMessageResponse) ProtoMessage() {} + +func (x *PinMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[26] + 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 PinMessageResponse.ProtoReflect.Descriptor instead. +func (*PinMessageResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{26} +} + +// Used in the `UnpinMessage` endpoint. +type UnpinMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message we want to unpin. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *UnpinMessageRequest) Reset() { + *x = UnpinMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnpinMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnpinMessageRequest) ProtoMessage() {} + +func (x *UnpinMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[27] + 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 UnpinMessageRequest.ProtoReflect.Descriptor instead. +func (*UnpinMessageRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{27} +} + +func (x *UnpinMessageRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *UnpinMessageRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *UnpinMessageRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +// Used in the `UnpinMessage` endpoint. +type UnpinMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UnpinMessageResponse) Reset() { + *x = UnpinMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnpinMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnpinMessageResponse) ProtoMessage() {} + +func (x *UnpinMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[28] + 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 UnpinMessageResponse.ProtoReflect.Descriptor instead. +func (*UnpinMessageResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{28} +} + +// Used in the `GetPinnedMessages` endpoint. +type GetPinnedMessagesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel we want to get pins of. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` +} + +func (x *GetPinnedMessagesRequest) Reset() { + *x = GetPinnedMessagesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPinnedMessagesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPinnedMessagesRequest) ProtoMessage() {} + +func (x *GetPinnedMessagesRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[29] + 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 GetPinnedMessagesRequest.ProtoReflect.Descriptor instead. +func (*GetPinnedMessagesRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{29} +} + +func (x *GetPinnedMessagesRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *GetPinnedMessagesRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +// Used in the `GetPinnedMessages` endpoint. +type GetPinnedMessagesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The IDs of the pinned messages. + PinnedMessageIds []uint64 `protobuf:"varint,1,rep,packed,name=pinned_message_ids,json=pinnedMessageIds,proto3" json:"pinned_message_ids,omitempty"` +} + +func (x *GetPinnedMessagesResponse) Reset() { + *x = GetPinnedMessagesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPinnedMessagesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPinnedMessagesResponse) ProtoMessage() {} + +func (x *GetPinnedMessagesResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[30] + 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 GetPinnedMessagesResponse.ProtoReflect.Descriptor instead. +func (*GetPinnedMessagesResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{30} +} + +func (x *GetPinnedMessagesResponse) GetPinnedMessageIds() []uint64 { + if x != nil { + return x.PinnedMessageIds + } + return nil +} + +// Used in `AddReaction` endpoint. +type AddReactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message we want to add a reaction to. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + // The emote we want to react with. + Emote *v11.Emote `protobuf:"bytes,4,opt,name=emote,proto3" json:"emote,omitempty"` +} + +func (x *AddReactionRequest) Reset() { + *x = AddReactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddReactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddReactionRequest) ProtoMessage() {} + +func (x *AddReactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[31] + 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 AddReactionRequest.ProtoReflect.Descriptor instead. +func (*AddReactionRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{31} +} + +func (x *AddReactionRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *AddReactionRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *AddReactionRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *AddReactionRequest) GetEmote() *v11.Emote { + if x != nil { + return x.Emote + } + return nil +} + +// Used in `AddReaction` endpoint. +type AddReactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddReactionResponse) Reset() { + *x = AddReactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddReactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddReactionResponse) ProtoMessage() {} + +func (x *AddReactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[32] + 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 AddReactionResponse.ProtoReflect.Descriptor instead. +func (*AddReactionResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{32} +} + +// Used in `RemoveReaction` endpoint. +type RemoveReactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guild ID of the guild where the channel is. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // Channel ID of the channel where the message is. + ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Message ID of the message we want to remove a reaction. + MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + // The emote we want to remove the react of. + Emote *v11.Emote `protobuf:"bytes,4,opt,name=emote,proto3" json:"emote,omitempty"` +} + +func (x *RemoveReactionRequest) Reset() { + *x = RemoveReactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveReactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveReactionRequest) ProtoMessage() {} + +func (x *RemoveReactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[33] + 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 RemoveReactionRequest.ProtoReflect.Descriptor instead. +func (*RemoveReactionRequest) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{33} +} + +func (x *RemoveReactionRequest) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *RemoveReactionRequest) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +func (x *RemoveReactionRequest) GetMessageId() uint64 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *RemoveReactionRequest) GetEmote() *v11.Emote { + if x != nil { + return x.Emote + } + return nil +} + +// Used in `RemoveReaction` endpoint. +type RemoveReactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RemoveReactionResponse) Reset() { + *x = RemoveReactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveReactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveReactionResponse) ProtoMessage() {} + +func (x *RemoveReactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[34] + 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 RemoveReactionResponse.ProtoReflect.Descriptor instead. +func (*RemoveReactionResponse) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{34} +} + +// The payload data for a button action +type ActionPayload_Button struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data from the Button action + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *ActionPayload_Button) Reset() { + *x = ActionPayload_Button{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActionPayload_Button) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionPayload_Button) ProtoMessage() {} + +func (x *ActionPayload_Button) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[35] + 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 ActionPayload_Button.ProtoReflect.Descriptor instead. +func (*ActionPayload_Button) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *ActionPayload_Button) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// The payload for a dropdown action +type ActionPayload_Dropdown struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The user choice from the dropdown. + Choice []byte `protobuf:"bytes,1,opt,name=choice,proto3" json:"choice,omitempty"` +} + +func (x *ActionPayload_Dropdown) Reset() { + *x = ActionPayload_Dropdown{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActionPayload_Dropdown) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionPayload_Dropdown) ProtoMessage() {} + +func (x *ActionPayload_Dropdown) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[36] + 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 ActionPayload_Dropdown.ProtoReflect.Descriptor instead. +func (*ActionPayload_Dropdown) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *ActionPayload_Dropdown) GetChoice() []byte { + if x != nil { + return x.Choice + } + return nil +} + +// The payload for a text input action +type ActionPayload_Input struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The user input. + Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // The bot-provided data + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *ActionPayload_Input) Reset() { + *x = ActionPayload_Input{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActionPayload_Input) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionPayload_Input) ProtoMessage() {} + +func (x *ActionPayload_Input) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[37] + 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 ActionPayload_Input.ProtoReflect.Descriptor instead. +func (*ActionPayload_Input) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{1, 2} +} + +func (x *ActionPayload_Input) GetInput() string { + if x != nil { + return x.Input + } + return "" +} + +func (x *ActionPayload_Input) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// A button that users can click on to trigger an action. +type Action_Button struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The text to show on the button. + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + // Action data, which should be used in the call to perform the action. + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + // An external URL that the button links to. + // This makes it so that tapping this button will open said URL instead + // of triggering the action. + Url *string `protobuf:"bytes,3,opt,name=url,proto3,oneof" json:"url,omitempty"` +} + +func (x *Action_Button) Reset() { + *x = Action_Button{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action_Button) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action_Button) ProtoMessage() {} + +func (x *Action_Button) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[38] + 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 Action_Button.ProtoReflect.Descriptor instead. +func (*Action_Button) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *Action_Button) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *Action_Button) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *Action_Button) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +// A dropdown menu that users can click on to trigger an action. +type Action_Dropdown struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The text describing the dropdown. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + // The options in the dropdown. + Entries []*Action_Dropdown_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *Action_Dropdown) Reset() { + *x = Action_Dropdown{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action_Dropdown) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action_Dropdown) ProtoMessage() {} + +func (x *Action_Dropdown) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[39] + 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 Action_Dropdown.ProtoReflect.Descriptor instead. +func (*Action_Dropdown) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2, 1} +} + +func (x *Action_Dropdown) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *Action_Dropdown) GetEntries() []*Action_Dropdown_Entry { + if x != nil { + return x.Entries + } + return nil +} + +// A text input that users can type in to trigger an action. +type Action_Input struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The label describing the input. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + // Whether this text input should be a multiline one or not. + Multiline bool `protobuf:"varint,2,opt,name=multiline,proto3" json:"multiline,omitempty"` + // Contextual data allowing the bot to discern what the user input is for + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Action_Input) Reset() { + *x = Action_Input{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action_Input) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action_Input) ProtoMessage() {} + +func (x *Action_Input) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[40] + 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 Action_Input.ProtoReflect.Descriptor instead. +func (*Action_Input) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2, 2} +} + +func (x *Action_Input) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *Action_Input) GetMultiline() bool { + if x != nil { + return x.Multiline + } + return false +} + +func (x *Action_Input) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// An entry in the dropdown +type Action_Dropdown_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The dropdown's UI label. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + // The dropdown's associated data. + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Action_Dropdown_Entry) Reset() { + *x = Action_Dropdown_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action_Dropdown_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action_Dropdown_Entry) ProtoMessage() {} + +func (x *Action_Dropdown_Entry) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[41] + 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 Action_Dropdown_Entry.ProtoReflect.Descriptor instead. +func (*Action_Dropdown_Entry) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{2, 1, 0} +} + +func (x *Action_Dropdown_Entry) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *Action_Dropdown_Entry) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// Object representing an embed heading. +type Embed_EmbedHeading struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text of the heading. + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + // Subtext of the heading. + Subtext *string `protobuf:"bytes,2,opt,name=subtext,proto3,oneof" json:"subtext,omitempty"` + // URL of the heading. + Url *string `protobuf:"bytes,3,opt,name=url,proto3,oneof" json:"url,omitempty"` + // Icon of the heading. + Icon *string `protobuf:"bytes,4,opt,name=icon,proto3,oneof" json:"icon,omitempty"` +} + +func (x *Embed_EmbedHeading) Reset() { + *x = Embed_EmbedHeading{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Embed_EmbedHeading) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Embed_EmbedHeading) ProtoMessage() {} + +func (x *Embed_EmbedHeading) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[42] + 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 Embed_EmbedHeading.ProtoReflect.Descriptor instead. +func (*Embed_EmbedHeading) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *Embed_EmbedHeading) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *Embed_EmbedHeading) GetSubtext() string { + if x != nil && x.Subtext != nil { + return *x.Subtext + } + return "" +} + +func (x *Embed_EmbedHeading) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *Embed_EmbedHeading) GetIcon() string { + if x != nil && x.Icon != nil { + return *x.Icon + } + return "" +} + +// Object representing an embed field. +type Embed_EmbedField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Title of this field. + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + // Subtitle of this field. + Subtitle *string `protobuf:"bytes,2,opt,name=subtitle,proto3,oneof" json:"subtitle,omitempty"` + // Body text of this field (eg. a description). + Body *FormattedText `protobuf:"bytes,3,opt,name=body,proto3,oneof" json:"body,omitempty"` + // Image URL of this field. + ImageUrl *string `protobuf:"bytes,4,opt,name=image_url,json=imageUrl,proto3,oneof" json:"image_url,omitempty"` + // How to present this field. + Presentation Embed_EmbedField_Presentation `protobuf:"varint,5,opt,name=presentation,proto3,enum=protocol.chat.v1.Embed_EmbedField_Presentation" json:"presentation,omitempty"` + // Actions of this field. + Actions []*Action `protobuf:"bytes,6,rep,name=actions,proto3" json:"actions,omitempty"` +} + +func (x *Embed_EmbedField) Reset() { + *x = Embed_EmbedField{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Embed_EmbedField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Embed_EmbedField) ProtoMessage() {} + +func (x *Embed_EmbedField) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[43] + 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 Embed_EmbedField.ProtoReflect.Descriptor instead. +func (*Embed_EmbedField) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *Embed_EmbedField) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Embed_EmbedField) GetSubtitle() string { + if x != nil && x.Subtitle != nil { + return *x.Subtitle + } + return "" +} + +func (x *Embed_EmbedField) GetBody() *FormattedText { + if x != nil { + return x.Body + } + return nil +} + +func (x *Embed_EmbedField) GetImageUrl() string { + if x != nil && x.ImageUrl != nil { + return *x.ImageUrl + } + return "" +} + +func (x *Embed_EmbedField) GetPresentation() Embed_EmbedField_Presentation { + if x != nil { + return x.Presentation + } + return Embed_EmbedField_PRESENTATION_DATA_UNSPECIFIED +} + +func (x *Embed_EmbedField) GetActions() []*Action { + if x != nil { + return x.Actions + } + return nil +} + +// Object representing text content. +type Content_TextContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text content. + Content *FormattedText `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *Content_TextContent) Reset() { + *x = Content_TextContent{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_TextContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_TextContent) ProtoMessage() {} + +func (x *Content_TextContent) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[44] + 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 Content_TextContent.ProtoReflect.Descriptor instead. +func (*Content_TextContent) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *Content_TextContent) GetContent() *FormattedText { + if x != nil { + return x.Content + } + return nil +} + +// Object representing embed content. +type Content_EmbedContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Embed content. + Embeds []*Embed `protobuf:"bytes,1,rep,name=embeds,proto3" json:"embeds,omitempty"` +} + +func (x *Content_EmbedContent) Reset() { + *x = Content_EmbedContent{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_EmbedContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_EmbedContent) ProtoMessage() {} + +func (x *Content_EmbedContent) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[45] + 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 Content_EmbedContent.ProtoReflect.Descriptor instead. +func (*Content_EmbedContent) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *Content_EmbedContent) GetEmbeds() []*Embed { + if x != nil { + return x.Embeds + } + return nil +} + +// Object representing attachment content. +type Content_AttachmentContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of attachments. + Files []*Attachment `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` +} + +func (x *Content_AttachmentContent) Reset() { + *x = Content_AttachmentContent{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_AttachmentContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_AttachmentContent) ProtoMessage() {} + +func (x *Content_AttachmentContent) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[46] + 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 Content_AttachmentContent.ProtoReflect.Descriptor instead. +func (*Content_AttachmentContent) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 2} +} + +func (x *Content_AttachmentContent) GetFiles() []*Attachment { + if x != nil { + return x.Files + } + return nil +} + +// Object representing photo content. +type Content_PhotoContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of photos. + Photos []*Photo `protobuf:"bytes,1,rep,name=photos,proto3" json:"photos,omitempty"` +} + +func (x *Content_PhotoContent) Reset() { + *x = Content_PhotoContent{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_PhotoContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_PhotoContent) ProtoMessage() {} + +func (x *Content_PhotoContent) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[47] + 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 Content_PhotoContent.ProtoReflect.Descriptor instead. +func (*Content_PhotoContent) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 3} +} + +func (x *Content_PhotoContent) GetPhotos() []*Photo { + if x != nil { + return x.Photos + } + return nil +} + +// Represents a user rejecting an invite. +// +// This can only be used by servers themselves. Servers should reject +// messages with this content if they are sent by a user. +type Content_InviteRejected struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // User ID of the invitee. + InviteeId uint64 `protobuf:"varint,1,opt,name=invitee_id,json=inviteeId,proto3" json:"invitee_id,omitempty"` + // User ID of the inviter. + InviterId uint64 `protobuf:"varint,2,opt,name=inviter_id,json=inviterId,proto3" json:"inviter_id,omitempty"` +} + +func (x *Content_InviteRejected) Reset() { + *x = Content_InviteRejected{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_InviteRejected) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_InviteRejected) ProtoMessage() {} + +func (x *Content_InviteRejected) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[48] + 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 Content_InviteRejected.ProtoReflect.Descriptor instead. +func (*Content_InviteRejected) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 4} +} + +func (x *Content_InviteRejected) GetInviteeId() uint64 { + if x != nil { + return x.InviteeId + } + return 0 +} + +func (x *Content_InviteRejected) GetInviterId() uint64 { + if x != nil { + return x.InviterId + } + return 0 +} + +// Represents a user accepting an invite. +// +// This can only be used by servers themselves. Servers should reject +// messages with this content if they are sent by a user. +type Content_InviteAccepted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // User ID of the invitee. + InviteeId uint64 `protobuf:"varint,1,opt,name=invitee_id,json=inviteeId,proto3" json:"invitee_id,omitempty"` + // User ID of the inviter. + InviterId uint64 `protobuf:"varint,2,opt,name=inviter_id,json=inviterId,proto3" json:"inviter_id,omitempty"` +} + +func (x *Content_InviteAccepted) Reset() { + *x = Content_InviteAccepted{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_InviteAccepted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_InviteAccepted) ProtoMessage() {} + +func (x *Content_InviteAccepted) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[49] + 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 Content_InviteAccepted.ProtoReflect.Descriptor instead. +func (*Content_InviteAccepted) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 5} +} + +func (x *Content_InviteAccepted) GetInviteeId() uint64 { + if x != nil { + return x.InviteeId + } + return 0 +} + +func (x *Content_InviteAccepted) GetInviterId() uint64 { + if x != nil { + return x.InviterId + } + return 0 +} + +// Represents a guild upgrade from "room" to "normal". +// +// This can only be used by servers themselves. Servers should reject +// messages with this content if they are sent by a user. +type Content_RoomUpgradedToGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // User ID of the user that upgraded the guild. + UpgradedBy uint64 `protobuf:"varint,1,opt,name=upgraded_by,json=upgradedBy,proto3" json:"upgraded_by,omitempty"` +} + +func (x *Content_RoomUpgradedToGuild) Reset() { + *x = Content_RoomUpgradedToGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Content_RoomUpgradedToGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Content_RoomUpgradedToGuild) ProtoMessage() {} + +func (x *Content_RoomUpgradedToGuild) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[50] + 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 Content_RoomUpgradedToGuild.ProtoReflect.Descriptor instead. +func (*Content_RoomUpgradedToGuild) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{7, 6} +} + +func (x *Content_RoomUpgradedToGuild) GetUpgradedBy() uint64 { + if x != nil { + return x.UpgradedBy + } + return 0 +} + +// Bold text +type Format_Bold struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Bold) Reset() { + *x = Format_Bold{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Bold) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Bold) ProtoMessage() {} + +func (x *Format_Bold) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[51] + 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 Format_Bold.ProtoReflect.Descriptor instead. +func (*Format_Bold) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 0} +} + +// Italic text +type Format_Italic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Italic) Reset() { + *x = Format_Italic{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Italic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Italic) ProtoMessage() {} + +func (x *Format_Italic) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[52] + 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 Format_Italic.ProtoReflect.Descriptor instead. +func (*Format_Italic) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 1} +} + +// Underlined text +type Format_Underline struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Underline) Reset() { + *x = Format_Underline{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Underline) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Underline) ProtoMessage() {} + +func (x *Format_Underline) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[53] + 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 Format_Underline.ProtoReflect.Descriptor instead. +func (*Format_Underline) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 2} +} + +// Monospace text +type Format_Monospace struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Monospace) Reset() { + *x = Format_Monospace{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Monospace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Monospace) ProtoMessage() {} + +func (x *Format_Monospace) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[54] + 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 Format_Monospace.ProtoReflect.Descriptor instead. +func (*Format_Monospace) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 3} +} + +// Superscript text +type Format_Superscript struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Superscript) Reset() { + *x = Format_Superscript{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Superscript) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Superscript) ProtoMessage() {} + +func (x *Format_Superscript) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[55] + 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 Format_Superscript.ProtoReflect.Descriptor instead. +func (*Format_Superscript) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 4} +} + +// Subscript text +type Format_Subscript struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Format_Subscript) Reset() { + *x = Format_Subscript{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Subscript) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Subscript) ProtoMessage() {} + +func (x *Format_Subscript) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[56] + 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 Format_Subscript.ProtoReflect.Descriptor instead. +func (*Format_Subscript) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 5} +} + +// A larger codeblock, with a programming language specified +// Clients should ideally not bound the width of codeblock messages, +// possibly scrolling the codeblock horizontally separately from the +// rest of the message +type Format_CodeBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // programming language of the code block + Language string `protobuf:"bytes,1,opt,name=language,proto3" json:"language,omitempty"` +} + +func (x *Format_CodeBlock) Reset() { + *x = Format_CodeBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_CodeBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_CodeBlock) ProtoMessage() {} + +func (x *Format_CodeBlock) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[57] + 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 Format_CodeBlock.ProtoReflect.Descriptor instead. +func (*Format_CodeBlock) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 6} +} + +func (x *Format_CodeBlock) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +// Mention of a user (on the current homeserver) +type Format_UserMention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // user_id of the user being mentioned + UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *Format_UserMention) Reset() { + *x = Format_UserMention{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_UserMention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_UserMention) ProtoMessage() {} + +func (x *Format_UserMention) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[58] + 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 Format_UserMention.ProtoReflect.Descriptor instead. +func (*Format_UserMention) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 7} +} + +func (x *Format_UserMention) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +// Mention of a role (on the current guild) +type Format_RoleMention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the role being mentioned + RoleId uint64 `protobuf:"varint,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` +} + +func (x *Format_RoleMention) Reset() { + *x = Format_RoleMention{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_RoleMention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_RoleMention) ProtoMessage() {} + +func (x *Format_RoleMention) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[59] + 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 Format_RoleMention.ProtoReflect.Descriptor instead. +func (*Format_RoleMention) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 8} +} + +func (x *Format_RoleMention) GetRoleId() uint64 { + if x != nil { + return x.RoleId + } + return 0 +} + +// Mention of a channel (on the current guild) +type Format_ChannelMention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the channel being mentioned + ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` +} + +func (x *Format_ChannelMention) Reset() { + *x = Format_ChannelMention{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_ChannelMention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_ChannelMention) ProtoMessage() {} + +func (x *Format_ChannelMention) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[60] + 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 Format_ChannelMention.ProtoReflect.Descriptor instead. +func (*Format_ChannelMention) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 9} +} + +func (x *Format_ChannelMention) GetChannelId() uint64 { + if x != nil { + return x.ChannelId + } + return 0 +} + +// Mention of a guild +type Format_GuildMention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the guild being mentioned + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // which homeserver it belongs to + Homeserver string `protobuf:"bytes,2,opt,name=homeserver,proto3" json:"homeserver,omitempty"` +} + +func (x *Format_GuildMention) Reset() { + *x = Format_GuildMention{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_GuildMention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_GuildMention) ProtoMessage() {} + +func (x *Format_GuildMention) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[61] + 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 Format_GuildMention.ProtoReflect.Descriptor instead. +func (*Format_GuildMention) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 10} +} + +func (x *Format_GuildMention) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *Format_GuildMention) GetHomeserver() string { + if x != nil { + return x.Homeserver + } + return "" +} + +// An emoji +type Format_Emoji struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The HMC URL of the emoji + ImageHmc string `protobuf:"bytes,1,opt,name=image_hmc,json=imageHmc,proto3" json:"image_hmc,omitempty"` + // The ID of the emoji pack the emoji is from + PackId uint64 `protobuf:"varint,2,opt,name=pack_id,json=packId,proto3" json:"pack_id,omitempty"` +} + +func (x *Format_Emoji) Reset() { + *x = Format_Emoji{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Emoji) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Emoji) ProtoMessage() {} + +func (x *Format_Emoji) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[62] + 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 Format_Emoji.ProtoReflect.Descriptor instead. +func (*Format_Emoji) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 11} +} + +func (x *Format_Emoji) GetImageHmc() string { + if x != nil { + return x.ImageHmc + } + return "" +} + +func (x *Format_Emoji) GetPackId() uint64 { + if x != nil { + return x.PackId + } + return 0 +} + +// Colour modification +type Format_Color struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The kind of colour modification to apply + Kind Format_Color_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=protocol.chat.v1.Format_Color_Kind" json:"kind,omitempty"` +} + +func (x *Format_Color) Reset() { + *x = Format_Color{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Color) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Color) ProtoMessage() {} + +func (x *Format_Color) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[63] + 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 Format_Color.ProtoReflect.Descriptor instead. +func (*Format_Color) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 12} +} + +func (x *Format_Color) GetKind() Format_Color_Kind { + if x != nil { + return x.Kind + } + return Format_Color_KIND_DIM_UNSPECIFIED +} + +// Replace a part of the text with the text matching the i18n code. +// If i18n code was not found, keep the original text. +type Format_Localization struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // i18n code for the text. + I18NCode string `protobuf:"bytes,1,opt,name=i18n_code,json=i18nCode,proto3" json:"i18n_code,omitempty"` +} + +func (x *Format_Localization) Reset() { + *x = Format_Localization{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_messages_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Format_Localization) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Format_Localization) ProtoMessage() {} + +func (x *Format_Localization) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_messages_proto_msgTypes[64] + 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 Format_Localization.ProtoReflect.Descriptor instead. +func (*Format_Localization) Descriptor() ([]byte, []int) { + return file_chat_v1_messages_proto_rawDescGZIP(), []int{9, 13} +} + +func (x *Format_Localization) GetI18NCode() string { + if x != nil { + return x.I18NCode + } + return "" +} + +var File_chat_v1_messages_proto protoreflect.FileDescriptor + +var file_chat_v1_messages_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x68, 0x61, 0x72, 0x6d, + 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x76, + 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x03, + 0x0a, 0x09, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x3b, + 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, + 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x48, 0x00, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x4c, 0x0a, 0x10, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x6c, 0x75, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x50, 0x6c, 0x75, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, + 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, + 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x22, 0xd8, 0x02, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x40, 0x0a, 0x06, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x48, 0x00, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1c, 0x0a, 0x06, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x22, 0x0a, 0x08, 0x44, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x31, 0x0a, + 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8c, 0x05, 0x0a, 0x06, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x12, 0x3f, 0x0a, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, + 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x4f, 0x0a, 0x06, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x15, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x1a, 0x96, 0x01, 0x0a, 0x08, + 0x44, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x41, + 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x1a, 0x31, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4f, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xa8, 0x07, 0x0a, 0x05, 0x45, + 0x6d, 0x62, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x41, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x48, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x02, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x41, 0x0a, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x2e, 0x45, 0x6d, 0x62, 0x65, + 0x64, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x03, 0x52, 0x06, 0x66, 0x6f, 0x6f, 0x74, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x2e, 0x45, + 0x6d, 0x62, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x0c, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x65, + 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x69, 0x63, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x65, 0x78, + 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, + 0x6f, 0x6e, 0x1a, 0xb7, 0x03, 0x0a, 0x0a, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x75, 0x62, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x01, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, + 0x62, 0x65, 0x64, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x69, 0x0a, + 0x0c, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, + 0x1d, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x43, 0x41, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, + 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x57, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, + 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x51, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, 0x69, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x05, 0x50, 0x68, 0x6f, + 0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x6d, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x68, 0x6d, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x69, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x69, 0x74, 0x68, 0x75, 0x6d, + 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x22, 0xac, 0x01, 0x0a, 0x0a, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x61, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd9, 0x08, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x0b, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0d, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, + 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x45, + 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x65, + 0x6d, 0x62, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x0a, 0x12, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x70, 0x68, 0x6f, + 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x68, 0x6f, 0x74, + 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x68, 0x6f, 0x74, + 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x53, 0x0a, + 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x65, 0x64, 0x12, 0x64, 0x0a, 0x16, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, + 0x6f, 0x6d, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x48, 0x00, 0x52, 0x13, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x64, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x1a, 0x48, 0x0a, 0x0b, 0x54, 0x65, 0x78, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x1a, 0x3f, 0x0a, 0x0c, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x52, 0x06, 0x65, 0x6d, 0x62, + 0x65, 0x64, 0x73, 0x1a, 0x47, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x0c, + 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, + 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x1a, 0x4e, 0x0a, + 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x4e, 0x0a, + 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x36, 0x0a, + 0x13, 0x52, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x64, 0x42, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x22, 0x50, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xe6, 0x0c, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x04, 0x62, + 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2e, 0x42, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6c, 0x64, + 0x12, 0x39, 0x0a, 0x06, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x49, 0x74, 0x61, 0x6c, 0x69, + 0x63, 0x48, 0x00, 0x52, 0x06, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x12, 0x42, 0x0a, 0x09, 0x75, + 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, + 0x6e, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x42, 0x0a, 0x09, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, + 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x75, 0x70, 0x65, 0x72, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2e, 0x53, 0x75, 0x70, 0x65, 0x72, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x48, 0x00, + 0x52, 0x0b, 0x73, 0x75, 0x70, 0x65, 0x72, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x42, 0x0a, + 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x48, 0x00, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, + 0x43, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x64, + 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x49, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6e, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x49, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x0c, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x48, 0x00, 0x52, + 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x36, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x4b, + 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x06, 0x0a, 0x04, 0x42, + 0x6f, 0x6c, 0x64, 0x1a, 0x08, 0x0a, 0x06, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x1a, 0x0b, 0x0a, + 0x09, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x0b, 0x0a, 0x09, 0x4d, 0x6f, + 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1a, 0x0d, 0x0a, 0x0b, 0x53, 0x75, 0x70, 0x65, 0x72, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x1a, 0x0b, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x1a, 0x27, 0x0a, 0x09, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x1a, 0x26, 0x0a, 0x0b, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x1a, 0x26, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x2f, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0x49, 0x0a, + 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x6d, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, + 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, + 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x6d, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x6d, 0x63, 0x12, 0x17, + 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x70, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x1a, 0xba, 0x01, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x12, 0x37, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, + 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x78, 0x0a, 0x04, 0x4b, 0x69, + 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x4d, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, + 0x0d, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x05, 0x1a, 0x2b, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x31, 0x38, 0x6e, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x31, 0x38, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x55, 0x0a, 0x0d, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x30, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x22, 0xa6, 0x03, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x43, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, + 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x73, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x64, + 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, + 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x22, 0x63, 0x0a, 0x0d, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0xef, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x22, 0x58, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x1c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x46, 0x4f, + 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, + 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x10, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, + 0x6f, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x52, 0x08, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x6f, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, + 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x54, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x82, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x12, 0x33, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x73, 0x48, 0x01, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, + 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x03, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, + 0x12, 0x40, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, + 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x6c, 0x0a, 0x11, 0x50, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x14, 0x0a, + 0x12, 0x50, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x13, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x22, 0x49, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x73, 0x22, 0x9d, 0x01, 0x0a, + 0x12, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x15, 0x0a, 0x13, + 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x6f, 0x74, 0x65, 0x52, + 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0xc3, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x2d, 0x64, + 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x62, 0x73, + 0x68, 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x3b, + 0x63, 0x68, 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, + 0x61, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, 0x43, 0x68, + 0x61, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_chat_v1_messages_proto_rawDescOnce sync.Once + file_chat_v1_messages_proto_rawDescData = file_chat_v1_messages_proto_rawDesc +) + +func file_chat_v1_messages_proto_rawDescGZIP() []byte { + file_chat_v1_messages_proto_rawDescOnce.Do(func() { + file_chat_v1_messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_v1_messages_proto_rawDescData) + }) + return file_chat_v1_messages_proto_rawDescData +} + +var file_chat_v1_messages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_chat_v1_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 65) +var file_chat_v1_messages_proto_goTypes = []interface{}{ + (Action_Type)(0), // 0: protocol.chat.v1.Action.Type + (Embed_EmbedField_Presentation)(0), // 1: protocol.chat.v1.Embed.EmbedField.Presentation + (Format_Color_Kind)(0), // 2: protocol.chat.v1.Format.Color.Kind + (GetChannelMessagesRequest_Direction)(0), // 3: protocol.chat.v1.GetChannelMessagesRequest.Direction + (*Overrides)(nil), // 4: protocol.chat.v1.Overrides + (*ActionPayload)(nil), // 5: protocol.chat.v1.ActionPayload + (*Action)(nil), // 6: protocol.chat.v1.Action + (*Embed)(nil), // 7: protocol.chat.v1.Embed + (*Minithumbnail)(nil), // 8: protocol.chat.v1.Minithumbnail + (*Photo)(nil), // 9: protocol.chat.v1.Photo + (*Attachment)(nil), // 10: protocol.chat.v1.Attachment + (*Content)(nil), // 11: protocol.chat.v1.Content + (*Reaction)(nil), // 12: protocol.chat.v1.Reaction + (*Format)(nil), // 13: protocol.chat.v1.Format + (*FormattedText)(nil), // 14: protocol.chat.v1.FormattedText + (*Message)(nil), // 15: protocol.chat.v1.Message + (*MessageWithId)(nil), // 16: protocol.chat.v1.MessageWithId + (*GetChannelMessagesRequest)(nil), // 17: protocol.chat.v1.GetChannelMessagesRequest + (*GetChannelMessagesResponse)(nil), // 18: protocol.chat.v1.GetChannelMessagesResponse + (*GetMessageRequest)(nil), // 19: protocol.chat.v1.GetMessageRequest + (*GetMessageResponse)(nil), // 20: protocol.chat.v1.GetMessageResponse + (*DeleteMessageRequest)(nil), // 21: protocol.chat.v1.DeleteMessageRequest + (*DeleteMessageResponse)(nil), // 22: protocol.chat.v1.DeleteMessageResponse + (*TriggerActionRequest)(nil), // 23: protocol.chat.v1.TriggerActionRequest + (*TriggerActionResponse)(nil), // 24: protocol.chat.v1.TriggerActionResponse + (*SendMessageRequest)(nil), // 25: protocol.chat.v1.SendMessageRequest + (*SendMessageResponse)(nil), // 26: protocol.chat.v1.SendMessageResponse + (*UpdateMessageTextRequest)(nil), // 27: protocol.chat.v1.UpdateMessageTextRequest + (*UpdateMessageTextResponse)(nil), // 28: protocol.chat.v1.UpdateMessageTextResponse + (*PinMessageRequest)(nil), // 29: protocol.chat.v1.PinMessageRequest + (*PinMessageResponse)(nil), // 30: protocol.chat.v1.PinMessageResponse + (*UnpinMessageRequest)(nil), // 31: protocol.chat.v1.UnpinMessageRequest + (*UnpinMessageResponse)(nil), // 32: protocol.chat.v1.UnpinMessageResponse + (*GetPinnedMessagesRequest)(nil), // 33: protocol.chat.v1.GetPinnedMessagesRequest + (*GetPinnedMessagesResponse)(nil), // 34: protocol.chat.v1.GetPinnedMessagesResponse + (*AddReactionRequest)(nil), // 35: protocol.chat.v1.AddReactionRequest + (*AddReactionResponse)(nil), // 36: protocol.chat.v1.AddReactionResponse + (*RemoveReactionRequest)(nil), // 37: protocol.chat.v1.RemoveReactionRequest + (*RemoveReactionResponse)(nil), // 38: protocol.chat.v1.RemoveReactionResponse + (*ActionPayload_Button)(nil), // 39: protocol.chat.v1.ActionPayload.Button + (*ActionPayload_Dropdown)(nil), // 40: protocol.chat.v1.ActionPayload.Dropdown + (*ActionPayload_Input)(nil), // 41: protocol.chat.v1.ActionPayload.Input + (*Action_Button)(nil), // 42: protocol.chat.v1.Action.Button + (*Action_Dropdown)(nil), // 43: protocol.chat.v1.Action.Dropdown + (*Action_Input)(nil), // 44: protocol.chat.v1.Action.Input + (*Action_Dropdown_Entry)(nil), // 45: protocol.chat.v1.Action.Dropdown.Entry + (*Embed_EmbedHeading)(nil), // 46: protocol.chat.v1.Embed.EmbedHeading + (*Embed_EmbedField)(nil), // 47: protocol.chat.v1.Embed.EmbedField + (*Content_TextContent)(nil), // 48: protocol.chat.v1.Content.TextContent + (*Content_EmbedContent)(nil), // 49: protocol.chat.v1.Content.EmbedContent + (*Content_AttachmentContent)(nil), // 50: protocol.chat.v1.Content.AttachmentContent + (*Content_PhotoContent)(nil), // 51: protocol.chat.v1.Content.PhotoContent + (*Content_InviteRejected)(nil), // 52: protocol.chat.v1.Content.InviteRejected + (*Content_InviteAccepted)(nil), // 53: protocol.chat.v1.Content.InviteAccepted + (*Content_RoomUpgradedToGuild)(nil), // 54: protocol.chat.v1.Content.RoomUpgradedToGuild + (*Format_Bold)(nil), // 55: protocol.chat.v1.Format.Bold + (*Format_Italic)(nil), // 56: protocol.chat.v1.Format.Italic + (*Format_Underline)(nil), // 57: protocol.chat.v1.Format.Underline + (*Format_Monospace)(nil), // 58: protocol.chat.v1.Format.Monospace + (*Format_Superscript)(nil), // 59: protocol.chat.v1.Format.Superscript + (*Format_Subscript)(nil), // 60: protocol.chat.v1.Format.Subscript + (*Format_CodeBlock)(nil), // 61: protocol.chat.v1.Format.CodeBlock + (*Format_UserMention)(nil), // 62: protocol.chat.v1.Format.UserMention + (*Format_RoleMention)(nil), // 63: protocol.chat.v1.Format.RoleMention + (*Format_ChannelMention)(nil), // 64: protocol.chat.v1.Format.ChannelMention + (*Format_GuildMention)(nil), // 65: protocol.chat.v1.Format.GuildMention + (*Format_Emoji)(nil), // 66: protocol.chat.v1.Format.Emoji + (*Format_Color)(nil), // 67: protocol.chat.v1.Format.Color + (*Format_Localization)(nil), // 68: protocol.chat.v1.Format.Localization + (*v1.Empty)(nil), // 69: protocol.harmonytypes.v1.Empty + (*v11.Emote)(nil), // 70: protocol.emote.v1.Emote + (*v1.Metadata)(nil), // 71: protocol.harmonytypes.v1.Metadata +} +var file_chat_v1_messages_proto_depIdxs = []int32{ + 69, // 0: protocol.chat.v1.Overrides.webhook:type_name -> protocol.harmonytypes.v1.Empty + 69, // 1: protocol.chat.v1.Overrides.system_plurality:type_name -> protocol.harmonytypes.v1.Empty + 69, // 2: protocol.chat.v1.Overrides.system_message:type_name -> protocol.harmonytypes.v1.Empty + 69, // 3: protocol.chat.v1.Overrides.bridge:type_name -> protocol.harmonytypes.v1.Empty + 39, // 4: protocol.chat.v1.ActionPayload.button:type_name -> protocol.chat.v1.ActionPayload.Button + 40, // 5: protocol.chat.v1.ActionPayload.dropdown:type_name -> protocol.chat.v1.ActionPayload.Dropdown + 41, // 6: protocol.chat.v1.ActionPayload.input:type_name -> protocol.chat.v1.ActionPayload.Input + 0, // 7: protocol.chat.v1.Action.action_type:type_name -> protocol.chat.v1.Action.Type + 42, // 8: protocol.chat.v1.Action.button:type_name -> protocol.chat.v1.Action.Button + 43, // 9: protocol.chat.v1.Action.dropdown:type_name -> protocol.chat.v1.Action.Dropdown + 44, // 10: protocol.chat.v1.Action.input:type_name -> protocol.chat.v1.Action.Input + 14, // 11: protocol.chat.v1.Embed.body:type_name -> protocol.chat.v1.FormattedText + 46, // 12: protocol.chat.v1.Embed.header:type_name -> protocol.chat.v1.Embed.EmbedHeading + 46, // 13: protocol.chat.v1.Embed.footer:type_name -> protocol.chat.v1.Embed.EmbedHeading + 47, // 14: protocol.chat.v1.Embed.fields:type_name -> protocol.chat.v1.Embed.EmbedField + 14, // 15: protocol.chat.v1.Photo.caption:type_name -> protocol.chat.v1.FormattedText + 8, // 16: protocol.chat.v1.Photo.minithumbnail:type_name -> protocol.chat.v1.Minithumbnail + 14, // 17: protocol.chat.v1.Attachment.caption:type_name -> protocol.chat.v1.FormattedText + 48, // 18: protocol.chat.v1.Content.text_message:type_name -> protocol.chat.v1.Content.TextContent + 49, // 19: protocol.chat.v1.Content.embed_message:type_name -> protocol.chat.v1.Content.EmbedContent + 50, // 20: protocol.chat.v1.Content.attachment_message:type_name -> protocol.chat.v1.Content.AttachmentContent + 51, // 21: protocol.chat.v1.Content.photo_message:type_name -> protocol.chat.v1.Content.PhotoContent + 52, // 22: protocol.chat.v1.Content.invite_rejected:type_name -> protocol.chat.v1.Content.InviteRejected + 53, // 23: protocol.chat.v1.Content.invite_accepted:type_name -> protocol.chat.v1.Content.InviteAccepted + 54, // 24: protocol.chat.v1.Content.room_upgraded_to_guild:type_name -> protocol.chat.v1.Content.RoomUpgradedToGuild + 70, // 25: protocol.chat.v1.Reaction.emote:type_name -> protocol.emote.v1.Emote + 55, // 26: protocol.chat.v1.Format.bold:type_name -> protocol.chat.v1.Format.Bold + 56, // 27: protocol.chat.v1.Format.italic:type_name -> protocol.chat.v1.Format.Italic + 57, // 28: protocol.chat.v1.Format.underline:type_name -> protocol.chat.v1.Format.Underline + 58, // 29: protocol.chat.v1.Format.monospace:type_name -> protocol.chat.v1.Format.Monospace + 59, // 30: protocol.chat.v1.Format.superscript:type_name -> protocol.chat.v1.Format.Superscript + 60, // 31: protocol.chat.v1.Format.subscript:type_name -> protocol.chat.v1.Format.Subscript + 61, // 32: protocol.chat.v1.Format.code_block:type_name -> protocol.chat.v1.Format.CodeBlock + 62, // 33: protocol.chat.v1.Format.user_mention:type_name -> protocol.chat.v1.Format.UserMention + 63, // 34: protocol.chat.v1.Format.role_mention:type_name -> protocol.chat.v1.Format.RoleMention + 64, // 35: protocol.chat.v1.Format.channel_mention:type_name -> protocol.chat.v1.Format.ChannelMention + 65, // 36: protocol.chat.v1.Format.guild_mention:type_name -> protocol.chat.v1.Format.GuildMention + 66, // 37: protocol.chat.v1.Format.emoji:type_name -> protocol.chat.v1.Format.Emoji + 67, // 38: protocol.chat.v1.Format.color:type_name -> protocol.chat.v1.Format.Color + 68, // 39: protocol.chat.v1.Format.localization:type_name -> protocol.chat.v1.Format.Localization + 13, // 40: protocol.chat.v1.FormattedText.format:type_name -> protocol.chat.v1.Format + 71, // 41: protocol.chat.v1.Message.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 4, // 42: protocol.chat.v1.Message.overrides:type_name -> protocol.chat.v1.Overrides + 11, // 43: protocol.chat.v1.Message.content:type_name -> protocol.chat.v1.Content + 12, // 44: protocol.chat.v1.Message.reactions:type_name -> protocol.chat.v1.Reaction + 15, // 45: protocol.chat.v1.MessageWithId.message:type_name -> protocol.chat.v1.Message + 3, // 46: protocol.chat.v1.GetChannelMessagesRequest.direction:type_name -> protocol.chat.v1.GetChannelMessagesRequest.Direction + 16, // 47: protocol.chat.v1.GetChannelMessagesResponse.messages:type_name -> protocol.chat.v1.MessageWithId + 15, // 48: protocol.chat.v1.GetMessageResponse.message:type_name -> protocol.chat.v1.Message + 5, // 49: protocol.chat.v1.TriggerActionRequest.payload:type_name -> protocol.chat.v1.ActionPayload + 11, // 50: protocol.chat.v1.SendMessageRequest.content:type_name -> protocol.chat.v1.Content + 4, // 51: protocol.chat.v1.SendMessageRequest.overrides:type_name -> protocol.chat.v1.Overrides + 71, // 52: protocol.chat.v1.SendMessageRequest.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 14, // 53: protocol.chat.v1.UpdateMessageTextRequest.new_content:type_name -> protocol.chat.v1.FormattedText + 70, // 54: protocol.chat.v1.AddReactionRequest.emote:type_name -> protocol.emote.v1.Emote + 70, // 55: protocol.chat.v1.RemoveReactionRequest.emote:type_name -> protocol.emote.v1.Emote + 45, // 56: protocol.chat.v1.Action.Dropdown.entries:type_name -> protocol.chat.v1.Action.Dropdown.Entry + 14, // 57: protocol.chat.v1.Embed.EmbedField.body:type_name -> protocol.chat.v1.FormattedText + 1, // 58: protocol.chat.v1.Embed.EmbedField.presentation:type_name -> protocol.chat.v1.Embed.EmbedField.Presentation + 6, // 59: protocol.chat.v1.Embed.EmbedField.actions:type_name -> protocol.chat.v1.Action + 14, // 60: protocol.chat.v1.Content.TextContent.content:type_name -> protocol.chat.v1.FormattedText + 7, // 61: protocol.chat.v1.Content.EmbedContent.embeds:type_name -> protocol.chat.v1.Embed + 10, // 62: protocol.chat.v1.Content.AttachmentContent.files:type_name -> protocol.chat.v1.Attachment + 9, // 63: protocol.chat.v1.Content.PhotoContent.photos:type_name -> protocol.chat.v1.Photo + 2, // 64: protocol.chat.v1.Format.Color.kind:type_name -> protocol.chat.v1.Format.Color.Kind + 65, // [65:65] is the sub-list for method output_type + 65, // [65:65] is the sub-list for method input_type + 65, // [65:65] is the sub-list for extension type_name + 65, // [65:65] is the sub-list for extension extendee + 0, // [0:65] is the sub-list for field type_name +} + +func init() { file_chat_v1_messages_proto_init() } +func file_chat_v1_messages_proto_init() { + if File_chat_v1_messages_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_chat_v1_messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Overrides); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionPayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Embed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Minithumbnail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Photo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Attachment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Reaction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FormattedText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageWithId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetChannelMessagesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetChannelMessagesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TriggerActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TriggerActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMessageTextRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMessageTextResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PinMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PinMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnpinMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnpinMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPinnedMessagesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPinnedMessagesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddReactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddReactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveReactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveReactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionPayload_Button); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionPayload_Dropdown); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionPayload_Input); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Button); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Dropdown); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Input); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Dropdown_Entry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Embed_EmbedHeading); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Embed_EmbedField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_TextContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_EmbedContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_AttachmentContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_PhotoContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_InviteRejected); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_InviteAccepted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Content_RoomUpgradedToGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Bold); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Italic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Underline); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Monospace); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Superscript); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Subscript); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_CodeBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_UserMention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_RoleMention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_ChannelMention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_GuildMention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Emoji); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Color); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_messages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Format_Localization); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_chat_v1_messages_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Overrides_UserDefined)(nil), + (*Overrides_Webhook)(nil), + (*Overrides_SystemPlurality)(nil), + (*Overrides_SystemMessage)(nil), + (*Overrides_Bridge)(nil), + } + file_chat_v1_messages_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ActionPayload_Button_)(nil), + (*ActionPayload_Dropdown_)(nil), + (*ActionPayload_Input_)(nil), + } + file_chat_v1_messages_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*Action_Button_)(nil), + (*Action_Dropdown_)(nil), + (*Action_Input_)(nil), + } + file_chat_v1_messages_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*Content_TextMessage)(nil), + (*Content_EmbedMessage)(nil), + (*Content_AttachmentMessage)(nil), + (*Content_PhotoMessage)(nil), + (*Content_InviteRejected_)(nil), + (*Content_InviteAccepted_)(nil), + (*Content_RoomUpgradedToGuild_)(nil), + } + file_chat_v1_messages_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*Format_Bold_)(nil), + (*Format_Italic_)(nil), + (*Format_Underline_)(nil), + (*Format_Monospace_)(nil), + (*Format_Superscript_)(nil), + (*Format_Subscript_)(nil), + (*Format_CodeBlock_)(nil), + (*Format_UserMention_)(nil), + (*Format_RoleMention_)(nil), + (*Format_ChannelMention_)(nil), + (*Format_GuildMention_)(nil), + (*Format_Emoji_)(nil), + (*Format_Color_)(nil), + (*Format_Localization_)(nil), + } + file_chat_v1_messages_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[42].OneofWrappers = []interface{}{} + file_chat_v1_messages_proto_msgTypes[43].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_chat_v1_messages_proto_rawDesc, + NumEnums: 4, + NumMessages: 65, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_chat_v1_messages_proto_goTypes, + DependencyIndexes: file_chat_v1_messages_proto_depIdxs, + EnumInfos: file_chat_v1_messages_proto_enumTypes, + MessageInfos: file_chat_v1_messages_proto_msgTypes, + }.Build() + File_chat_v1_messages_proto = out.File + file_chat_v1_messages_proto_rawDesc = nil + file_chat_v1_messages_proto_goTypes = nil + file_chat_v1_messages_proto_depIdxs = nil +} |