// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.17.3
// source: chat/v1/stream.proto

package chatv1

import (
	proto "github.com/golang/protobuf/proto"
	v1 "github.com/harmony-development/shibshib/gen/emote/v1"
	v12 "github.com/harmony-development/shibshib/gen/harmonytypes/v1"
	v11 "github.com/harmony-development/shibshib/gen/profile/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

// Request type for use in the `StreamEvents` endpoint.
// By default, this endpoint will subscribe to all events.
// Any guilds joined in the future will be added to the subscription as well.
// Use the UnsubscribeFromAll event for unsubscribing from all current subscriptions and disable the automatic guild subscriptions
type StreamEventsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Describes which event source to subscribe to.
	//
	// Types that are assignable to Request:
	//	*StreamEventsRequest_SubscribeToGuild_
	//	*StreamEventsRequest_SubscribeToActions_
	//	*StreamEventsRequest_SubscribeToHomeserverEvents_
	//	*StreamEventsRequest_UnsubscribeFromAll_
	Request isStreamEventsRequest_Request `protobuf_oneof:"request"`
}

func (x *StreamEventsRequest) Reset() {
	*x = StreamEventsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsRequest) ProtoMessage() {}

func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsRequest.ProtoReflect.Descriptor instead.
func (*StreamEventsRequest) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{0}
}

func (m *StreamEventsRequest) GetRequest() isStreamEventsRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *StreamEventsRequest) GetSubscribeToGuild() *StreamEventsRequest_SubscribeToGuild {
	if x, ok := x.GetRequest().(*StreamEventsRequest_SubscribeToGuild_); ok {
		return x.SubscribeToGuild
	}
	return nil
}

func (x *StreamEventsRequest) GetSubscribeToActions() *StreamEventsRequest_SubscribeToActions {
	if x, ok := x.GetRequest().(*StreamEventsRequest_SubscribeToActions_); ok {
		return x.SubscribeToActions
	}
	return nil
}

func (x *StreamEventsRequest) GetSubscribeToHomeserverEvents() *StreamEventsRequest_SubscribeToHomeserverEvents {
	if x, ok := x.GetRequest().(*StreamEventsRequest_SubscribeToHomeserverEvents_); ok {
		return x.SubscribeToHomeserverEvents
	}
	return nil
}

func (x *StreamEventsRequest) GetUnsubscribeFromAll() *StreamEventsRequest_UnsubscribeFromAll {
	if x, ok := x.GetRequest().(*StreamEventsRequest_UnsubscribeFromAll_); ok {
		return x.UnsubscribeFromAll
	}
	return nil
}

type isStreamEventsRequest_Request interface {
	isStreamEventsRequest_Request()
}

type StreamEventsRequest_SubscribeToGuild_ struct {
	// Subscribe to the guild event source.
	SubscribeToGuild *StreamEventsRequest_SubscribeToGuild `protobuf:"bytes,1,opt,name=subscribe_to_guild,json=subscribeToGuild,proto3,oneof"`
}

type StreamEventsRequest_SubscribeToActions_ struct {
	// Subscribe to the action event source.
	SubscribeToActions *StreamEventsRequest_SubscribeToActions `protobuf:"bytes,2,opt,name=subscribe_to_actions,json=subscribeToActions,proto3,oneof"`
}

type StreamEventsRequest_SubscribeToHomeserverEvents_ struct {
	// Subscribe to the homeserver event source.
	SubscribeToHomeserverEvents *StreamEventsRequest_SubscribeToHomeserverEvents `protobuf:"bytes,3,opt,name=subscribe_to_homeserver_events,json=subscribeToHomeserverEvents,proto3,oneof"`
}

type StreamEventsRequest_UnsubscribeFromAll_ struct {
	// Unsubscribe from all events.
	UnsubscribeFromAll *StreamEventsRequest_UnsubscribeFromAll `protobuf:"bytes,4,opt,name=unsubscribe_from_all,json=unsubscribeFromAll,proto3,oneof"`
}

func (*StreamEventsRequest_SubscribeToGuild_) isStreamEventsRequest_Request() {}

func (*StreamEventsRequest_SubscribeToActions_) isStreamEventsRequest_Request() {}

func (*StreamEventsRequest_SubscribeToHomeserverEvents_) isStreamEventsRequest_Request() {}

func (*StreamEventsRequest_UnsubscribeFromAll_) isStreamEventsRequest_Request() {}

// Used in the `StreamEvents` endpoint.
type StreamEventsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Possible events.
	//
	// Types that are assignable to Event:
	//	*StreamEventsResponse_Chat
	//	*StreamEventsResponse_Emote
	//	*StreamEventsResponse_Profile
	Event isStreamEventsResponse_Event `protobuf_oneof:"event"`
}

func (x *StreamEventsResponse) Reset() {
	*x = StreamEventsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsResponse) ProtoMessage() {}

func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsResponse.ProtoReflect.Descriptor instead.
func (*StreamEventsResponse) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{1}
}

func (m *StreamEventsResponse) GetEvent() isStreamEventsResponse_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (x *StreamEventsResponse) GetChat() *StreamEvent {
	if x, ok := x.GetEvent().(*StreamEventsResponse_Chat); ok {
		return x.Chat
	}
	return nil
}

func (x *StreamEventsResponse) GetEmote() *v1.StreamEvent {
	if x, ok := x.GetEvent().(*StreamEventsResponse_Emote); ok {
		return x.Emote
	}
	return nil
}

func (x *StreamEventsResponse) GetProfile() *v11.StreamEvent {
	if x, ok := x.GetEvent().(*StreamEventsResponse_Profile); ok {
		return x.Profile
	}
	return nil
}

type isStreamEventsResponse_Event interface {
	isStreamEventsResponse_Event()
}

type StreamEventsResponse_Chat struct {
	// A chat event.
	Chat *StreamEvent `protobuf:"bytes,1,opt,name=chat,proto3,oneof"`
}

type StreamEventsResponse_Emote struct {
	// A emote event.
	Emote *v1.StreamEvent `protobuf:"bytes,2,opt,name=emote,proto3,oneof"`
}

type StreamEventsResponse_Profile struct {
	// A profile event.
	Profile *v11.StreamEvent `protobuf:"bytes,3,opt,name=profile,proto3,oneof"`
}

func (*StreamEventsResponse_Chat) isStreamEventsResponse_Event() {}

func (*StreamEventsResponse_Emote) isStreamEventsResponse_Event() {}

func (*StreamEventsResponse_Profile) isStreamEventsResponse_Event() {}

// Describes an event.
type StreamEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Which event to send.
	//
	// Types that are assignable to Event:
	//	*StreamEvent_GuildAddedToList_
	//	*StreamEvent_GuildRemovedFromList_
	//	*StreamEvent_ActionPerformed_
	//	*StreamEvent_SentMessage
	//	*StreamEvent_EditedMessage
	//	*StreamEvent_DeletedMessage
	//	*StreamEvent_CreatedChannel
	//	*StreamEvent_EditedChannel
	//	*StreamEvent_DeletedChannel
	//	*StreamEvent_EditedGuild
	//	*StreamEvent_DeletedGuild
	//	*StreamEvent_JoinedMember
	//	*StreamEvent_LeftMember
	//	*StreamEvent_Typing_
	//	*StreamEvent_RoleCreated_
	//	*StreamEvent_RoleDeleted_
	//	*StreamEvent_RoleMoved_
	//	*StreamEvent_RoleUpdated_
	//	*StreamEvent_RolePermsUpdated
	//	*StreamEvent_UserRolesUpdated_
	//	*StreamEvent_PermissionUpdated_
	//	*StreamEvent_ChannelsReordered_
	//	*StreamEvent_EditedChannelPosition
	//	*StreamEvent_MessagePinned_
	//	*StreamEvent_MessageUnpinned_
	//	*StreamEvent_ReactionUpdated_
	//	*StreamEvent_OwnerAdded_
	//	*StreamEvent_OwnerRemoved_
	//	*StreamEvent_InviteReceived_
	//	*StreamEvent_InviteRejected_
	Event isStreamEvent_Event `protobuf_oneof:"event"`
}

func (x *StreamEvent) Reset() {
	*x = StreamEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent) ProtoMessage() {}

func (x *StreamEvent) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent.ProtoReflect.Descriptor instead.
func (*StreamEvent) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2}
}

func (m *StreamEvent) GetEvent() isStreamEvent_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (x *StreamEvent) GetGuildAddedToList() *StreamEvent_GuildAddedToList {
	if x, ok := x.GetEvent().(*StreamEvent_GuildAddedToList_); ok {
		return x.GuildAddedToList
	}
	return nil
}

func (x *StreamEvent) GetGuildRemovedFromList() *StreamEvent_GuildRemovedFromList {
	if x, ok := x.GetEvent().(*StreamEvent_GuildRemovedFromList_); ok {
		return x.GuildRemovedFromList
	}
	return nil
}

func (x *StreamEvent) GetActionPerformed() *StreamEvent_ActionPerformed {
	if x, ok := x.GetEvent().(*StreamEvent_ActionPerformed_); ok {
		return x.ActionPerformed
	}
	return nil
}

func (x *StreamEvent) GetSentMessage() *StreamEvent_MessageSent {
	if x, ok := x.GetEvent().(*StreamEvent_SentMessage); ok {
		return x.SentMessage
	}
	return nil
}

func (x *StreamEvent) GetEditedMessage() *StreamEvent_MessageUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_EditedMessage); ok {
		return x.EditedMessage
	}
	return nil
}

func (x *StreamEvent) GetDeletedMessage() *StreamEvent_MessageDeleted {
	if x, ok := x.GetEvent().(*StreamEvent_DeletedMessage); ok {
		return x.DeletedMessage
	}
	return nil
}

func (x *StreamEvent) GetCreatedChannel() *StreamEvent_ChannelCreated {
	if x, ok := x.GetEvent().(*StreamEvent_CreatedChannel); ok {
		return x.CreatedChannel
	}
	return nil
}

