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

package chatv1

import (
	proto "github.com/golang/protobuf/proto"
	v1 "github.com/harmony-development/shibshib/gen/harmonytypes/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// Object representing a single permission node.
type Permission struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the permission matcher. (example: roles.manage)
	Matches string `protobuf:"bytes,1,opt,name=matches,proto3" json:"matches,omitempty"`
	// whether the permission is allowed or not.
	Ok bool `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"`
}

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

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

func (*Permission) ProtoMessage() {}

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

func (x *Permission) GetMatches() string {
	if x != nil {
		return x.Matches
	}
	return ""
}

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

// Object representing a role without the ID.
type Role struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the role name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// the role color.
	Color int32 `protobuf:"varint,2,opt,name=color,proto3" json:"color,omitempty"`
	// whether the role is hoisted or not.
	Hoist bool `protobuf:"varint,3,opt,name=hoist,proto3" json:"hoist,omitempty"`
	// whether the role is mentionable or not.
	Pingable bool `protobuf:"varint,4,opt,name=pingable,proto3" json:"pingable,omitempty"`
}

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

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

func (*Role) ProtoMessage() {}

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

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

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

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

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

// Object representing a role with it's ID.
//
// The role ID for the default role in a guild should always be 0.
type RoleWithId struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID of the role.
	RoleId uint64 `protobuf:"varint,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// The role data.
	Role *Role `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
}

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

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

func (*RoleWithId) ProtoMessage() {}

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

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

func (x *RoleWithId) GetRole() *Role {
	if x != nil {
		return x.Role
	}
	return nil
}

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

	// the guild ID to query permissions for
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the channel ID to query permissions for. If not set, it will query
	// permissions for the guild.
	ChannelId *uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
	// the user ID to query permissions for (if not provided, the current user is
	// assumed).
	As *uint64 `protobuf:"varint,4,opt,name=as,proto3,oneof" json:"as,omitempty"`
	// the permission node to check for.
	CheckFor string `protobuf:"bytes,3,opt,name=check_for,json=checkFor,proto3" json:"check_for,omitempty"`
}

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

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

func (*QueryHasPermissionRequest) ProtoMessage() {}

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

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

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

func (x *QueryHasPermissionRequest) GetAs() uint64 {
	if x != nil && x.As != nil {
		return *x.As
	}
	return 0
}

func (x *QueryHasPermissionRequest) GetCheckFor() string {
	if x != nil {
		return x.CheckFor
	}
	return ""
}

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

	// the permissions for the given node.
	Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
}

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

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

func (*QueryHasPermissionResponse) ProtoMessage() {}

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

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

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

	// the guild ID to set permissions for.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the channel ID to set permissions for. Only set if the role is for a
	// channel.
	ChannelId *uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
	// the role ID to set permissions for.
	RoleId uint64 `protobuf:"varint,3,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// the permission list to give.
	//
	// There is no "perms_to_take" because not given permissions are by
	// default not allowed.
	PermsToGive []*Permission `protobuf:"bytes,4,rep,name=perms_to_give,json=permsToGive,proto3" json:"perms_to_give,omitempty"`
}

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

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

func (*SetPermissionsRequest) ProtoMessage() {}

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

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

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

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

func (x *SetPermissionsRequest) GetPermsToGive() []*Permission {
	if x != nil {
		return x.PermsToGive
	}
	return nil
}

// Used in the `SetPermissions` endpoint.
type SetPermissionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*SetPermissionsResponse) ProtoMessage() {}

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

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

	// the guild ID to get permissions for.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the channel ID to get permissions for. Only applicable for roles in a
	// channel.
	ChannelId *uint64 `protobuf:"varint,2,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"`
	// the role ID to get permissions for.
	RoleId uint64 `protobuf:"varint,3,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
}

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

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

func (*GetPermissionsRequest) ProtoMessage() {}

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

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

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

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

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

	// the permissions list for the given role.
	Perms []*Permission `protobuf:"bytes,1,rep,name=perms,proto3" json:"perms,omitempty"`
}

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

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

func (*GetPermissionsResponse) ProtoMessage() {}

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

