summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go
diff options
context:
space:
mode:
authorJanet Blackquill <uhhadd@gmail.com>2021-12-18 16:43:29 -0500
committerGitHub <noreply@github.com>2021-12-18 22:43:29 +0100
commitdbedc994216fa2e932f1aefd3ea27832419b85ef (patch)
tree2a577dda9e296c9f854ea0677394128d17ca6d17 /vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go
parent6cb359cb808e2353db2675b58da95ac0349689fe (diff)
downloadmatterbridge-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.go6224
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
+}