func (x *StreamEvent) GetEditedChannel() *StreamEvent_ChannelUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_EditedChannel); ok {
		return x.EditedChannel
	}
	return nil
}

func (x *StreamEvent) GetDeletedChannel() *StreamEvent_ChannelDeleted {
	if x, ok := x.GetEvent().(*StreamEvent_DeletedChannel); ok {
		return x.DeletedChannel
	}
	return nil
}

func (x *StreamEvent) GetEditedGuild() *StreamEvent_GuildUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_EditedGuild); ok {
		return x.EditedGuild
	}
	return nil
}

func (x *StreamEvent) GetDeletedGuild() *StreamEvent_GuildDeleted {
	if x, ok := x.GetEvent().(*StreamEvent_DeletedGuild); ok {
		return x.DeletedGuild
	}
	return nil
}

func (x *StreamEvent) GetJoinedMember() *StreamEvent_MemberJoined {
	if x, ok := x.GetEvent().(*StreamEvent_JoinedMember); ok {
		return x.JoinedMember
	}
	return nil
}

func (x *StreamEvent) GetLeftMember() *StreamEvent_MemberLeft {
	if x, ok := x.GetEvent().(*StreamEvent_LeftMember); ok {
		return x.LeftMember
	}
	return nil
}

func (x *StreamEvent) GetTyping() *StreamEvent_Typing {
	if x, ok := x.GetEvent().(*StreamEvent_Typing_); ok {
		return x.Typing
	}
	return nil
}

func (x *StreamEvent) GetRoleCreated() *StreamEvent_RoleCreated {
	if x, ok := x.GetEvent().(*StreamEvent_RoleCreated_); ok {
		return x.RoleCreated
	}
	return nil
}

func (x *StreamEvent) GetRoleDeleted() *StreamEvent_RoleDeleted {
	if x, ok := x.GetEvent().(*StreamEvent_RoleDeleted_); ok {
		return x.RoleDeleted
	}
	return nil
}

func (x *StreamEvent) GetRoleMoved() *StreamEvent_RoleMoved {
	if x, ok := x.GetEvent().(*StreamEvent_RoleMoved_); ok {
		return x.RoleMoved
	}
	return nil
}

func (x *StreamEvent) GetRoleUpdated() *StreamEvent_RoleUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_RoleUpdated_); ok {
		return x.RoleUpdated
	}
	return nil
}

func (x *StreamEvent) GetRolePermsUpdated() *StreamEvent_RolePermissionsUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_RolePermsUpdated); ok {
		return x.RolePermsUpdated
	}
	return nil
}

func (x *StreamEvent) GetUserRolesUpdated() *StreamEvent_UserRolesUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_UserRolesUpdated_); ok {
		return x.UserRolesUpdated
	}
	return nil
}

func (x *StreamEvent) GetPermissionUpdated() *StreamEvent_PermissionUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_PermissionUpdated_); ok {
		return x.PermissionUpdated
	}
	return nil
}

func (x *StreamEvent) GetChannelsReordered() *StreamEvent_ChannelsReordered {
	if x, ok := x.GetEvent().(*StreamEvent_ChannelsReordered_); ok {
		return x.ChannelsReordered
	}
	return nil
}

func (x *StreamEvent) GetEditedChannelPosition() *StreamEvent_ChannelPositionUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_EditedChannelPosition); ok {
		return x.EditedChannelPosition
	}
	return nil
}

func (x *StreamEvent) GetMessagePinned() *StreamEvent_MessagePinned {
	if x, ok := x.GetEvent().(*StreamEvent_MessagePinned_); ok {
		return x.MessagePinned
	}
	return nil
}

func (x *StreamEvent) GetMessageUnpinned() *StreamEvent_MessageUnpinned {
	if x, ok := x.GetEvent().(*StreamEvent_MessageUnpinned_); ok {
		return x.MessageUnpinned
	}
	return nil
}

func (x *StreamEvent) GetReactionUpdated() *StreamEvent_ReactionUpdated {
	if x, ok := x.GetEvent().(*StreamEvent_ReactionUpdated_); ok {
		return x.ReactionUpdated
	}
	return nil
}

func (x *StreamEvent) GetOwnerAdded() *StreamEvent_OwnerAdded {
	if x, ok := x.GetEvent().(*StreamEvent_OwnerAdded_); ok {
		return x.OwnerAdded
	}
	return nil
}

func (x *StreamEvent) GetOwnerRemoved() *StreamEvent_OwnerRemoved {
	if x, ok := x.GetEvent().(*StreamEvent_OwnerRemoved_); ok {
		return x.OwnerRemoved
	}
	return nil
}

func (x *StreamEvent) GetInviteReceived() *StreamEvent_InviteReceived {
	if x, ok := x.GetEvent().(*StreamEvent_InviteReceived_); ok {
		return x.InviteReceived
	}
	return nil
}

func (x *StreamEvent) GetInviteRejected() *StreamEvent_InviteRejected {
	if x, ok := x.GetEvent().(*StreamEvent_InviteRejected_); ok {
		return x.InviteRejected
	}
	return nil
}

type isStreamEvent_Event interface {
	isStreamEvent_Event()
}

type StreamEvent_GuildAddedToList_ struct {
	// Send the guild added to list event.
	GuildAddedToList *StreamEvent_GuildAddedToList `protobuf:"bytes,1,opt,name=guild_added_to_list,json=guildAddedToList,proto3,oneof"`
}

type StreamEvent_GuildRemovedFromList_ struct {
	// Send the guild removed from list event.
	GuildRemovedFromList *StreamEvent_GuildRemovedFromList `protobuf:"bytes,2,opt,name=guild_removed_from_list,json=guildRemovedFromList,proto3,oneof"`
}

type StreamEvent_ActionPerformed_ struct {
	// Send the action performed event.
	ActionPerformed *StreamEvent_ActionPerformed `protobuf:"bytes,3,opt,name=action_performed,json=actionPerformed,proto3,oneof"`
}

type StreamEvent_SentMessage struct {
	// Send the message sent event.
	SentMessage *StreamEvent_MessageSent `protobuf:"bytes,4,opt,name=sent_message,json=sentMessage,proto3,oneof"`
}

type StreamEvent_EditedMessage struct {
	// Send the message updated event.
	EditedMessage *StreamEvent_MessageUpdated `protobuf:"bytes,5,opt,name=edited_message,json=editedMessage,proto3,oneof"`
}

type StreamEvent_DeletedMessage struct {
	// Send the message deleted event.
	DeletedMessage *StreamEvent_MessageDeleted `protobuf:"bytes,6,opt,name=deleted_message,json=deletedMessage,proto3,oneof"`
}

type StreamEvent_CreatedChannel struct {
	// Send the channel created event.
	CreatedChannel *StreamEvent_ChannelCreated `protobuf:"bytes,7,opt,name=created_channel,json=createdChannel,proto3,oneof"`
}

type StreamEvent_EditedChannel struct {
	// Send the channel updated event.
	EditedChannel *StreamEvent_ChannelUpdated `protobuf:"bytes,8,opt,name=edited_channel,json=editedChannel,proto3,oneof"`
}

type StreamEvent_DeletedChannel struct {
	// Send the channel deleted event.
	DeletedChannel *StreamEvent_ChannelDeleted `protobuf:"bytes,9,opt,name=deleted_channel,json=deletedChannel,proto3,oneof"`
}

type StreamEvent_EditedGuild struct {
	// Send the guild updated event.
	EditedGuild *StreamEvent_GuildUpdated `protobuf:"bytes,10,opt,name=edited_guild,json=editedGuild,proto3,oneof"`
}

type StreamEvent_DeletedGuild struct {
	// Send the guild deleted event.
	DeletedGuild *StreamEvent_GuildDeleted `protobuf:"bytes,11,opt,name=deleted_guild,json=deletedGuild,proto3,oneof"`
}

type StreamEvent_JoinedMember struct {
	// Send the member joined event.
	JoinedMember *StreamEvent_MemberJoined `protobuf:"bytes,12,opt,name=joined_member,json=joinedMember,proto3,oneof"`
}

type StreamEvent_LeftMember struct {
	// Send the member left event.
	LeftMember *StreamEvent_MemberLeft `protobuf:"bytes,13,opt,name=left_member,json=leftMember,proto3,oneof"`
}

type StreamEvent_Typing_ struct {
	// Send the typing event.
	Typing *StreamEvent_Typing `protobuf:"bytes,14,opt,name=typing,proto3,oneof"`
}

type StreamEvent_RoleCreated_ struct {
	// Send the role created event.
	RoleCreated *StreamEvent_RoleCreated `protobuf:"bytes,15,opt,name=role_created,json=roleCreated,proto3,oneof"`
}

type StreamEvent_RoleDeleted_ struct {
	// Send the role deleted event.
	RoleDeleted *StreamEvent_RoleDeleted `protobuf:"bytes,16,opt,name=role_deleted,json=roleDeleted,proto3,oneof"`
}

type StreamEvent_RoleMoved_ struct {
	// Send the role moved event.
	RoleMoved *StreamEvent_RoleMoved `protobuf:"bytes,17,opt,name=role_moved,json=roleMoved,proto3,oneof"`
}

type StreamEvent_RoleUpdated_ struct {
	// Send the role updated event.
	RoleUpdated *StreamEvent_RoleUpdated `protobuf:"bytes,18,opt,name=role_updated,json=roleUpdated,proto3,oneof"`
}

type StreamEvent_RolePermsUpdated struct {
	// Send the role perms updated event.
	RolePermsUpdated *StreamEvent_RolePermissionsUpdated `protobuf:"bytes,19,opt,name=role_perms_updated,json=rolePermsUpdated,proto3,oneof"`
}