func (x *GetPermissionsResponse) GetPerms() []*Permission {
	if x != nil {
		return x.Perms
	}
	return nil
}

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

	// the guild ID to move the role in.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the role ID to move.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// the new position of the role.
	NewPosition *v1.ItemPosition `protobuf:"bytes,3,opt,name=new_position,json=newPosition,proto3" json:"new_position,omitempty"`
}

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

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

func (*MoveRoleRequest) ProtoMessage() {}

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

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

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

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

// Used in the `MoveRole` endpoint.
type MoveRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*MoveRoleResponse) ProtoMessage() {}

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

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

	// the guild ID to get roles for.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
}

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

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

func (*GetGuildRolesRequest) ProtoMessage() {}

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

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

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

	// the list of roles in the guild.
	Roles []*RoleWithId `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"`
}

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

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

func (*GetGuildRolesResponse) ProtoMessage() {}

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

func (x *GetGuildRolesResponse) GetRoles() []*RoleWithId {
	if x != nil {
		return x.Roles
	}
	return nil
}

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

	// the guild ID to add the role to.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the role name.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// the role color.
	Color int32 `protobuf:"varint,3,opt,name=color,proto3" json:"color,omitempty"`
	// whether the role is hoisted or not.
	Hoist bool `protobuf:"varint,4,opt,name=hoist,proto3" json:"hoist,omitempty"`
	// whether the role is mentionable or not.
	Pingable bool `protobuf:"varint,5,opt,name=pingable,proto3" json:"pingable,omitempty"`
}

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

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

func (*AddGuildRoleRequest) ProtoMessage() {}

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

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

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

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

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

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

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

	// the ID of the newly created role.
	RoleId uint64 `protobuf:"varint,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
}

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

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

func (*AddGuildRoleResponse) ProtoMessage() {}

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

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

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

	// the guild ID to delete the role from.
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the role ID to delete.
	RoleId uint64 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
}

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

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

func (*DeleteGuildRoleRequest) ProtoMessage() {}

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

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

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

// Used in the `DeleteGuildRole` endpoint.
type DeleteGuildRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DeleteGuildRoleResponse) ProtoMessage() {}

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

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

	// the ID of the guild where the role is located
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the ID of the role to modify
	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 *ModifyGuildRoleRequest) Reset() {
	*x = ModifyGuildRoleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chat_v1_permissions_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ModifyGuildRoleRequest) ProtoMessage() {}

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

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

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

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

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

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

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

// Used in the `ModifyGuildRole` endpoint.
type ModifyGuildRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*ModifyGuildRoleResponse) ProtoMessage() {}

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

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

	// the ID of the guild where the user is being managed
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the ID of the user to modify
	UserId uint64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// the IDs of the roles to add
	GiveRoleIds []uint64 `protobuf:"varint,3,rep,packed,name=give_role_ids,json=giveRoleIds,proto3" json:"give_role_ids,omitempty"`
	// the IDs of the roles to remove
	TakeRoleIds []uint64 `protobuf:"varint,4,rep,packed,name=take_role_ids,json=takeRoleIds,proto3" json:"take_role_ids,omitempty"`
}

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

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

func (*ManageUserRolesRequest) ProtoMessage() {}

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

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

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

func (x *ManageUserRolesRequest) GetGiveRoleIds() []uint64 {
	if x != nil {
		return x.GiveRoleIds
	}
	return nil
}

func (x *ManageUserRolesRequest) GetTakeRoleIds() []uint64 {
	if x != nil {
		return x.TakeRoleIds
	}
	return nil
}

// Used in the `ManageUserRoles` endpoint.
type ManageUserRolesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*ManageUserRolesResponse) ProtoMessage() {}

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

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

	// the ID of the guild where the user is located
	GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"`
	// the ID of the user to get roles for
	UserId uint64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}

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

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

func (*GetUserRolesRequest) ProtoMessage() {}

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

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

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

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

	// a list of IDs of the roles the user has
	Roles []uint64 `protobuf:"varint,1,rep,packed,name=roles,proto3" json:"roles,omitempty"`
}

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

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

