matterbridge/vendor/github.com/harmony-development/shibshib/gen/chat/v1/messages.pb.go
Janet Blackquill dbedc99421
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.
2021-12-18 22:43:29 +01:00

6225 lines
210 KiB
Go

// 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
}