type StreamEvent_UserRolesUpdated_ struct {
	// Send the user roles updated event.
	UserRolesUpdated *StreamEvent_UserRolesUpdated `protobuf:"bytes,20,opt,name=user_roles_updated,json=userRolesUpdated,proto3,oneof"`
}

type StreamEvent_PermissionUpdated_ struct {
	// Send the permission updated event.
	PermissionUpdated *StreamEvent_PermissionUpdated `protobuf:"bytes,21,opt,name=permission_updated,json=permissionUpdated,proto3,oneof"`
}

type StreamEvent_ChannelsReordered_ struct {
	// The channels have been completely reordered.
	ChannelsReordered *StreamEvent_ChannelsReordered `protobuf:"bytes,22,opt,name=channels_reordered,json=channelsReordered,proto3,oneof"`
}

type StreamEvent_EditedChannelPosition struct {
	// Send the channel position updated event.
	EditedChannelPosition *StreamEvent_ChannelPositionUpdated `protobuf:"bytes,23,opt,name=edited_channel_position,json=editedChannelPosition,proto3,oneof"`
}

type StreamEvent_MessagePinned_ struct {
	// Send the message pinned event.
	MessagePinned *StreamEvent_MessagePinned `protobuf:"bytes,24,opt,name=message_pinned,json=messagePinned,proto3,oneof"`
}

type StreamEvent_MessageUnpinned_ struct {
	// Send the message unpinned event.
	MessageUnpinned *StreamEvent_MessageUnpinned `protobuf:"bytes,25,opt,name=message_unpinned,json=messageUnpinned,proto3,oneof"`
}

type StreamEvent_ReactionUpdated_ struct {
	// Send the reaction updated event.
	ReactionUpdated *StreamEvent_ReactionUpdated `protobuf:"bytes,26,opt,name=reaction_updated,json=reactionUpdated,proto3,oneof"`
}

type StreamEvent_OwnerAdded_ struct {
	// Send the owner added event.
	OwnerAdded *StreamEvent_OwnerAdded `protobuf:"bytes,27,opt,name=owner_added,json=ownerAdded,proto3,oneof"`
}

type StreamEvent_OwnerRemoved_ struct {
	// Send the owner removed event.
	OwnerRemoved *StreamEvent_OwnerRemoved `protobuf:"bytes,28,opt,name=owner_removed,json=ownerRemoved,proto3,oneof"`
}

type StreamEvent_InviteReceived_ struct {
	// Send the guild invite received event.
	InviteReceived *StreamEvent_InviteReceived `protobuf:"bytes,29,opt,name=invite_received,json=inviteReceived,proto3,oneof"`
}

type StreamEvent_InviteRejected_ struct {
	// Send the guild invite rejected event.
	InviteRejected *StreamEvent_InviteRejected `protobuf:"bytes,30,opt,name=invite_rejected,json=inviteRejected,proto3,oneof"`
}

func (*StreamEvent_GuildAddedToList_) isStreamEvent_Event() {}

func (*StreamEvent_GuildRemovedFromList_) isStreamEvent_Event() {}

func (*StreamEvent_ActionPerformed_) isStreamEvent_Event() {}

func (*StreamEvent_SentMessage) isStreamEvent_Event() {}

func (*StreamEvent_EditedMessage) isStreamEvent_Event() {}

func (*StreamEvent_DeletedMessage) isStreamEvent_Event() {}

func (*StreamEvent_CreatedChannel) isStreamEvent_Event() {}

func (*StreamEvent_EditedChannel) isStreamEvent_Event() {}

func (*StreamEvent_DeletedChannel) isStreamEvent_Event() {}

func (*StreamEvent_EditedGuild) isStreamEvent_Event() {}

func (*StreamEvent_DeletedGuild) isStreamEvent_Event() {}

func (*StreamEvent_JoinedMember) isStreamEvent_Event() {}

func (*StreamEvent_LeftMember) isStreamEvent_Event() {}

func (*StreamEvent_Typing_) isStreamEvent_Event() {}

func (*StreamEvent_RoleCreated_) isStreamEvent_Event() {}

func (*StreamEvent_RoleDeleted_) isStreamEvent_Event() {}

func (*StreamEvent_RoleMoved_) isStreamEvent_Event() {}

func (*StreamEvent_RoleUpdated_) isStreamEvent_Event() {}

func (*StreamEvent_RolePermsUpdated) isStreamEvent_Event() {}

func (*StreamEvent_UserRolesUpdated_) isStreamEvent_Event() {}

func (*StreamEvent_PermissionUpdated_) isStreamEvent_Event() {}

func (*StreamEvent_ChannelsReordered_) isStreamEvent_Event() {}

func (*StreamEvent_EditedChannelPosition) isStreamEvent_Event() {}

func (*StreamEvent_MessagePinned_) isStreamEvent_Event() {}

func (*StreamEvent_MessageUnpinned_) isStreamEvent_Event() {}

func (*StreamEvent_ReactionUpdated_) isStreamEvent_Event() {}

func (*StreamEvent_OwnerAdded_) isStreamEvent_Event() {}

func (*StreamEvent_OwnerRemoved_) isStreamEvent_Event() {}

func (*StreamEvent_InviteReceived_) isStreamEvent_Event() {}

func (*StreamEvent_InviteRejected_) isStreamEvent_Event() {}

// Event source for guilds' events.
type StreamEventsRequest_SubscribeToGuild struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the guild id to subscribe to
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
}

func (x *StreamEventsRequest_SubscribeToGuild) Reset() {
	*x = StreamEventsRequest_SubscribeToGuild{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsRequest_SubscribeToGuild) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsRequest_SubscribeToGuild) ProtoMessage() {}

func (x *StreamEventsRequest_SubscribeToGuild) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsRequest_SubscribeToGuild.ProtoReflect.Descriptor instead.
func (*StreamEventsRequest_SubscribeToGuild) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 0}
}

func (x *StreamEventsRequest_SubscribeToGuild) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

// Event source for actions' events.
type StreamEventsRequest_SubscribeToActions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *StreamEventsRequest_SubscribeToActions) Reset() {
	*x = StreamEventsRequest_SubscribeToActions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsRequest_SubscribeToActions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsRequest_SubscribeToActions) ProtoMessage() {}

func (x *StreamEventsRequest_SubscribeToActions) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsRequest_SubscribeToActions.ProtoReflect.Descriptor instead.
func (*StreamEventsRequest_SubscribeToActions) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 1}
}

// Event source for homeserver events.
type StreamEventsRequest_SubscribeToHomeserverEvents struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *StreamEventsRequest_SubscribeToHomeserverEvents) Reset() {
	*x = StreamEventsRequest_SubscribeToHomeserverEvents{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsRequest_SubscribeToHomeserverEvents) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsRequest_SubscribeToHomeserverEvents) ProtoMessage() {}

func (x *StreamEventsRequest_SubscribeToHomeserverEvents) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsRequest_SubscribeToHomeserverEvents.ProtoReflect.Descriptor instead.
func (*StreamEventsRequest_SubscribeToHomeserverEvents) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 2}
}

// Event to unsubscribe from all events.
type StreamEventsRequest_UnsubscribeFromAll struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *StreamEventsRequest_UnsubscribeFromAll) Reset() {
	*x = StreamEventsRequest_UnsubscribeFromAll{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEventsRequest_UnsubscribeFromAll) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEventsRequest_UnsubscribeFromAll) ProtoMessage() {}

func (x *StreamEventsRequest_UnsubscribeFromAll) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEventsRequest_UnsubscribeFromAll.ProtoReflect.Descriptor instead.
func (*StreamEventsRequest_UnsubscribeFromAll) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 3}
}

// Event sent when a new message is sent.
type StreamEvent_MessageSent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID that is sent by your client it can use to confirm that the message is sent.
	EchoId *uint64 `protobuf:"varint,1,opt,name=echo_id,json=echoId,proto3,oneof" json:"echo_id,omitempty"`
	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,2,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that was updated.
	MessageId uint64 `protobuf:"varint,4,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// The actual message.
	Message *Message `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *StreamEvent_MessageSent) Reset() {
	*x = StreamEvent_MessageSent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MessageSent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MessageSent) ProtoMessage() {}

func (x *StreamEvent_MessageSent) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MessageSent.ProtoReflect.Descriptor instead.
func (*StreamEvent_MessageSent) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 0}
}

func (x *StreamEvent_MessageSent) GetEchoId() uint64 {
	if x != nil && x.EchoId != nil {
		return *x.EchoId
	}
	return 0
}

func (x *StreamEvent_MessageSent) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MessageSent) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_MessageSent) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

func (x *StreamEvent_MessageSent) GetMessage() *Message {
	if x != nil {
		return x.Message
	}
	return nil
}

// Event sent when a message's text content is updated.
type StreamEvent_MessageUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that was updated.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// When this message was edited, in milliseconds since unix epoch
	EditedAt uint64 `protobuf:"varint,4,opt,name=edited_at,json=editedAt,proto3" json:"edited_at,omitempty"`
	// New message content.
	NewContent *FormattedText `protobuf:"bytes,5,opt,name=new_content,json=newContent,proto3" json:"new_content,omitempty"`
}

func (x *StreamEvent_MessageUpdated) Reset() {
	*x = StreamEvent_MessageUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MessageUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MessageUpdated) ProtoMessage() {}

func (x *StreamEvent_MessageUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MessageUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_MessageUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 1}
}

func (x *StreamEvent_MessageUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MessageUpdated) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_MessageUpdated) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

func (x *StreamEvent_MessageUpdated) GetEditedAt() uint64 {
	if x != nil {
		return x.EditedAt
	}
	return 0
}

func (x *StreamEvent_MessageUpdated) GetNewContent() *FormattedText {
	if x != nil {
		return x.NewContent
	}
	return nil
}

// Event sent when a message is deleted.
type StreamEvent_MessageDeleted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that was deleted.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
}

func (x *StreamEvent_MessageDeleted) Reset() {
	*x = StreamEvent_MessageDeleted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MessageDeleted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MessageDeleted) ProtoMessage() {}