func (*GetUserRolesResponse) ProtoMessage() {}

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

func (x *GetUserRolesResponse) GetRoles() []uint64 {
	if x != nil {
		return x.Roles
	}
	return nil
}

var File_chat_v1_permissions_proto protoreflect.FileDescriptor

var file_chat_v1_permissions_proto_rawDesc = []byte{
	0x0a, 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, 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, 0x22, 0x36, 0x0a, 0x0a, 0x50, 0x65,
	0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02,
	0x6f, 0x6b, 0x22, 0x62, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63,
	0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69,
	0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x69,
	0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x51, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x57, 0x69,
	0x74, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a,
	0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x19, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x48, 0x61, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64,
	0x49, 0x64, 0x12, 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, 0x13, 0x0a, 0x02, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x04, 0x48, 0x01, 0x52, 0x02, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x63,
	0x68, 0x65, 0x63, 0x6b, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x61, 0x73, 0x22, 0x2c,
	0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x61, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xc0, 0x01, 0x0a,
	0x15, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49,
	0x64, 0x12, 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, 0x40,
	0x0a, 0x0d, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x69, 0x76, 0x65, 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, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x54, 0x6f, 0x47, 0x69, 0x76, 0x65,
	0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22,
	0x18, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x15, 0x47, 0x65, 0x74,
	0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 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, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x47, 0x65, 0x74,
	0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68,
	0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x05, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x76, 0x65,
	0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67,
	0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 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, 0x22, 0x12, 0x0a, 0x10, 0x4d, 0x6f,
	0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31,
	0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49,
	0x64, 0x22, 0x4b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c,
	0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f,
	0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c,
	0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x8c,
	0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68,
	0x6f, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2f, 0x0a,
	0x14, 0x41, 0x64, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x4c,
	0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c,
	0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c,
	0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x64, 0x69,
	0x66, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 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, 0x22, 0x19, 0x0a, 0x17,
	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x16, 0x4d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 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, 0x22, 0x0a, 0x0d, 0x67, 0x69, 0x76, 0x65, 0x5f, 0x72,
	0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x67,
	0x69, 0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x61,
	0x6b, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
	0x04, 0x52, 0x0b, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x19,
	0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x0a, 0x13, 0x47, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x6c,
	0x65, 0x73, 0x42, 0xc6, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x50, 0x65, 0x72,
	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
	0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d,
	0x6f, 0x6e, 0x79, 0x2d, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f,
	0x73, 0x68, 0x69, 0x62, 0x73, 0x68, 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61,
	0x74, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x68, 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43,
	0x58, 0xaa, 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61,
	0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c,
	0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_chat_v1_permissions_proto_rawDescOnce sync.Once
	file_chat_v1_permissions_proto_rawDescData = file_chat_v1_permissions_proto_rawDesc
)

func file_chat_v1_permissions_proto_rawDescGZIP() []byte {
	file_chat_v1_permissions_proto_rawDescOnce.Do(func() {
		file_chat_v1_permissions_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_v1_permissions_proto_rawDescData)
	})
	return file_chat_v1_permissions_proto_rawDescData
}