func (x *StreamEvent_MessageDeleted) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MessageDeleted.ProtoReflect.Descriptor instead.
func (*StreamEvent_MessageDeleted) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 2}
}

func (x *StreamEvent_MessageDeleted) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MessageDeleted) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_MessageDeleted) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

// Event sent when a new channel is created.
type StreamEvent_ChannelCreated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Name of this channel.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The position in the channel list.
	Position *v12.ItemPosition `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
	// The kind of this channel.
	Kind ChannelKind `protobuf:"varint,5,opt,name=kind,proto3,enum=protocol.chat.v1.ChannelKind" json:"kind,omitempty"`
	// Metadata for this channel.
	Metadata *v12.Metadata `protobuf:"bytes,6,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"`
}

func (x *StreamEvent_ChannelCreated) Reset() {
	*x = StreamEvent_ChannelCreated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ChannelCreated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ChannelCreated) ProtoMessage() {}

func (x *StreamEvent_ChannelCreated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ChannelCreated.ProtoReflect.Descriptor instead.
func (*StreamEvent_ChannelCreated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 3}
}

func (x *StreamEvent_ChannelCreated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ChannelCreated) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_ChannelCreated) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *StreamEvent_ChannelCreated) GetPosition() *v12.ItemPosition {
	if x != nil {
		return x.Position
	}
	return nil
}

func (x *StreamEvent_ChannelCreated) GetKind() ChannelKind {
	if x != nil {
		return x.Kind
	}
	return ChannelKind_CHANNEL_KIND_TEXT_UNSPECIFIED
}

func (x *StreamEvent_ChannelCreated) GetMetadata() *v12.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// Event sent when a channel's information is changed.
type StreamEvent_ChannelUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel that was changed.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// The new name of the channel.
	NewName *string `protobuf:"bytes,3,opt,name=new_name,json=newName,proto3,oneof" json:"new_name,omitempty"`
	// The new metadata of the channel.
	NewMetadata *v12.Metadata `protobuf:"bytes,4,opt,name=new_metadata,json=newMetadata,proto3,oneof" json:"new_metadata,omitempty"`
}

func (x *StreamEvent_ChannelUpdated) Reset() {
	*x = StreamEvent_ChannelUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ChannelUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ChannelUpdated) ProtoMessage() {}

func (x *StreamEvent_ChannelUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ChannelUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_ChannelUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 4}
}

func (x *StreamEvent_ChannelUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ChannelUpdated) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_ChannelUpdated) GetNewName() string {
	if x != nil && x.NewName != nil {
		return *x.NewName
	}
	return ""
}

func (x *StreamEvent_ChannelUpdated) GetNewMetadata() *v12.Metadata {
	if x != nil {
		return x.NewMetadata
	}
	return nil
}

// Event sent when a channel's position in the channel list is changed.
type StreamEvent_ChannelPositionUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel that was changed.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// The new position of the channel.
	NewPosition *v12.ItemPosition `protobuf:"bytes,3,opt,name=new_position,json=newPosition,proto3,oneof" json:"new_position,omitempty"`
}

func (x *StreamEvent_ChannelPositionUpdated) Reset() {
	*x = StreamEvent_ChannelPositionUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ChannelPositionUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ChannelPositionUpdated) ProtoMessage() {}

func (x *StreamEvent_ChannelPositionUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ChannelPositionUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_ChannelPositionUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 5}
}

func (x *StreamEvent_ChannelPositionUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ChannelPositionUpdated) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_ChannelPositionUpdated) GetNewPosition() *v12.ItemPosition {
	if x != nil {
		return x.NewPosition
	}
	return nil
}

// Event sent when all channels have been reordered
type StreamEvent_ChannelsReordered struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// guild_id: the guild whose channels are being reordered
	GuildId uint64 `protobuf:"varint,2,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// channel_ids: the new order of channel IDs
	ChannelIds []uint64 `protobuf:"varint,1,rep,packed,name=channel_ids,json=channelIds,proto3" json:"channel_ids,omitempty"`
}

func (x *StreamEvent_ChannelsReordered) Reset() {
	*x = StreamEvent_ChannelsReordered{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ChannelsReordered) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ChannelsReordered) ProtoMessage() {}

func (x *StreamEvent_ChannelsReordered) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ChannelsReordered.ProtoReflect.Descriptor instead.
func (*StreamEvent_ChannelsReordered) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 6}
}

func (x *StreamEvent_ChannelsReordered) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ChannelsReordered) GetChannelIds() []uint64 {
	if x != nil {
		return x.ChannelIds
	}
	return nil
}

// Event sent when a channel is deleted.
type StreamEvent_ChannelDeleted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel that was deleted.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
}

func (x *StreamEvent_ChannelDeleted) Reset() {
	*x = StreamEvent_ChannelDeleted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ChannelDeleted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ChannelDeleted) ProtoMessage() {}

func (x *StreamEvent_ChannelDeleted) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ChannelDeleted.ProtoReflect.Descriptor instead.
func (*StreamEvent_ChannelDeleted) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 7}
}

func (x *StreamEvent_ChannelDeleted) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ChannelDeleted) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

// Event sent when a guild's information is changed.
type StreamEvent_GuildUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild that was changed.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// The new name of the guild.
	NewName *string `protobuf:"bytes,2,opt,name=new_name,json=newName,proto3,oneof" json:"new_name,omitempty"`
	// The new picture of the guild.
	NewPicture *string `protobuf:"bytes,3,opt,name=new_picture,json=newPicture,proto3,oneof" json:"new_picture,omitempty"`
	// The new metadata of the guild.
	NewMetadata *v12.Metadata `protobuf:"bytes,4,opt,name=new_metadata,json=newMetadata,proto3,oneof" json:"new_metadata,omitempty"`
}

func (x *StreamEvent_GuildUpdated) Reset() {
	*x = StreamEvent_GuildUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_GuildUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_GuildUpdated) ProtoMessage() {}

func (x *StreamEvent_GuildUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_GuildUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_GuildUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 8}
}

func (x *StreamEvent_GuildUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_GuildUpdated) GetNewName() string {
	if x != nil && x.NewName != nil {
		return *x.NewName
	}
	return ""
}

func (x *StreamEvent_GuildUpdated) GetNewPicture() string {
	if x != nil && x.NewPicture != nil {
		return *x.NewPicture
	}
	return ""
}

func (x *StreamEvent_GuildUpdated) GetNewMetadata() *v12.Metadata {
	if x != nil {
		return x.NewMetadata
	}
	return nil
}

// Event sent when a guild is deleted.
type StreamEvent_GuildDeleted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild that was deleted.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
}

func (x *StreamEvent_GuildDeleted) Reset() {
	*x = StreamEvent_GuildDeleted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_GuildDeleted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_GuildDeleted) ProtoMessage() {}

func (x *StreamEvent_GuildDeleted) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_GuildDeleted.ProtoReflect.Descriptor instead.
func (*StreamEvent_GuildDeleted) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 9}
}

func (x *StreamEvent_GuildDeleted) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

// Event sent a user joins to a guild.
type StreamEvent_MemberJoined struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Member ID of the member that joined the guild.
	MemberId uint64 `protobuf:"varint,1,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"`
	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,2,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
}

func (x *StreamEvent_MemberJoined) Reset() {
	*x = StreamEvent_MemberJoined{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MemberJoined) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MemberJoined) ProtoMessage() {}

func (x *StreamEvent_MemberJoined) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MemberJoined.ProtoReflect.Descriptor instead.
func (*StreamEvent_MemberJoined) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 10}
}

func (x *StreamEvent_MemberJoined) GetMemberId() uint64 {
	if x != nil {
		return x.MemberId
	}
	return 0
}

func (x *StreamEvent_MemberJoined) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

// Event sent when a member of a guild leaves said guild for whatever reason.
type StreamEvent_MemberLeft struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// User ID of the member that left the guild.
	MemberId uint64 `protobuf:"varint,1,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"`
	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,2,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Why this member left the guild.
	LeaveReason LeaveReason `protobuf:"varint,3,opt,name=leave_reason,json=leaveReason,proto3,enum=protocol.chat.v1.LeaveReason" json:"leave_reason,omitempty"`
}

func (x *StreamEvent_MemberLeft) Reset() {
	*x = StreamEvent_MemberLeft{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MemberLeft) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MemberLeft) ProtoMessage() {}

func (x *StreamEvent_MemberLeft) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MemberLeft.ProtoReflect.Descriptor instead.
func (*StreamEvent_MemberLeft) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 11}
}

func (x *StreamEvent_MemberLeft) GetMemberId() uint64 {
	if x != nil {
		return x.MemberId
	}
	return 0
}

func (x *StreamEvent_MemberLeft) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MemberLeft) GetLeaveReason() LeaveReason {
	if x != nil {
		return x.LeaveReason
	}
	return LeaveReason_LEAVE_REASON_WILLINGLY_UNSPECIFIED
}

// Event sent when you join a new guild.
type StreamEvent_GuildAddedToList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// The homeserver this guild is on.
	Homeserver string `protobuf:"bytes,2,opt,name=homeserver,proto3" json:"homeserver,omitempty"`
}

func (x *StreamEvent_GuildAddedToList) Reset() {
	*x = StreamEvent_GuildAddedToList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_GuildAddedToList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_GuildAddedToList) ProtoMessage() {}

func (x *StreamEvent_GuildAddedToList) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_GuildAddedToList.ProtoReflect.Descriptor instead.
func (*StreamEvent_GuildAddedToList) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 12}
}

func (x *StreamEvent_GuildAddedToList) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_GuildAddedToList) GetHomeserver() string {
	if x != nil {
		return x.Homeserver
	}
	return ""
}

// Event sent when you leave a guild.
type StreamEvent_GuildRemovedFromList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// The homeserver this guild is on.
	Homeserver string `protobuf:"bytes,2,opt,name=homeserver,proto3" json:"homeserver,omitempty"`
}

func (x *StreamEvent_GuildRemovedFromList) Reset() {
	*x = StreamEvent_GuildRemovedFromList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_GuildRemovedFromList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_GuildRemovedFromList) ProtoMessage() {}

func (x *StreamEvent_GuildRemovedFromList) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_GuildRemovedFromList.ProtoReflect.Descriptor instead.
func (*StreamEvent_GuildRemovedFromList) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 13}
}

func (x *StreamEvent_GuildRemovedFromList) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_GuildRemovedFromList) GetHomeserver() string {
	if x != nil {
		return x.Homeserver
	}
	return ""
}

// Event sent when an action is performed.
type StreamEvent_ActionPerformed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID where this event happened.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// User ID of the user that triggered the action
	UserId uint64 `protobuf:"varint,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// The action data payload
	Payload *ActionPayload `protobuf:"bytes,5,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *StreamEvent_ActionPerformed) Reset() {
	*x = StreamEvent_ActionPerformed{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ActionPerformed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ActionPerformed) ProtoMessage() {}

func (x *StreamEvent_ActionPerformed) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ActionPerformed.ProtoReflect.Descriptor instead.
func (*StreamEvent_ActionPerformed) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 14}
}

func (x *StreamEvent_ActionPerformed) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ActionPerformed) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_ActionPerformed) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

func (x *StreamEvent_ActionPerformed) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *StreamEvent_ActionPerformed) GetPayload() *ActionPayload {
	if x != nil {
		return x.Payload
	}
	return nil
}

// Event sent when a role's position in the role list is changed.
type StreamEvent_RoleMoved struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Role ID of the role that was moved.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// New position of the role.
	NewPosition *v12.ItemPosition `protobuf:"bytes,3,opt,name=new_position,json=newPosition,proto3" json:"new_position,omitempty"`
}

func (x *StreamEvent_RoleMoved) Reset() {
	*x = StreamEvent_RoleMoved{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_RoleMoved) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_RoleMoved) ProtoMessage() {}

func (x *StreamEvent_RoleMoved) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_RoleMoved.ProtoReflect.Descriptor instead.
func (*StreamEvent_RoleMoved) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 15}
}

func (x *StreamEvent_RoleMoved) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_RoleMoved) GetRoleId() uint64 {
	if x != nil {
		return x.RoleId
	}
	return 0
}

func (x *StreamEvent_RoleMoved) GetNewPosition() *v12.ItemPosition {
	if x != nil {
		return x.NewPosition
	}
	return nil
}

// Event sent when a role is deleted.
type StreamEvent_RoleDeleted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Role ID of the role that was deleted.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
}

func (x *StreamEvent_RoleDeleted) Reset() {
	*x = StreamEvent_RoleDeleted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_RoleDeleted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_RoleDeleted) ProtoMessage() {}

func (x *StreamEvent_RoleDeleted) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_RoleDeleted.ProtoReflect.Descriptor instead.
func (*StreamEvent_RoleDeleted) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 16}
}

func (x *StreamEvent_RoleDeleted) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_RoleDeleted) GetRoleId() uint64 {
	if x != nil {
		return x.RoleId
	}
	return 0
}

// Event sent when a role is created.
type StreamEvent_RoleCreated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Role ID of the role that was created.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// The name of the role.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The color of the role.
	Color int32 `protobuf:"varint,4,opt,name=color,proto3" json:"color,omitempty"`
	// The hoist status of the role.
	Hoist bool `protobuf:"varint,5,opt,name=hoist,proto3" json:"hoist,omitempty"`
	// The pingable status of the role.
	Pingable bool `protobuf:"varint,6,opt,name=pingable,proto3" json:"pingable,omitempty"`
}

func (x *StreamEvent_RoleCreated) Reset() {
	*x = StreamEvent_RoleCreated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_RoleCreated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_RoleCreated) ProtoMessage() {}

func (x *StreamEvent_RoleCreated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_RoleCreated.ProtoReflect.Descriptor instead.
func (*StreamEvent_RoleCreated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 17}
}

func (x *StreamEvent_RoleCreated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_RoleCreated) GetRoleId() uint64 {
	if x != nil {
		return x.RoleId
	}
	return 0
}

func (x *StreamEvent_RoleCreated) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *StreamEvent_RoleCreated) GetColor() int32 {
	if x != nil {
		return x.Color
	}
	return 0
}

func (x *StreamEvent_RoleCreated) GetHoist() bool {
	if x != nil {
		return x.Hoist
	}
	return false
}

func (x *StreamEvent_RoleCreated) GetPingable() bool {
	if x != nil {
		return x.Pingable
	}
	return false
}

// Event sent when a role's information is changed.
type StreamEvent_RoleUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Role ID of the role that was changed.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// The new name of the role.
	NewName *string `protobuf:"bytes,3,opt,name=new_name,json=newName,proto3,oneof" json:"new_name,omitempty"`
	// The new color of the role.
	NewColor *int32 `protobuf:"varint,4,opt,name=new_color,json=newColor,proto3,oneof" json:"new_color,omitempty"`
	// The new hoist status of the role.
	NewHoist *bool `protobuf:"varint,5,opt,name=new_hoist,json=newHoist,proto3,oneof" json:"new_hoist,omitempty"`
	// The new pingable status of the role.
	NewPingable *bool `protobuf:"varint,6,opt,name=new_pingable,json=newPingable,proto3,oneof" json:"new_pingable,omitempty"`
}

func (x *StreamEvent_RoleUpdated) Reset() {
	*x = StreamEvent_RoleUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_RoleUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_RoleUpdated) ProtoMessage() {}

func (x *StreamEvent_RoleUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_RoleUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_RoleUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 18}
}

func (x *StreamEvent_RoleUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_RoleUpdated) GetRoleId() uint64 {
	if x != nil {
		return x.RoleId
	}
	return 0
}

func (x *StreamEvent_RoleUpdated) GetNewName() string {
	if x != nil && x.NewName != nil {
		return *x.NewName
	}
	return ""
}

func (x *StreamEvent_RoleUpdated) GetNewColor() int32 {
	if x != nil && x.NewColor != nil {
		return *x.NewColor
	}
	return 0
}

func (x *StreamEvent_RoleUpdated) GetNewHoist() bool {
	if x != nil && x.NewHoist != nil {
		return *x.NewHoist
	}
	return false
}

func (x *StreamEvent_RoleUpdated) GetNewPingable() bool {
	if x != nil && x.NewPingable != nil {
		return *x.NewPingable
	}
	return false
}

// Event sent when a role's permissions are changed.
//
// This event will only be sent to users with the "guild.manage" permission.
type StreamEvent_RolePermissionsUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId *uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
	// Role ID of the role that had it's permissions changed.
	RoleId uint64 `protobuf:"varint,3,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// The new permissions.
	NewPerms []*Permission `protobuf:"bytes,4,rep,name=new_perms,json=newPerms,proto3" json:"new_perms,omitempty"`
}

func (x *StreamEvent_RolePermissionsUpdated) Reset() {
	*x = StreamEvent_RolePermissionsUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_RolePermissionsUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_RolePermissionsUpdated) ProtoMessage() {}

func (x *StreamEvent_RolePermissionsUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_RolePermissionsUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_RolePermissionsUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 19}
}

func (x *StreamEvent_RolePermissionsUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_RolePermissionsUpdated) GetChannelId() uint64 {
	if x != nil && x.ChannelId != nil {
		return *x.ChannelId
	}
	return 0
}

func (x *StreamEvent_RolePermissionsUpdated) GetRoleId() uint64 {
	if x != nil {
		return x.RoleId
	}
	return 0
}

func (x *StreamEvent_RolePermissionsUpdated) GetNewPerms() []*Permission {
	if x != nil {
		return x.NewPerms
	}
	return nil
}

// Event sent when a user's roles are changed.
type StreamEvent_UserRolesUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// User ID of the user that had it's roles changed.
	UserId uint64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// The new role IDs.
	NewRoleIds []uint64 `protobuf:"varint,3,rep,packed,name=new_role_ids,json=newRoleIds,proto3" json:"new_role_ids,omitempty"`
}

func (x *StreamEvent_UserRolesUpdated) Reset() {
	*x = StreamEvent_UserRolesUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_UserRolesUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_UserRolesUpdated) ProtoMessage() {}

func (x *StreamEvent_UserRolesUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_UserRolesUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_UserRolesUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 20}
}

func (x *StreamEvent_UserRolesUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_UserRolesUpdated) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *StreamEvent_UserRolesUpdated) GetNewRoleIds() []uint64 {
	if x != nil {
		return x.NewRoleIds
	}
	return nil
}

// Event sent when a user sends a typing notification in a guild channel.
type StreamEvent_Typing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// User ID of the user that sent the typing notification.
	UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,2,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId uint64 `protobuf:"varint,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
}

func (x *StreamEvent_Typing) Reset() {
	*x = StreamEvent_Typing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_Typing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_Typing) ProtoMessage() {}

func (x *StreamEvent_Typing) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_Typing.ProtoReflect.Descriptor instead.
func (*StreamEvent_Typing) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 21}
}

func (x *StreamEvent_Typing) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *StreamEvent_Typing) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_Typing) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

// Event sent when a permission is changed that matters to you.
//
// Servers should calculate which users to send this event to when a permission is set.
// It should only be sent if a user is subscribed to the guild the permission pertains to.
type StreamEvent_PermissionUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event happened.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event happened.
	ChannelId *uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
	// The permission node that was changed.
	Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
	// Whether you have the permission or not.
	Ok bool `protobuf:"varint,4,opt,name=ok,proto3" json:"ok,omitempty"`
}

func (x *StreamEvent_PermissionUpdated) Reset() {
	*x = StreamEvent_PermissionUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_PermissionUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_PermissionUpdated) ProtoMessage() {}