var file_chat_v1_permissions_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_chat_v1_permissions_proto_goTypes = []interface{}{
	(*Permission)(nil),                 // 0: protocol.chat.v1.Permission
	(*Role)(nil),                       // 1: protocol.chat.v1.Role
	(*RoleWithId)(nil),                 // 2: protocol.chat.v1.RoleWithId
	(*QueryHasPermissionRequest)(nil),  // 3: protocol.chat.v1.QueryHasPermissionRequest
	(*QueryHasPermissionResponse)(nil), // 4: protocol.chat.v1.QueryHasPermissionResponse
	(*SetPermissionsRequest)(nil),      // 5: protocol.chat.v1.SetPermissionsRequest
	(*SetPermissionsResponse)(nil),     // 6: protocol.chat.v1.SetPermissionsResponse
	(*GetPermissionsRequest)(nil),      // 7: protocol.chat.v1.GetPermissionsRequest
	(*GetPermissionsResponse)(nil),     // 8: protocol.chat.v1.GetPermissionsResponse
	(*MoveRoleRequest)(nil),            // 9: protocol.chat.v1.MoveRoleRequest
	(*MoveRoleResponse)(nil),           // 10: protocol.chat.v1.MoveRoleResponse
	(*GetGuildRolesRequest)(nil),       // 11: protocol.chat.v1.GetGuildRolesRequest
	(*GetGuildRolesResponse)(nil),      // 12: protocol.chat.v1.GetGuildRolesResponse
	(*AddGuildRoleRequest)(nil),        // 13: protocol.chat.v1.AddGuildRoleRequest
	(*AddGuildRoleResponse)(nil),       // 14: protocol.chat.v1.AddGuildRoleResponse
	(*DeleteGuildRoleRequest)(nil),     // 15: protocol.chat.v1.DeleteGuildRoleRequest
	(*DeleteGuildRoleResponse)(nil),    // 16: protocol.chat.v1.DeleteGuildRoleResponse
	(*ModifyGuildRoleRequest)(nil),     // 17: protocol.chat.v1.ModifyGuildRoleRequest
	(*ModifyGuildRoleResponse)(nil),    // 18: protocol.chat.v1.ModifyGuildRoleResponse
	(*ManageUserRolesRequest)(nil),     // 19: protocol.chat.v1.ManageUserRolesRequest
	(*ManageUserRolesResponse)(nil),    // 20: protocol.chat.v1.ManageUserRolesResponse
	(*GetUserRolesRequest)(nil),        // 21: protocol.chat.v1.GetUserRolesRequest
	(*GetUserRolesResponse)(nil),       // 22: protocol.chat.v1.GetUserRolesResponse
	(*v1.ItemPosition)(nil),            // 23: protocol.harmonytypes.v1.ItemPosition
}
var file_chat_v1_permissions_proto_depIdxs = []int32{
	1,  // 0: protocol.chat.v1.RoleWithId.role:type_name -> protocol.chat.v1.Role
	0,  // 1: protocol.chat.v1.SetPermissionsRequest.perms_to_give:type_name -> protocol.chat.v1.Permission
	0,  // 2: protocol.chat.v1.GetPermissionsResponse.perms:type_name -> protocol.chat.v1.Permission
	23, // 3: protocol.chat.v1.MoveRoleRequest.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition
	2,  // 4: protocol.chat.v1.GetGuildRolesResponse.roles:type_name -> protocol.chat.v1.RoleWithId
	5,  // [5:5] is the sub-list for method output_type
	5,  // [5:5] is the sub-list for method input_type
	5,  // [5:5] is the sub-list for extension type_name
	5,  // [5:5] is the sub-list for extension extendee
	0,  // [0:5] is the sub-list for field type_name
}

func init() { file_chat_v1_permissions_proto_init() }
func file_chat_v1_permissions_proto_init() {
	if File_chat_v1_permissions_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_chat_v1_permissions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Permission); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Role); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoleWithId); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryHasPermissionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryHasPermissionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPermissionsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPermissionsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPermissionsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPermissionsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MoveRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MoveRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGuildRolesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGuildRolesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddGuildRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddGuildRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteGuildRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteGuildRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ModifyGuildRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ModifyGuildRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ManageUserRolesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ManageUserRolesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserRolesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chat_v1_permissions_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserRolesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_chat_v1_permissions_proto_msgTypes[3].OneofWrappers = []interface{}{}
	file_chat_v1_permissions_proto_msgTypes[5].OneofWrappers = []interface{}{}
	file_chat_v1_permissions_proto_msgTypes[7].OneofWrappers = []interface{}{}
	file_chat_v1_permissions_proto_msgTypes[17].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_chat_v1_permissions_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_chat_v1_permissions_proto_goTypes,
		DependencyIndexes: file_chat_v1_permissions_proto_depIdxs,
		MessageInfos:      file_chat_v1_permissions_proto_msgTypes,
	}.Build()
	File_chat_v1_permissions_proto = out.File
	file_chat_v1_permissions_proto_rawDesc = nil
	file_chat_v1_permissions_proto_goTypes = nil
	file_chat_v1_permissions_proto_depIdxs = nil
}