func (x *StreamEvent_PermissionUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_PermissionUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_PermissionUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 22}
}

func (x *StreamEvent_PermissionUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_PermissionUpdated) GetChannelId() uint64 {
	if x != nil && x.ChannelId != nil {
		return *x.ChannelId
	}
	return 0
}

func (x *StreamEvent_PermissionUpdated) GetQuery() string {
	if x != nil {
		return x.Query
	}
	return ""
}

func (x *StreamEvent_PermissionUpdated) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

// Sent when a message is pinned in a guild channel.
//
// Should only be sent to users who have the "message.view" permission for
// the guild channel where the message was pinned.
type StreamEvent_MessagePinned struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event occured.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event occured.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that was pinned.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
}

func (x *StreamEvent_MessagePinned) Reset() {
	*x = StreamEvent_MessagePinned{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MessagePinned) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MessagePinned) ProtoMessage() {}

func (x *StreamEvent_MessagePinned) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MessagePinned.ProtoReflect.Descriptor instead.
func (*StreamEvent_MessagePinned) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 23}
}

func (x *StreamEvent_MessagePinned) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MessagePinned) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_MessagePinned) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

// Sent when a message is unpinned in a guild channel.
//
// Should only be sent to users who have the "message.view" permission for
// the guild channel where the message was unpinned.
type StreamEvent_MessageUnpinned struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event occured.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event occured.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that was unpinned.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
}

func (x *StreamEvent_MessageUnpinned) Reset() {
	*x = StreamEvent_MessageUnpinned{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_MessageUnpinned) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_MessageUnpinned) ProtoMessage() {}

func (x *StreamEvent_MessageUnpinned) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_MessageUnpinned.ProtoReflect.Descriptor instead.
func (*StreamEvent_MessageUnpinned) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 24}
}

func (x *StreamEvent_MessageUnpinned) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_MessageUnpinned) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_MessageUnpinned) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

// Sent when a message's reaction is changed.
type StreamEvent_ReactionUpdated struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild where this event occured.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// Channel ID of the channel where this event occured.
	ChannelId uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Message ID of the message that had a reaction updated.
	MessageId uint64 `protobuf:"varint,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// The reaction.
	Reaction *Reaction `protobuf:"bytes,4,opt,name=reaction,proto3" json:"reaction,omitempty"`
}

func (x *StreamEvent_ReactionUpdated) Reset() {
	*x = StreamEvent_ReactionUpdated{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_ReactionUpdated) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_ReactionUpdated) ProtoMessage() {}

func (x *StreamEvent_ReactionUpdated) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_ReactionUpdated.ProtoReflect.Descriptor instead.
func (*StreamEvent_ReactionUpdated) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 25}
}

func (x *StreamEvent_ReactionUpdated) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_ReactionUpdated) GetChannelId() uint64 {
	if x != nil {
		return x.ChannelId
	}
	return 0
}

func (x *StreamEvent_ReactionUpdated) GetMessageId() uint64 {
	if x != nil {
		return x.MessageId
	}
	return 0
}

func (x *StreamEvent_ReactionUpdated) GetReaction() *Reaction {
	if x != nil {
		return x.Reaction
	}
	return nil
}

// Sent when there's a new owner.
type StreamEvent_OwnerAdded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// User ID of the new owner.
	UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}

func (x *StreamEvent_OwnerAdded) Reset() {
	*x = StreamEvent_OwnerAdded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_OwnerAdded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_OwnerAdded) ProtoMessage() {}

func (x *StreamEvent_OwnerAdded) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_OwnerAdded.ProtoReflect.Descriptor instead.
func (*StreamEvent_OwnerAdded) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 26}
}

func (x *StreamEvent_OwnerAdded) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

// Sent when an owner gives up their ownership.
type StreamEvent_OwnerRemoved struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// User ID of the user who is no longer owner.
	UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}

func (x *StreamEvent_OwnerRemoved) Reset() {
	*x = StreamEvent_OwnerRemoved{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_OwnerRemoved) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_OwnerRemoved) ProtoMessage() {}

func (x *StreamEvent_OwnerRemoved) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_OwnerRemoved.ProtoReflect.Descriptor instead.
func (*StreamEvent_OwnerRemoved) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 27}
}

func (x *StreamEvent_OwnerRemoved) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

// Sent when a guild invite is received.
type StreamEvent_InviteReceived struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID of the invite received.
	InviteId string `protobuf:"bytes,1,opt,name=invite_id,json=inviteId,proto3" json:"invite_id,omitempty"`
	// Server ID of the server the inviter is on.
	ServerId *string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3,oneof" json:"server_id,omitempty"`
	// User ID of the inviter.
	InviterId uint64 `protobuf:"varint,3,opt,name=inviter_id,json=inviterId,proto3" json:"inviter_id,omitempty"`
}

func (x *StreamEvent_InviteReceived) Reset() {
	*x = StreamEvent_InviteReceived{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_InviteReceived) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_InviteReceived) ProtoMessage() {}

func (x *StreamEvent_InviteReceived) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_InviteReceived.ProtoReflect.Descriptor instead.
func (*StreamEvent_InviteReceived) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 28}
}

func (x *StreamEvent_InviteReceived) GetInviteId() string {
	if x != nil {
		return x.InviteId
	}
	return ""
}

func (x *StreamEvent_InviteReceived) GetServerId() string {
	if x != nil && x.ServerId != nil {
		return *x.ServerId
	}
	return ""
}

func (x *StreamEvent_InviteReceived) GetInviterId() uint64 {
	if x != nil {
		return x.InviterId
	}
	return 0
}

// Sent when a guild invite is rejected by the invitee.
type StreamEvent_InviteRejected struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Guild ID of the guild that this occured for.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// ID of the invite rejected.
	InviteId string `protobuf:"bytes,2,opt,name=invite_id,json=inviteId,proto3" json:"invite_id,omitempty"`
	// User ID of the invitee.
	UserId uint64 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}

func (x *StreamEvent_InviteRejected) Reset() {
	*x = StreamEvent_InviteRejected{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_stream_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StreamEvent_InviteRejected) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamEvent_InviteRejected) ProtoMessage() {}

func (x *StreamEvent_InviteRejected) ProtoReflect() protoreflect.Message {
	mi := &file_chat_v1_stream_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 StreamEvent_InviteRejected.ProtoReflect.Descriptor instead.
func (*StreamEvent_InviteRejected) Descriptor() ([]byte, []int) {
	return file_chat_v1_stream_proto_rawDescGZIP(), []int{2, 29}
}

func (x *StreamEvent_InviteRejected) GetGuildId() uint64 {
	if x != nil {
		return x.GuildId
	}
	return 0
}

func (x *StreamEvent_InviteRejected) GetInviteId() string {
	if x != nil {
		return x.InviteId
	}
	return ""
}

func (x *StreamEvent_InviteRejected) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

var File_chat_v1_stream_proto protoreflect.FileDescriptor

var file_chat_v1_stream_proto_rawDesc = []byte{
	0x0a, 0x14, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
	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, 0x16, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x63,
	0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x68, 0x61,
	0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x76, 0x31,
	0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x70,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x04, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66,
	0x0a, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x67,
	0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x47, 0x75, 0x69,
	0x6c, 0x64, 0x48, 0x00, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54,
	0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x6c, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00,
	0x52, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x1e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f,
	0x48, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
	0x48, 0x00, 0x52, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x48,
	0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x6c, 0x0a, 0x14, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x66,
	0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x75, 0x6e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x1a, 0x2d, 0x0a,
	0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c,
	0x64, 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, 0x1a, 0x14, 0x0a, 0x12,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x1a, 0x1d, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54,
	0x6f, 0x48, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x73, 0x1a, 0x14, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x63,
	0x68, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74,
	0x12, 0x36, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48,
	0x00, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22,
	0xb2, 0x34, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
	0x5f, 0x0a, 0x13, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74,
	0x6f, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c,
	0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10,
	0x67, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x6b, 0x0a, 0x17, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f,
	0x6d, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5a, 0x0a,
	0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
	0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e,
	0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65,
	0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x64, 0x69,
	0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48,
	0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x12, 0x57, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74,
	0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x0f, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
	0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x12, 0x4f, 0x0a, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x75, 0x69,
	0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x47, 0x75,
	0x69, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x67,
	0x75, 0x69, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64,
	0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6a, 0x6f, 0x69,
	0x6e, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x65, 0x66,
	0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, 0x66, 0x74,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x69, 0x6e, 0x67,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06,
	0x74, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x64,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d,
	0x6f, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x6f,
	0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x64,
	0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x12, 0x64, 0x0a, 0x12, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
	0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x48, 0x00, 0x52, 0x10, 0x72, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72,
	0x6f, 0x6c, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x73, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x73, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x17, 0x65, 0x64,
	0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x48, 0x00, 0x52, 0x15, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48,
	0x00, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64,
	0x12, 0x5a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x69,
	0x6e, 0x6e, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x10,
	0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65,
	0x72, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e,
	0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65,
	0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x48,
	0x00, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x64, 0x12, 0x57, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 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, 0x1a, 0xc5, 0x01, 0x0a, 0x0b, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x63,
	0x68, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x65,
	0x63, 0x68, 0x6f, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c,
	0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 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, 0x04, 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, 0x05, 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, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f,
	0x69, 0x64, 0x1a, 0xc8, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x1b,
	0x0a, 0x09, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x6e,
	0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 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, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x69, 0x0a,
	0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 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, 0x1a, 0xa7, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 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, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a,
	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64,
	0x12, 0x43, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 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, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x1a, 0xd4, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 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,
	0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12,
	0x4a, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x04, 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, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x77,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f,
	0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77,
	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb3, 0x01, 0x0a, 0x16, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 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, 0x4e,
	0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 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,
	0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b,
	0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0f,
	0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a,
	0x4f, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12,
	0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x73,
	0x1a, 0x4a, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x64, 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, 0x1a, 0xe9, 0x01, 0x0a,
	0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x08, 0x6e, 0x65, 0x77, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65,
	0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f,
	0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52,
	0x0a, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a,
	0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04,
	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, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e,
	0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x77, 0x5f,
	0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x29, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c,
	0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 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, 0x1a, 0x46, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x69,
	0x6e, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x86, 0x01, 0x0a, 0x0a,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64,
	0x49, 0x64, 0x12, 0x40, 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76,
	0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x4d, 0x0a, 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64,
	0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 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, 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, 0x51, 0x0a, 0x14, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 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, 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, 0xbe, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 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, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07,
	0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07,
	0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x8a, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65,
	0x4d, 0x6f, 0x76, 0x65, 0x64, 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, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x77,
	0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x26, 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, 0x49, 0x74, 0x65, 0x6d, 0x50,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x41, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x64, 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, 0x17,
	0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x9d, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 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, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
	0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70,
	0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x87, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e,
	0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6e,
	0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01,
	0x52, 0x08, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a,
	0x09, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x48, 0x02, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x48, 0x6f, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12,
	0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x6e, 0x67,
	0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c,
	0x6f, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74,
	0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c,
	0x65, 0x1a, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x07, 0x72,
	0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f,
	0x6c, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x6d,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x42,
	0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a, 0x68,
	0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 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, 0x17, 0x0a,
	0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f,
	0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x65,
	0x77, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x1a, 0x5b, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x69,
	0x6e, 0x67, 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, 0x12, 0x19, 0x0a, 0x08, 0x67,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0x87, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b,
	0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a,
	0x68, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64,
	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, 0x1a, 0x6a, 0x0a, 0x0f, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 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, 0x1a, 0xa2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
	0x20, 0x01, 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, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x25, 0x0a, 0x0a, 0x4f, 0x77,
	0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 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, 0x27, 0x0a, 0x0c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x64, 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, 0x7c, 0x0a, 0x0e, 0x49, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x1a, 0x61, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 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, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65,
	0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 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_stream_proto_rawDescOnce sync.Once
	file_chat_v1_stream_proto_rawDescData = file_chat_v1_stream_proto_rawDesc
)

func file_chat_v1_stream_proto_rawDescGZIP() []byte {
	file_chat_v1_stream_proto_rawDescOnce.Do(func() {
		file_chat_v1_stream_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_v1_stream_proto_rawDescData)
	})
	return file_chat_v1_stream_proto_rawDescData
}

var file_chat_v1_stream_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
var file_chat_v1_stream_proto_goTypes = []interface{}{
	(*StreamEventsRequest)(nil),                             // 0: protocol.chat.v1.StreamEventsRequest
	(*StreamEventsResponse)(nil),                            // 1: protocol.chat.v1.StreamEventsResponse
	(*StreamEvent)(nil),                                     // 2: protocol.chat.v1.StreamEvent
	(*StreamEventsRequest_SubscribeToGuild)(nil),            // 3: protocol.chat.v1.StreamEventsRequest.SubscribeToGuild
	(*StreamEventsRequest_SubscribeToActions)(nil),          // 4: protocol.chat.v1.StreamEventsRequest.SubscribeToActions
	(*StreamEventsRequest_SubscribeToHomeserverEvents)(nil), // 5: protocol.chat.v1.StreamEventsRequest.SubscribeToHomeserverEvents
	(*StreamEventsRequest_UnsubscribeFromAll)(nil),          // 6: protocol.chat.v1.StreamEventsRequest.UnsubscribeFromAll
	(*StreamEvent_MessageSent)(nil),                         // 7: protocol.chat.v1.StreamEvent.MessageSent
	(*StreamEvent_MessageUpdated)(nil),                      // 8: protocol.chat.v1.StreamEvent.MessageUpdated
	(*StreamEvent_MessageDeleted)(nil),                      // 9: protocol.chat.v1.StreamEvent.MessageDeleted
	(*StreamEvent_ChannelCreated)(nil),                      // 10: protocol.chat.v1.StreamEvent.ChannelCreated
	(*StreamEvent_ChannelUpdated)(nil),                      // 11: protocol.chat.v1.StreamEvent.ChannelUpdated
	(*StreamEvent_ChannelPositionUpdated)(nil),              // 12: protocol.chat.v1.StreamEvent.ChannelPositionUpdated
	(*StreamEvent_ChannelsReordered)(nil),                   // 13: protocol.chat.v1.StreamEvent.ChannelsReordered
	(*StreamEvent_ChannelDeleted)(nil),                      // 14: protocol.chat.v1.StreamEvent.ChannelDeleted
	(*StreamEvent_GuildUpdated)(nil),                        // 15: protocol.chat.v1.StreamEvent.GuildUpdated
	(*StreamEvent_GuildDeleted)(nil),                        // 16: protocol.chat.v1.StreamEvent.GuildDeleted
	(*StreamEvent_MemberJoined)(nil),                        // 17: protocol.chat.v1.StreamEvent.MemberJoined
	(*StreamEvent_MemberLeft)(nil),                          // 18: protocol.chat.v1.StreamEvent.MemberLeft
	(*StreamEvent_GuildAddedToList)(nil),                    // 19: protocol.chat.v1.StreamEvent.GuildAddedToList
	(*StreamEvent_GuildRemovedFromList)(nil),                // 20: protocol.chat.v1.StreamEvent.GuildRemovedFromList
	(*StreamEvent_ActionPerformed)(nil),                     // 21: protocol.chat.v1.StreamEvent.ActionPerformed
	(*StreamEvent_RoleMoved)(nil),                           // 22: protocol.chat.v1.StreamEvent.RoleMoved
	(*StreamEvent_RoleDeleted)(nil),                         // 23: protocol.chat.v1.StreamEvent.RoleDeleted
	(*StreamEvent_RoleCreated)(nil),                         // 24: protocol.chat.v1.StreamEvent.RoleCreated
	(*StreamEvent_RoleUpdated)(nil),                         // 25: protocol.chat.v1.StreamEvent.RoleUpdated
	(*StreamEvent_RolePermissionsUpdated)(nil),              // 26: protocol.chat.v1.StreamEvent.RolePermissionsUpdated
	(*StreamEvent_UserRolesUpdated)(nil),                    // 27: protocol.chat.v1.StreamEvent.UserRolesUpdated
	(*StreamEvent_Typing)(nil),                              // 28: protocol.chat.v1.StreamEvent.Typing
	(*StreamEvent_PermissionUpdated)(nil),                   // 29: protocol.chat.v1.StreamEvent.PermissionUpdated
	(*StreamEvent_MessagePinned)(nil),                       // 30: protocol.chat.v1.StreamEvent.MessagePinned
	(*StreamEvent_MessageUnpinned)(nil),                     // 31: protocol.chat.v1.StreamEvent.MessageUnpinned
	(*StreamEvent_ReactionUpdated)(nil),                     // 32: protocol.chat.v1.StreamEvent.ReactionUpdated
	(*StreamEvent_OwnerAdded)(nil),                          // 33: protocol.chat.v1.StreamEvent.OwnerAdded
	(*StreamEvent_OwnerRemoved)(nil),                        // 34: protocol.chat.v1.StreamEvent.OwnerRemoved
	(*StreamEvent_InviteReceived)(nil),                      // 35: protocol.chat.v1.StreamEvent.InviteReceived
	(*StreamEvent_InviteRejected)(nil),                      // 36: protocol.chat.v1.StreamEvent.InviteRejected
	(*v1.StreamEvent)(nil),                                  // 37: protocol.emote.v1.StreamEvent
	(*v11.StreamEvent)(nil),                                 // 38: protocol.profile.v1.StreamEvent
	(*Message)(nil),                                         // 39: protocol.chat.v1.Message
	(*FormattedText)(nil),                                   // 40: protocol.chat.v1.FormattedText
	(*v12.ItemPosition)(nil),                                // 41: protocol.harmonytypes.v1.ItemPosition
	(ChannelKind)(0),                                        // 42: protocol.chat.v1.ChannelKind
	(*v12.Metadata)(nil),                                    // 43: protocol.harmonytypes.v1.Metadata
	(LeaveReason)(0),                                        // 44: protocol.chat.v1.LeaveReason
	(*ActionPayload)(nil),                                   // 45: protocol.chat.v1.ActionPayload
	(*Permission)(nil),                                      // 46: protocol.chat.v1.Permission
	(*Reaction)(nil),                                        // 47: protocol.chat.v1.Reaction
}
var file_chat_v1_stream_proto_depIdxs = []int32{
	3,  // 0: protocol.chat.v1.StreamEventsRequest.subscribe_to_guild:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToGuild
	4,  // 1: protocol.chat.v1.StreamEventsRequest.subscribe_to_actions:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToActions
	5,  // 2: protocol.chat.v1.StreamEventsRequest.subscribe_to_homeserver_events:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToHomeserverEvents
	6,  // 3: protocol.chat.v1.StreamEventsRequest.unsubscribe_from_all:type_name -> protocol.chat.v1.StreamEventsRequest.UnsubscribeFromAll
	2,  // 4: protocol.chat.v1.StreamEventsResponse.chat:type_name -> protocol.chat.v1.StreamEvent
	37, // 5: protocol.chat.v1.StreamEventsResponse.emote:type_name -> protocol.emote.v1.StreamEvent
	38, // 6: protocol.chat.v1.StreamEventsResponse.profile:type_name -> protocol.profile.v1.StreamEvent
	19, // 7: protocol.chat.v1.StreamEvent.guild_added_to_list:type_name -> protocol.chat.v1.StreamEvent.GuildAddedToList
	20, // 8: protocol.chat.v1.StreamEvent.guild_removed_from_list:type_name -> protocol.chat.v1.StreamEvent.GuildRemovedFromList
	21, // 9: protocol.chat.v1.StreamEvent.action_performed:type_name -> protocol.chat.v1.StreamEvent.ActionPerformed
	7,  // 10: protocol.chat.v1.StreamEvent.sent_message:type_name -> protocol.chat.v1.StreamEvent.MessageSent
	8,  // 11: protocol.chat.v1.StreamEvent.edited_message:type_name -> protocol.chat.v1.StreamEvent.MessageUpdated
	9,  // 12: protocol.chat.v1.StreamEvent.deleted_message:type_name -> protocol.chat.v1.StreamEvent.MessageDeleted
	10, // 13: protocol.chat.v1.StreamEvent.created_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelCreated
	11, // 14: protocol.chat.v1.StreamEvent.edited_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelUpdated
	14, // 15: protocol.chat.v1.StreamEvent.deleted_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelDeleted
	15, // 16: protocol.chat.v1.StreamEvent.edited_guild:type_name -> protocol.chat.v1.StreamEvent.GuildUpdated
	16, // 17: protocol.chat.v1.StreamEvent.deleted_guild:type_name -> protocol.chat.v1.StreamEvent.GuildDeleted
	17, // 18: protocol.chat.v1.StreamEvent.joined_member:type_name -> protocol.chat.v1.StreamEvent.MemberJoined
	18, // 19: protocol.chat.v1.StreamEvent.left_member:type_name -> protocol.chat.v1.StreamEvent.MemberLeft
	28, // 20: protocol.chat.v1.StreamEvent.typing:type_name -> protocol.chat.v1.StreamEvent.Typing
	24, // 21: protocol.chat.v1.StreamEvent.role_created:type_name -> protocol.chat.v1.StreamEvent.RoleCreated
	23, // 22: protocol.chat.v1.StreamEvent.role_deleted:type_name -> protocol.chat.v1.StreamEvent.RoleDeleted
	22, // 23: protocol.chat.v1.StreamEvent.role_moved:type_name -> protocol.chat.v1.StreamEvent.RoleMoved
	25, // 24: protocol.chat.v1.StreamEvent.role_updated:type_name -> protocol.chat.v1.StreamEvent.RoleUpdated
	26, // 25: protocol.chat.v1.StreamEvent.role_perms_updated:type_name -> protocol.chat.v1.StreamEvent.RolePermissionsUpdated
	27, // 26: protocol.chat.v1.StreamEvent.user_roles_updated:type_name -> protocol.chat.v1.StreamEvent.UserRolesUpdated
	29, // 27: protocol.chat.v1.StreamEvent.permission_updated:type_name -> protocol.chat.v1.StreamEvent.PermissionUpdated
	13, // 28: protocol.chat.v1.StreamEvent.channels_reordered:type_name -> protocol.chat.v1.StreamEvent.ChannelsReordered
	12, // 29: protocol.chat.v1.StreamEvent.edited_channel_position:type_name -> protocol.chat.v1.StreamEvent.ChannelPositionUpdated
	30, // 30: protocol.chat.v1.StreamEvent.message_pinned:type_name -> protocol.chat.v1.StreamEvent.MessagePinned
	31, // 31: protocol.chat.v1.StreamEvent.message_unpinned:type_name -> protocol.chat.v1.StreamEvent.MessageUnpinned
	32, // 32: protocol.chat.v1.StreamEvent.reaction_updated:type_name -> protocol.chat.v1.StreamEvent.ReactionUpdated
	33, // 33: protocol.chat.v1.StreamEvent.owner_added:type_name -> protocol.chat.v1.StreamEvent.OwnerAdded
	34, // 34: protocol.chat.v1.StreamEvent.owner_removed:type_name -> protocol.chat.v1.StreamEvent.OwnerRemoved
	35, // 35: protocol.chat.v1.StreamEvent.invite_received:type_name -> protocol.chat.v1.StreamEvent.InviteReceived
	36, // 36: protocol.chat.v1.StreamEvent.invite_rejected:type_name -> protocol.chat.v1.StreamEvent.InviteRejected
	39, // 37: protocol.chat.v1.StreamEvent.MessageSent.message:type_name -> protocol.chat.v1.Message
	40, // 38: protocol.chat.v1.StreamEvent.MessageUpdated.new_content:type_name -> protocol.chat.v1.FormattedText
	41, // 39: protocol.chat.v1.StreamEvent.ChannelCreated.position:type_name -> protocol.harmonytypes.v1.ItemPosition
	42, // 40: protocol.chat.v1.StreamEvent.ChannelCreated.kind:type_name -> protocol.chat.v1.ChannelKind
	43, // 41: protocol.chat.v1.StreamEvent.ChannelCreated.metadata:type_name -> protocol.harmonytypes.v1.Metadata
	43, // 42: protocol.chat.v1.StreamEvent.ChannelUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata
	41, // 43: protocol.chat.v1.StreamEvent.ChannelPositionUpdated.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition
	43, // 44: protocol.chat.v1.StreamEvent.GuildUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata
	44, // 45: protocol.chat.v1.StreamEvent.MemberLeft.leave_reason:type_name -> protocol.chat.v1.LeaveReason
	45, // 46: protocol.chat.v1.StreamEvent.ActionPerformed.payload:type_name -> protocol.chat.v1.ActionPayload
	41, // 47: protocol.chat.v1.StreamEvent.RoleMoved.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition
	46, // 48: protocol.chat.v1.StreamEvent.RolePermissionsUpdated.new_perms:type_name -> protocol.chat.v1.Permission
	47, // 49: protocol.chat.v1.StreamEvent.ReactionUpdated.reaction:type_name -> protocol.chat.v1.Reaction
	50, // [50:50] is the sub-list for method output_type
	50, // [50:50] is the sub-list for method input_type
	50, // [50:50] is the sub-list for extension type_name
	50, // [50:50] is the sub-list for extension extendee
	0,  // [0:50] is the sub-list for field type_name
}

func init() { file_chat_v1_stream_proto_init() }
func file_chat_v1_stream_proto_init() {
	if File_chat_v1_stream_proto != nil {
		return
	}
	file_chat_v1_channels_proto_init()
	file_chat_v1_guilds_proto_init()
	file_chat_v1_messages_proto_init()
	file_chat_v1_permissions_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_chat_v1_stream_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsRequest_SubscribeToGuild); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsRequest_SubscribeToActions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsRequest_SubscribeToHomeserverEvents); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEventsRequest_UnsubscribeFromAll); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MessageSent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MessageUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MessageDeleted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ChannelCreated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ChannelUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ChannelPositionUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ChannelsReordered); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ChannelDeleted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_GuildUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_GuildDeleted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MemberJoined); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MemberLeft); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_GuildAddedToList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_GuildRemovedFromList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ActionPerformed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_RoleMoved); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_RoleDeleted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_RoleCreated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_RoleUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_RolePermissionsUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_UserRolesUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_Typing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_PermissionUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MessagePinned); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_MessageUnpinned); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_ReactionUpdated); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_OwnerAdded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_OwnerRemoved); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_InviteReceived); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_stream_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamEvent_InviteRejected); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_chat_v1_stream_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*StreamEventsRequest_SubscribeToGuild_)(nil),
		(*StreamEventsRequest_SubscribeToActions_)(nil),
		(*StreamEventsRequest_SubscribeToHomeserverEvents_)(nil),
		(*StreamEventsRequest_UnsubscribeFromAll_)(nil),
	}
	file_chat_v1_stream_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*StreamEventsResponse_Chat)(nil),
		(*StreamEventsResponse_Emote)(nil),
		(*StreamEventsResponse_Profile)(nil),
	}
	file_chat_v1_stream_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*StreamEvent_GuildAddedToList_)(nil),
		(*StreamEvent_GuildRemovedFromList_)(nil),
		(*StreamEvent_ActionPerformed_)(nil),
		(*StreamEvent_SentMessage)(nil),
		(*StreamEvent_EditedMessage)(nil),
		(*StreamEvent_DeletedMessage)(nil),
		(*StreamEvent_CreatedChannel)(nil),
		(*StreamEvent_EditedChannel)(nil),
		(*StreamEvent_DeletedChannel)(nil),
		(*StreamEvent_EditedGuild)(nil),
		(*StreamEvent_DeletedGuild)(nil),
		(*StreamEvent_JoinedMember)(nil),
		(*StreamEvent_LeftMember)(nil),
		(*StreamEvent_Typing_)(nil),
		(*StreamEvent_RoleCreated_)(nil),
		(*StreamEvent_RoleDeleted_)(nil),
		(*StreamEvent_RoleMoved_)(nil),
		(*StreamEvent_RoleUpdated_)(nil),
		(*StreamEvent_RolePermsUpdated)(nil),
		(*StreamEvent_UserRolesUpdated_)(nil),
		(*StreamEvent_PermissionUpdated_)(nil),
		(*StreamEvent_ChannelsReordered_)(nil),
		(*StreamEvent_EditedChannelPosition)(nil),
		(*StreamEvent_MessagePinned_)(nil),
		(*StreamEvent_MessageUnpinned_)(nil),
		(*StreamEvent_ReactionUpdated_)(nil),
		(*StreamEvent_OwnerAdded_)(nil),
		(*StreamEvent_OwnerRemoved_)(nil),
		(*StreamEvent_InviteReceived_)(nil),
		(*StreamEvent_InviteRejected_)(nil),
	}
	file_chat_v1_stream_proto_msgTypes[7].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[10].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[11].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[12].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[15].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[25].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[26].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[29].OneofWrappers = []interface{}{}
	file_chat_v1_stream_proto_msgTypes[35].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_chat_v1_stream_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   37,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_chat_v1_stream_proto_goTypes,
		DependencyIndexes: file_chat_v1_stream_proto_depIdxs,
		MessageInfos:      file_chat_v1_stream_proto_msgTypes,
	}.Build()
	File_chat_v1_stream_proto = out.File
	file_chat_v1_stream_proto_rawDesc = nil
	file_chat_v1_stream_proto_goTypes = nil
	file_chat_v1_stream_proto_depIdxs = nil
}
