//
//Сервис реализует функционал управления пользователями

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        v4.23.1
// source: keyapis/user/v1/keyapis_user_user_v1.proto

package keyapis_user_v1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	_ "google.golang.org/genproto/googleapis/api/visibility"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/descriptorpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Справочник типов пользователей.
// # Тип: byte
type User_Type int32

const (
	// Значение не указано
	User_TYPE_UNKNOWN User_Type = 0
	// Владелец УК
	User_OWNER User_Type = 1
	// Сотрудник УК
	User_EMPLOYEE User_Type = 2
	// Мастер житель
	User_MASTER User_Type = 3
	// Подчиненный житель
	User_SLAVE User_Type = 4
	// Администратор
	User_ADMIN User_Type = 5
	// Сотрудники ГАП
	User_SELLER User_Type = 6
	// МРФ
	User_MRF User_Type = 7
	// ГРЗУК
	User_BACKOFFICE User_Type = 8
	// Сервис
	User_SERVICE User_Type = 9
	// Супер админ
	User_ROOT User_Type = 10
	// Сотрудник БТИ
	User_BTI User_Type = 11
	// Сотрудник 1 ЛТП
	User_LTP_FIRST User_Type = 12
	// Сотрудник ГАП
	User_EXTERNAL_SELLER User_Type = 13
	// Приложение
	User_APPLICATION User_Type = 14
	// Администратор точек продаж
	User_MANAGER User_Type = 15
	// Администратор устройств
	User_DEVICE_ADMIN User_Type = 16
)

// Enum value maps for User_Type.
var (
	User_Type_name = map[int32]string{
		0:  "TYPE_UNKNOWN",
		1:  "OWNER",
		2:  "EMPLOYEE",
		3:  "MASTER",
		4:  "SLAVE",
		5:  "ADMIN",
		6:  "SELLER",
		7:  "MRF",
		8:  "BACKOFFICE",
		9:  "SERVICE",
		10: "ROOT",
		11: "BTI",
		12: "LTP_FIRST",
		13: "EXTERNAL_SELLER",
		14: "APPLICATION",
		15: "MANAGER",
		16: "DEVICE_ADMIN",
	}
	User_Type_value = map[string]int32{
		"TYPE_UNKNOWN":    0,
		"OWNER":           1,
		"EMPLOYEE":        2,
		"MASTER":          3,
		"SLAVE":           4,
		"ADMIN":           5,
		"SELLER":          6,
		"MRF":             7,
		"BACKOFFICE":      8,
		"SERVICE":         9,
		"ROOT":            10,
		"BTI":             11,
		"LTP_FIRST":       12,
		"EXTERNAL_SELLER": 13,
		"APPLICATION":     14,
		"MANAGER":         15,
		"DEVICE_ADMIN":    16,
	}
)

func (x User_Type) Enum() *User_Type {
	p := new(User_Type)
	*p = x
	return p
}

func (x User_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (User_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[0].Descriptor()
}

func (User_Type) Type() protoreflect.EnumType {
	return &file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[0]
}

func (x User_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use User_Type.Descriptor instead.
func (User_Type) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{2, 0}
}

// Справочник типов статусов пользователей.
// # Тип: byte
type User_StatusType int32

const (
	// Значение не указано
	User_STATUS_TYPE_UNKNOWN User_StatusType = 0
	// Не активный пользователь
	User_NEW User_StatusType = 1
	// Демо пользователь
	User_DEMO User_StatusType = 2
	// Активный пользователь
	User_ACTIVE User_StatusType = 3
	// Архивный пользователь
	User_BLOCKED User_StatusType = 4
)

// Enum value maps for User_StatusType.
var (
	User_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "NEW",
		2: "DEMO",
		3: "ACTIVE",
		4: "BLOCKED",
	}
	User_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"NEW":                 1,
		"DEMO":                2,
		"ACTIVE":              3,
		"BLOCKED":             4,
	}
)

func (x User_StatusType) Enum() *User_StatusType {
	p := new(User_StatusType)
	*p = x
	return p
}

func (x User_StatusType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (User_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[1].Descriptor()
}

func (User_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[1]
}

func (x User_StatusType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use User_StatusType.Descriptor instead.
func (User_StatusType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{2, 1}
}

// Справочник типов значений сортировки.
// # Тип: byte
type UserPaging_OrderByType int32

const (
	// Значение не указано
	UserPaging_ORDER_BY_TYPE_UNKNOWN UserPaging_OrderByType = 0
	// По идентификатору
	UserPaging_ID UserPaging_OrderByType = 1
	// По времени создания
	UserPaging_CREATED_AT UserPaging_OrderByType = 2
	// По времени изменения
	UserPaging_CHANGED_AT UserPaging_OrderByType = 3
	// По электронной почте
	UserPaging_EMAIL UserPaging_OrderByType = 4
	// По рангу для поиска по тексту.
	// Применяется когда передано поле для поиска по тексту.
	// В случае если текстовое поле не передано, применяется значение по умолчанию
	UserPaging_RANK UserPaging_OrderByType = 5
	// По описанию (collate-agnostic ordering)
	UserPaging_DESCRIPTION UserPaging_OrderByType = 6
)

// Enum value maps for UserPaging_OrderByType.
var (
	UserPaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "ID",
		2: "CREATED_AT",
		3: "CHANGED_AT",
		4: "EMAIL",
		5: "RANK",
		6: "DESCRIPTION",
	}
	UserPaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"ID":                    1,
		"CREATED_AT":            2,
		"CHANGED_AT":            3,
		"EMAIL":                 4,
		"RANK":                  5,
		"DESCRIPTION":           6,
	}
)

func (x UserPaging_OrderByType) Enum() *UserPaging_OrderByType {
	p := new(UserPaging_OrderByType)
	*p = x
	return p
}

func (x UserPaging_OrderByType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UserPaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[2].Descriptor()
}

func (UserPaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[2]
}

func (x UserPaging_OrderByType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UserPaging_OrderByType.Descriptor instead.
func (UserPaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{17, 0}
}

// Справочник типов направлений сортировки.
// # Тип: byte
type UserPaging_DirectionType int32

const (
	// Значение не указано
	UserPaging_DIRECTION_TYPE_UNKNOWN UserPaging_DirectionType = 0
	// От большего к меньшему
	UserPaging_DESC UserPaging_DirectionType = 1
	// От меньшего к большему
	UserPaging_ASC UserPaging_DirectionType = 2
)

// Enum value maps for UserPaging_DirectionType.
var (
	UserPaging_DirectionType_name = map[int32]string{
		0: "DIRECTION_TYPE_UNKNOWN",
		1: "DESC",
		2: "ASC",
	}
	UserPaging_DirectionType_value = map[string]int32{
		"DIRECTION_TYPE_UNKNOWN": 0,
		"DESC":                   1,
		"ASC":                    2,
	}
)

func (x UserPaging_DirectionType) Enum() *UserPaging_DirectionType {
	p := new(UserPaging_DirectionType)
	*p = x
	return p
}

func (x UserPaging_DirectionType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UserPaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[3].Descriptor()
}

func (UserPaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes[3]
}

func (x UserPaging_DirectionType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UserPaging_DirectionType.Descriptor instead.
func (UserPaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{17, 1}
}

// Запрос удаления всех пользовательских сессий
type DeleteUserSessionsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор пользователя.
	// # Диапазон: 1..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*DeleteUserSessionsRequest) ProtoMessage() {}

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

func (x *DeleteUserSessionsRequest) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// Ответ на запрос удаления всех пользовательских сессий
type DeleteUserSessionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*DeleteUserSessionsResponse_Error_
	Type isDeleteUserSessionsResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*DeleteUserSessionsResponse) ProtoMessage() {}

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

func (m *DeleteUserSessionsResponse) GetType() isDeleteUserSessionsResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *DeleteUserSessionsResponse) GetError() *DeleteUserSessionsResponse_Error {
	if x, ok := x.GetType().(*DeleteUserSessionsResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isDeleteUserSessionsResponse_Type interface {
	isDeleteUserSessionsResponse_Type()
}

type DeleteUserSessionsResponse_Error_ struct {
	// Ошибка
	Error *DeleteUserSessionsResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

func (*DeleteUserSessionsResponse_Error_) isDeleteUserSessionsResponse_Type() {}

// Пользователь
type User struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Диапазон: 0..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Тип пользователя
	Type User_Type `protobuf:"varint,2,opt,name=type,proto3,enum=keyapis.user.v1.User_Type" json:"type,omitempty"`
	// Статус пользователя
	StatusType User_StatusType `protobuf:"varint,3,opt,name=status_type,json=statusType,proto3,enum=keyapis.user.v1.User_StatusType" json:"status_type,omitempty"`
	// Логин.
	// # Диапазон: 3..64
	Login *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=login,proto3" json:"login,omitempty"`
	// Электронная почта.
	// # Диапазон: 4..256
	Email *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
	// Номер телефона.
	// # Диапазон: 5..14
	PhoneNumber *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// Идентификатор компании.
	// # Диапазон: 1..2147483647
	CompanyId *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=company_id,json=companyId,proto3" json:"company_id,omitempty"`
	// Идентификатор МРФ
	MrfId *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=mrf_id,json=mrfId,proto3" json:"mrf_id,omitempty"`
	// Идентификатор РФ
	RfId *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=rf_id,json=rfId,proto3" json:"rf_id,omitempty"`
	// Дата создания.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Дата изменения.
	// # Тип: DateTime
	ChangedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=changed_at,json=changedAt,proto3" json:"changed_at,omitempty"`
	// Дата активации.
	// # Тип: DateTime
	ActivatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=activated_at,json=activatedAt,proto3" json:"activated_at,omitempty"`
	// Дата активации.
	// # Тип: DateTime
	BlockedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=blocked_at,json=blockedAt,proto3" json:"blocked_at,omitempty"`
	// Идентификатор создавшего пользователя.
	// Берется из токена.
	// # Диапазон: 1..2147483647
	CreatorUserId *wrapperspb.Int32Value `protobuf:"bytes,14,opt,name=creator_user_id,json=creatorUserId,proto3" json:"creator_user_id,omitempty"`
	// Идентификатор пользователя-владельца.
	// # Диапазон: 1..2147483647
	OwnerUserId *wrapperspb.Int32Value `protobuf:"bytes,15,opt,name=owner_user_id,json=ownerUserId,proto3" json:"owner_user_id,omitempty"`
	// Электронная почта для чеков.
	// # Диапазон: 4..256
	InvoiceEmail *wrapperspb.StringValue `protobuf:"bytes,16,opt,name=invoice_email,json=invoiceEmail,proto3" json:"invoice_email,omitempty"`
	// Идентификатор пользователя в Видеонаблюдении.
	// Вычисляется на стороне сервера при создании пользователя
	VcUserId *wrapperspb.Int32Value `protobuf:"bytes,17,opt,name=vc_user_id,json=vcUserId,proto3" json:"vc_user_id,omitempty"`
	// Описание
	Description *wrapperspb.StringValue `protobuf:"bytes,18,opt,name=description,proto3" json:"description,omitempty"`
	// Идентификатор пользователя в сервисе ustore.
	// Вычисляется на стороне сервера при создании пользователя
	UstoreUserId *wrapperspb.Int32Value `protobuf:"bytes,19,opt,name=ustore_user_id,json=ustoreUserId,proto3" json:"ustore_user_id,omitempty"`
	// Адрес окружения для внутренних пользователей
	EnvUrl *wrapperspb.StringValue `protobuf:"bytes,20,opt,name=env_url,json=envUrl,proto3" json:"env_url,omitempty"`
}

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

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

func (*User) ProtoMessage() {}

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

func (x *User) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *User) GetType() User_Type {
	if x != nil {
		return x.Type
	}
	return User_TYPE_UNKNOWN
}

func (x *User) GetStatusType() User_StatusType {
	if x != nil {
		return x.StatusType
	}
	return User_STATUS_TYPE_UNKNOWN
}

func (x *User) GetLogin() *wrapperspb.StringValue {
	if x != nil {
		return x.Login
	}
	return nil
}

func (x *User) GetEmail() *wrapperspb.StringValue {
	if x != nil {
		return x.Email
	}
	return nil
}

func (x *User) GetPhoneNumber() *wrapperspb.StringValue {
	if x != nil {
		return x.PhoneNumber
	}
	return nil
}

func (x *User) GetCompanyId() *wrapperspb.Int32Value {
	if x != nil {
		return x.CompanyId
	}
	return nil
}

func (x *User) GetMrfId() *wrapperspb.Int32Value {
	if x != nil {
		return x.MrfId
	}
	return nil
}

func (x *User) GetRfId() *wrapperspb.Int32Value {
	if x != nil {
		return x.RfId
	}
	return nil
}

func (x *User) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *User) GetChangedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ChangedAt
	}
	return nil
}

func (x *User) GetActivatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ActivatedAt
	}
	return nil
}

func (x *User) GetBlockedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.BlockedAt
	}
	return nil
}

func (x *User) GetCreatorUserId() *wrapperspb.Int32Value {
	if x != nil {
		return x.CreatorUserId
	}
	return nil
}

func (x *User) GetOwnerUserId() *wrapperspb.Int32Value {
	if x != nil {
		return x.OwnerUserId
	}
	return nil
}

func (x *User) GetInvoiceEmail() *wrapperspb.StringValue {
	if x != nil {
		return x.InvoiceEmail
	}
	return nil
}

func (x *User) GetVcUserId() *wrapperspb.Int32Value {
	if x != nil {
		return x.VcUserId
	}
	return nil
}

func (x *User) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *User) GetUstoreUserId() *wrapperspb.Int32Value {
	if x != nil {
		return x.UstoreUserId
	}
	return nil
}

func (x *User) GetEnvUrl() *wrapperspb.StringValue {
	if x != nil {
		return x.EnvUrl
	}
	return nil
}

// Идентификационный код пользователя
type UserCode struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификационный код.
	// Если поле не заполнено, генерируется автоматически.
	// # Диапазон: 10000..99999
	Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	// Идентификатор пользователя.
	// # Диапазон: 0..2147483647
	UserId int32 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Дата создания.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Идентификатор создателя кода
	CreatorUserId int32 `protobuf:"varint,4,opt,name=creator_user_id,json=creatorUserId,proto3" json:"creator_user_id,omitempty"`
	// Тип создателя кода
	CreatorUserType User_Type `protobuf:"varint,5,opt,name=creator_user_type,json=creatorUserType,proto3,enum=keyapis.user.v1.User_Type" json:"creator_user_type,omitempty"`
}

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

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

func (*UserCode) ProtoMessage() {}

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

func (x *UserCode) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

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

func (x *UserCode) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *UserCode) GetCreatorUserId() int32 {
	if x != nil {
		return x.CreatorUserId
	}
	return 0
}

func (x *UserCode) GetCreatorUserType() User_Type {
	if x != nil {
		return x.CreatorUserType
	}
	return User_TYPE_UNKNOWN
}

// Запрос получения пользователя
type GetUserRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetUserRequest) ProtoMessage() {}

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

func (x *GetUserRequest) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// Ответ на запрос получения пользователя
type GetUserResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetUserResponse_Data
	//	*GetUserResponse_Error_
	Type isGetUserResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetUserResponse) ProtoMessage() {}

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

func (m *GetUserResponse) GetType() isGetUserResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetUserResponse) GetData() *User {
	if x, ok := x.GetType().(*GetUserResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetUserResponse) GetError() *GetUserResponse_Error {
	if x, ok := x.GetType().(*GetUserResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetUserResponse_Type interface {
	isGetUserResponse_Type()
}

type GetUserResponse_Data struct {
	// Пользователь
	Data *User `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetUserResponse_Error_ struct {
	// Ошибка
	Error *GetUserResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetUserResponse_Data) isGetUserResponse_Type() {}

func (*GetUserResponse_Error_) isGetUserResponse_Type() {}

// Запрос на получение списка пользователей
type GetUserListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *UserFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// Вариант разбиения на страницы
	//
	// Types that are assignable to Pagination:
	//
	//	*GetUserListRequest_Paging
	Pagination isGetUserListRequest_Pagination `protobuf_oneof:"pagination"`
}

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

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

func (*GetUserListRequest) ProtoMessage() {}

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

func (x *GetUserListRequest) GetFilter() *UserFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetUserListRequest) GetPagination() isGetUserListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetUserListRequest) GetPaging() *UserPaging {
	if x, ok := x.GetPagination().(*GetUserListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetUserListRequest_Pagination interface {
	isGetUserListRequest_Pagination()
}

type GetUserListRequest_Paging struct {
	// Стандартный постраничный вывод
	Paging *UserPaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetUserListRequest_Paging) isGetUserListRequest_Pagination() {}

// Ответ на получение списка пользователей
type GetUserListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetUserListResponse_Data
	//	*GetUserListResponse_Error_
	Type isGetUserListResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetUserListResponse) ProtoMessage() {}

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

func (m *GetUserListResponse) GetType() isGetUserListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetUserListResponse) GetData() *User {
	if x, ok := x.GetType().(*GetUserListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetUserListResponse) GetError() *GetUserListResponse_Error {
	if x, ok := x.GetType().(*GetUserListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetUserListResponse_Type interface {
	isGetUserListResponse_Type()
}

type GetUserListResponse_Data struct {
	// Пользователь
	Data *User `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetUserListResponse_Error_ struct {
	// Ошибка
	Error *GetUserListResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetUserListResponse_Data) isGetUserListResponse_Type() {}

func (*GetUserListResponse_Error_) isGetUserListResponse_Type() {}

// Запрос получения количества пользователей
type GetUserCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *UserFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

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

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

func (*GetUserCountRequest) ProtoMessage() {}

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

func (x *GetUserCountRequest) GetFilter() *UserFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Ответ на запрос получения количества пользователей
type GetUserCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetUserCountResponse_Data
	//	*GetUserCountResponse_Error_
	Type isGetUserCountResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetUserCountResponse) ProtoMessage() {}

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

func (m *GetUserCountResponse) GetType() isGetUserCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetUserCountResponse) GetData() int32 {
	if x, ok := x.GetType().(*GetUserCountResponse_Data); ok {
		return x.Data
	}
	return 0
}

func (x *GetUserCountResponse) GetError() *GetUserCountResponse_Error {
	if x, ok := x.GetType().(*GetUserCountResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetUserCountResponse_Type interface {
	isGetUserCountResponse_Type()
}

type GetUserCountResponse_Data struct {
	// Всего пользователей
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

type GetUserCountResponse_Error_ struct {
	// Ошибка
	Error *GetUserCountResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetUserCountResponse_Data) isGetUserCountResponse_Type() {}

func (*GetUserCountResponse_Error_) isGetUserCountResponse_Type() {}

// Запрос удаления пользователя
type DeleteUserRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*DeleteUserRequest) ProtoMessage() {}

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

func (x *DeleteUserRequest) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// Ответ на запрос удаления пользователя
type DeleteUserResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*DeleteUserResponse_Error_
	Type isDeleteUserResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*DeleteUserResponse) ProtoMessage() {}

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

func (m *DeleteUserResponse) GetType() isDeleteUserResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *DeleteUserResponse) GetError() *DeleteUserResponse_Error {
	if x, ok := x.GetType().(*DeleteUserResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isDeleteUserResponse_Type interface {
	isDeleteUserResponse_Type()
}

type DeleteUserResponse_Error_ struct {
	// Ошибка
	Error *DeleteUserResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

func (*DeleteUserResponse_Error_) isDeleteUserResponse_Type() {}

// Запрос получения идентификационного кода пользователя
type GetUserCodeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Диапазон: 0..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetUserCodeRequest) ProtoMessage() {}

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

func (x *GetUserCodeRequest) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

// Ответ на запрос получения идентификационного кода пользователя
type GetUserCodeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetUserCodeResponse_Data
	//	*GetUserCodeResponse_Error_
	Type isGetUserCodeResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetUserCodeResponse) ProtoMessage() {}

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

func (m *GetUserCodeResponse) GetType() isGetUserCodeResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetUserCodeResponse) GetData() *UserCode {
	if x, ok := x.GetType().(*GetUserCodeResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetUserCodeResponse) GetError() *GetUserCodeResponse_Error {
	if x, ok := x.GetType().(*GetUserCodeResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetUserCodeResponse_Type interface {
	isGetUserCodeResponse_Type()
}

type GetUserCodeResponse_Data struct {
	// Идентификационный код
	Data *UserCode `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetUserCodeResponse_Error_ struct {
	// Ошибка
	Error *GetUserCodeResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetUserCodeResponse_Data) isGetUserCodeResponse_Type() {}

func (*GetUserCodeResponse_Error_) isGetUserCodeResponse_Type() {}

// Запрос создания идентификационного кода пользователя
type PostUserCodeCreateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификационный код пользователя
	UserCode *UserCode `protobuf:"bytes,1,opt,name=user_code,json=userCode,proto3" json:"user_code,omitempty"`
}

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

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

func (*PostUserCodeCreateRequest) ProtoMessage() {}

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

func (x *PostUserCodeCreateRequest) GetUserCode() *UserCode {
	if x != nil {
		return x.UserCode
	}
	return nil
}

// Ответ на запрос создания идентификационного кода пользователя
type PostUserCodeCreateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*PostUserCodeCreateResponse_Data
	//	*PostUserCodeCreateResponse_Error_
	Type isPostUserCodeCreateResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostUserCodeCreateResponse) ProtoMessage() {}

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

func (m *PostUserCodeCreateResponse) GetType() isPostUserCodeCreateResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostUserCodeCreateResponse) GetData() *UserCode {
	if x, ok := x.GetType().(*PostUserCodeCreateResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostUserCodeCreateResponse) GetError() *PostUserCodeCreateResponse_Error {
	if x, ok := x.GetType().(*PostUserCodeCreateResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostUserCodeCreateResponse_Type interface {
	isPostUserCodeCreateResponse_Type()
}

type PostUserCodeCreateResponse_Data struct {
	// Идентификационный код пользователя
	Data *UserCode `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type PostUserCodeCreateResponse_Error_ struct {
	// Ошибка
	Error *PostUserCodeCreateResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*PostUserCodeCreateResponse_Data) isPostUserCodeCreateResponse_Type() {}

func (*PostUserCodeCreateResponse_Error_) isPostUserCodeCreateResponse_Type() {}

// Фильтр по пользователям
type UserFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По идентификаторам компаний
	CompanyIds []int32 `protobuf:"varint,1,rep,packed,name=company_ids,json=companyIds,proto3" json:"company_ids,omitempty"`
	// По типам
	UserTypes []User_Type `protobuf:"varint,2,rep,packed,name=user_types,json=userTypes,proto3,enum=keyapis.user.v1.User_Type" json:"user_types,omitempty"`
	// По статусам
	UserStatusTypes []User_StatusType `protobuf:"varint,3,rep,packed,name=user_status_types,json=userStatusTypes,proto3,enum=keyapis.user.v1.User_StatusType" json:"user_status_types,omitempty"`
	// По электронной почте
	Emails []string `protobuf:"bytes,4,rep,name=emails,proto3" json:"emails,omitempty"`
	// По номеру телефона
	PhoneNumbers []string `protobuf:"bytes,5,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"`
	// По логину
	Logins []string `protobuf:"bytes,6,rep,name=logins,proto3" json:"logins,omitempty"`
	// Поиск по тексту.
	// Если значение не передано то поиск по нему не производится.
	// # Диапазон: 3..64.
	// # Поиск производится по полям:
	// # - Описание
	Text *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=text,proto3" json:"text,omitempty"`
	// Поиск по контактным данным пользователя (электронная почта или номер телефона).
	// Если значение не передано то поиск по нему не производится.
	// # Диапазон: 3..64.
	// # Поиск производится по полям:
	// # - Электронная почта;
	// # - Номер телефона
	Contacts *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=contacts,proto3" json:"contacts,omitempty"`
}

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

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

func (*UserFilter) ProtoMessage() {}

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

func (x *UserFilter) GetCompanyIds() []int32 {
	if x != nil {
		return x.CompanyIds
	}
	return nil
}

func (x *UserFilter) GetUserTypes() []User_Type {
	if x != nil {
		return x.UserTypes
	}
	return nil
}

func (x *UserFilter) GetUserStatusTypes() []User_StatusType {
	if x != nil {
		return x.UserStatusTypes
	}
	return nil
}

func (x *UserFilter) GetEmails() []string {
	if x != nil {
		return x.Emails
	}
	return nil
}

func (x *UserFilter) GetPhoneNumbers() []string {
	if x != nil {
		return x.PhoneNumbers
	}
	return nil
}

func (x *UserFilter) GetLogins() []string {
	if x != nil {
		return x.Logins
	}
	return nil
}

func (x *UserFilter) GetText() *wrapperspb.StringValue {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *UserFilter) GetContacts() *wrapperspb.StringValue {
	if x != nil {
		return x.Contacts
	}
	return nil
}

// Постраничный вывод
type UserPaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: CHANGED_AT
	OrderByType UserPaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.user.v1.UserPaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType UserPaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.user.v1.UserPaging_DirectionType" json:"direction_type,omitempty"`
	// Количество записей на страницу.
	// Если значение 0 (не передано), то будет взято значение по умолчанию.
	// # Диапазон: 0..100.
	// # По умолчанию: 20
	Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// Сдвиг.
	// # Диапазон: 0..2147483647
	Offset int32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

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

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

func (*UserPaging) ProtoMessage() {}

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

func (x *UserPaging) GetOrderByType() UserPaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return UserPaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *UserPaging) GetDirectionType() UserPaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return UserPaging_DIRECTION_TYPE_UNKNOWN
}

func (x *UserPaging) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *UserPaging) GetOffset() int32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

// Запрос на создание пользователя
type PostUserRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Пользователь
	Data *User `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*PostUserRequest) ProtoMessage() {}

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

func (x *PostUserRequest) GetData() *User {
	if x != nil {
		return x.Data
	}
	return nil
}

// Ответ на запрос на создание пользователя
type PostUserResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostUserResponse_Data
	//	*PostUserResponse_Error_
	Type isPostUserResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostUserResponse) ProtoMessage() {}

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

func (m *PostUserResponse) GetType() isPostUserResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostUserResponse) GetData() *User {
	if x, ok := x.GetType().(*PostUserResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostUserResponse) GetError() *PostUserResponse_Error {
	if x, ok := x.GetType().(*PostUserResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostUserResponse_Type interface {
	isPostUserResponse_Type()
}

type PostUserResponse_Data struct {
	// Пользователь
	Data *User `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type PostUserResponse_Error_ struct {
	// Ошибка
	Error *PostUserResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*PostUserResponse_Data) isPostUserResponse_Type() {}

func (*PostUserResponse_Error_) isPostUserResponse_Type() {}

// Ошибки валидации.
// Эти проверки выполняются до обращения в базу данных
type ValidationError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Путь к полю в формате наименования прото
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// Валидационное сообщение
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*ValidationError) ProtoMessage() {}

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

func (x *ValidationError) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ValidationError) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// Ошибка запроса
type DeleteUserSessionsResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*DeleteUserSessionsResponse_Error_Validation
	Reason isDeleteUserSessionsResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*DeleteUserSessionsResponse_Error) ProtoMessage() {}

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

func (m *DeleteUserSessionsResponse_Error) GetReason() isDeleteUserSessionsResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *DeleteUserSessionsResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*DeleteUserSessionsResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isDeleteUserSessionsResponse_Error_Reason interface {
	isDeleteUserSessionsResponse_Error_Reason()
}

type DeleteUserSessionsResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*DeleteUserSessionsResponse_Error_Validation) isDeleteUserSessionsResponse_Error_Reason() {}

// Ошибка сохранения.
// Эти проверки выполняются при работе с базой данных и сторонними сервисами
type User_SavingError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*User_SavingError_Conflict_
	//	*User_SavingError_UserTypeForbidden_
	//	*User_SavingError_UserStatusForbidden_
	//	*User_SavingError_MrfIdIsRequiredForUserType
	//	*User_SavingError_CreatorMustBeAdmin_
	//	*User_SavingError_RfIdDoesNotMatchMrfId_
	//	*User_SavingError_EmailIsAlreadyTaken_
	//	*User_SavingError_EntityNotFound_
	Reason isUser_SavingError_Reason `protobuf_oneof:"reason"`
}

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

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

func (*User_SavingError) ProtoMessage() {}

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

func (m *User_SavingError) GetReason() isUser_SavingError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *User_SavingError) GetConflict() *User_SavingError_Conflict {
	if x, ok := x.GetReason().(*User_SavingError_Conflict_); ok {
		return x.Conflict
	}
	return nil
}

func (x *User_SavingError) GetUserTypeForbidden() *User_SavingError_UserTypeForbidden {
	if x, ok := x.GetReason().(*User_SavingError_UserTypeForbidden_); ok {
		return x.UserTypeForbidden
	}
	return nil
}

func (x *User_SavingError) GetUserStatusForbidden() *User_SavingError_UserStatusForbidden {
	if x, ok := x.GetReason().(*User_SavingError_UserStatusForbidden_); ok {
		return x.UserStatusForbidden
	}
	return nil
}

func (x *User_SavingError) GetMrfIdIsRequiredForUserType() *User_SavingError_MrfIdRequiredForUserType {
	if x, ok := x.GetReason().(*User_SavingError_MrfIdIsRequiredForUserType); ok {
		return x.MrfIdIsRequiredForUserType
	}
	return nil
}

func (x *User_SavingError) GetCreatorMustBeAdmin() *User_SavingError_CreatorMustBeAdmin {
	if x, ok := x.GetReason().(*User_SavingError_CreatorMustBeAdmin_); ok {
		return x.CreatorMustBeAdmin
	}
	return nil
}

func (x *User_SavingError) GetRfIdDoesNotMatchMrfId() *User_SavingError_RfIdDoesNotMatchMrfId {
	if x, ok := x.GetReason().(*User_SavingError_RfIdDoesNotMatchMrfId_); ok {
		return x.RfIdDoesNotMatchMrfId
	}
	return nil
}

func (x *User_SavingError) GetEmailIsAlreadyTaken() *User_SavingError_EmailIsAlreadyTaken {
	if x, ok := x.GetReason().(*User_SavingError_EmailIsAlreadyTaken_); ok {
		return x.EmailIsAlreadyTaken
	}
	return nil
}

func (x *User_SavingError) GetEntityNotFound() *User_SavingError_EntityNotFound {
	if x, ok := x.GetReason().(*User_SavingError_EntityNotFound_); ok {
		return x.EntityNotFound
	}
	return nil
}

type isUser_SavingError_Reason interface {
	isUser_SavingError_Reason()
}

type User_SavingError_Conflict_ struct {
	// Конфликт версий
	Conflict *User_SavingError_Conflict `protobuf:"bytes,1,opt,name=conflict,proto3,oneof"`
}

type User_SavingError_UserTypeForbidden_ struct {
	// Нельзя удалять пользователя с данным типом
	UserTypeForbidden *User_SavingError_UserTypeForbidden `protobuf:"bytes,2,opt,name=user_type_forbidden,json=userTypeForbidden,proto3,oneof"`
}

type User_SavingError_UserStatusForbidden_ struct {
	// Нельзя удалять пользователя в текущем статусе
	UserStatusForbidden *User_SavingError_UserStatusForbidden `protobuf:"bytes,3,opt,name=user_status_forbidden,json=userStatusForbidden,proto3,oneof"`
}

type User_SavingError_MrfIdIsRequiredForUserType struct {
	// Идентификатор МРФ обязателен
	MrfIdIsRequiredForUserType *User_SavingError_MrfIdRequiredForUserType `protobuf:"bytes,4,opt,name=mrf_id_is_required_for_user_type,json=mrfIdIsRequiredForUserType,proto3,oneof"`
}

type User_SavingError_CreatorMustBeAdmin_ struct {
	// Создатель пользователя должен иметь роль Admin
	CreatorMustBeAdmin *User_SavingError_CreatorMustBeAdmin `protobuf:"bytes,5,opt,name=creator_must_be_admin,json=creatorMustBeAdmin,proto3,oneof"`
}

type User_SavingError_RfIdDoesNotMatchMrfId_ struct {
	// Идентификатор РФ не соответствует идентификатору МРФ
	RfIdDoesNotMatchMrfId *User_SavingError_RfIdDoesNotMatchMrfId `protobuf:"bytes,6,opt,name=rf_id_does_not_match_mrf_id,json=rfIdDoesNotMatchMrfId,proto3,oneof"`
}

type User_SavingError_EmailIsAlreadyTaken_ struct {
	// Email уже занят
	EmailIsAlreadyTaken *User_SavingError_EmailIsAlreadyTaken `protobuf:"bytes,7,opt,name=email_is_already_taken,json=emailIsAlreadyTaken,proto3,oneof"`
}

type User_SavingError_EntityNotFound_ struct {
	// Связанная с пользователем сущность не найдена
	EntityNotFound *User_SavingError_EntityNotFound `protobuf:"bytes,8,opt,name=entity_not_found,json=entityNotFound,proto3,oneof"`
}

func (*User_SavingError_Conflict_) isUser_SavingError_Reason() {}

func (*User_SavingError_UserTypeForbidden_) isUser_SavingError_Reason() {}

func (*User_SavingError_UserStatusForbidden_) isUser_SavingError_Reason() {}

func (*User_SavingError_MrfIdIsRequiredForUserType) isUser_SavingError_Reason() {}

func (*User_SavingError_CreatorMustBeAdmin_) isUser_SavingError_Reason() {}

func (*User_SavingError_RfIdDoesNotMatchMrfId_) isUser_SavingError_Reason() {}

func (*User_SavingError_EmailIsAlreadyTaken_) isUser_SavingError_Reason() {}

func (*User_SavingError_EntityNotFound_) isUser_SavingError_Reason() {}

// Конфликт версий.
// Причины:
// - В базе хранится другая версия строки, значения changed_at отличаются
type User_SavingError_Conflict struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_Conflict) ProtoMessage() {}

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

// Нельзя удалять пользователя с данным типом.
// Доступные типы:
// - Жилец (мастер)
type User_SavingError_UserTypeForbidden struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_UserTypeForbidden) ProtoMessage() {}

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

// Нельзя удалять пользователя в текущем статусе.
// В каких статусах можно удалить пользователя:
// - demo
type User_SavingError_UserStatusForbidden struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_UserStatusForbidden) ProtoMessage() {}

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

// Для данного типа пользователя идентификатор МРФ обязателен
type User_SavingError_MrfIdRequiredForUserType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_MrfIdRequiredForUserType) ProtoMessage() {}

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

// Создатель пользователя должен иметь роль Admin
type User_SavingError_CreatorMustBeAdmin struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_CreatorMustBeAdmin) ProtoMessage() {}

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

// Идентификатор РФ не соответствует идентификатору МРФ
type User_SavingError_RfIdDoesNotMatchMrfId struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_RfIdDoesNotMatchMrfId) ProtoMessage() {}

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

// Email уже занят
type User_SavingError_EmailIsAlreadyTaken struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*User_SavingError_EmailIsAlreadyTaken) ProtoMessage() {}

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

// Связанная с пользователем сущность не найдена.
// Например: компания по company_id, пользователь по owner_user_id
type User_SavingError_EntityNotFound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Поле
	Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
}

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

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

func (*User_SavingError_EntityNotFound) ProtoMessage() {}

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

func (x *User_SavingError_EntityNotFound) GetField() string {
	if x != nil {
		return x.Field
	}
	return ""
}

// Ошибка запроса получения пользователя
type GetUserResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetUserResponse_Error_Validation
	Reason isGetUserResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*GetUserResponse_Error) ProtoMessage() {}

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

func (m *GetUserResponse_Error) GetReason() isGetUserResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetUserResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetUserResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetUserResponse_Error_Reason interface {
	isGetUserResponse_Error_Reason()
}

type GetUserResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetUserResponse_Error_Validation) isGetUserResponse_Error_Reason() {}

// Ошибка запроса получения списка пользователей
type GetUserListResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetUserListResponse_Error_Validation
	Reason isGetUserListResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*GetUserListResponse_Error) ProtoMessage() {}

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

func (m *GetUserListResponse_Error) GetReason() isGetUserListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetUserListResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetUserListResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetUserListResponse_Error_Reason interface {
	isGetUserListResponse_Error_Reason()
}

type GetUserListResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetUserListResponse_Error_Validation) isGetUserListResponse_Error_Reason() {}

// Ошибка запроса получения количества пользователей
type GetUserCountResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetUserCountResponse_Error_Validation
	Reason isGetUserCountResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*GetUserCountResponse_Error) ProtoMessage() {}

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

func (m *GetUserCountResponse_Error) GetReason() isGetUserCountResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetUserCountResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetUserCountResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetUserCountResponse_Error_Reason interface {
	isGetUserCountResponse_Error_Reason()
}

type GetUserCountResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetUserCountResponse_Error_Validation) isGetUserCountResponse_Error_Reason() {}

// Ошибка запроса удаления пользователя
type DeleteUserResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*DeleteUserResponse_Error_Validation
	//	*DeleteUserResponse_Error_Saving
	Reason isDeleteUserResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*DeleteUserResponse_Error) ProtoMessage() {}

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

func (m *DeleteUserResponse_Error) GetReason() isDeleteUserResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *DeleteUserResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*DeleteUserResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

func (x *DeleteUserResponse_Error) GetSaving() *User_SavingError {
	if x, ok := x.GetReason().(*DeleteUserResponse_Error_Saving); ok {
		return x.Saving
	}
	return nil
}

type isDeleteUserResponse_Error_Reason interface {
	isDeleteUserResponse_Error_Reason()
}

type DeleteUserResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

type DeleteUserResponse_Error_Saving struct {
	// Ошибка сохранения
	Saving *User_SavingError `protobuf:"bytes,2,opt,name=saving,proto3,oneof"`
}

func (*DeleteUserResponse_Error_Validation) isDeleteUserResponse_Error_Reason() {}

func (*DeleteUserResponse_Error_Saving) isDeleteUserResponse_Error_Reason() {}

// Ошибка запроса получения идентификационного кода пользователя
type GetUserCodeResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetUserCodeResponse_Error_Validation
	//	*GetUserCodeResponse_Error_UserCodeNotFound_
	Reason isGetUserCodeResponse_Error_Reason `protobuf_oneof:"reason"`
}

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

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

func (*GetUserCodeResponse_Error) ProtoMessage() {}

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

func (m *GetUserCodeResponse_Error) GetReason() isGetUserCodeResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetUserCodeResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetUserCodeResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

func (x *GetUserCodeResponse_Error) GetUserCodeNotFound() *GetUserCodeResponse_Error_UserCodeNotFound {
	if x, ok := x.GetReason().(*GetUserCodeResponse_Error_UserCodeNotFound_); ok {
		return x.UserCodeNotFound
	}
	return nil
}

type isGetUserCodeResponse_Error_Reason interface {
	isGetUserCodeResponse_Error_Reason()
}

type GetUserCodeResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

type GetUserCodeResponse_Error_UserCodeNotFound_ struct {
	// У пользователя отсутствует идентификационный код
	UserCodeNotFound *GetUserCodeResponse_Error_UserCodeNotFound `protobuf:"bytes,2,opt,name=user_code_not_found,json=userCodeNotFound,proto3,oneof"`
}

func (*GetUserCodeResponse_Error_Validation) isGetUserCodeResponse_Error_Reason() {}

func (*GetUserCodeResponse_Error_UserCodeNotFound_) isGetUserCodeResponse_Error_Reason() {}

// У пользователя отсутствует идентификационный код
type GetUserCodeResponse_Error_UserCodeNotFound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*GetUserCodeResponse_Error_UserCodeNotFound) ProtoMessage() {}

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

// Ошибка запроса создания идентификационного кода пользователя
type PostUserCodeCreateResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostUserCodeCreateResponse_Error_Validation
	Reason isPostUserCodeCreateResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostUserCodeCreateResponse_Error) Reset() {
	*x = PostUserCodeCreateResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostUserCodeCreateResponse_Error) ProtoMessage() {}

func (x *PostUserCodeCreateResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostUserCodeCreateResponse_Error.ProtoReflect.Descriptor instead.
func (*PostUserCodeCreateResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{15, 0}
}

func (m *PostUserCodeCreateResponse_Error) GetReason() isPostUserCodeCreateResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostUserCodeCreateResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*PostUserCodeCreateResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isPostUserCodeCreateResponse_Error_Reason interface {
	isPostUserCodeCreateResponse_Error_Reason()
}

type PostUserCodeCreateResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*PostUserCodeCreateResponse_Error_Validation) isPostUserCodeCreateResponse_Error_Reason() {}

// Ошибка запроса сохранения пользователя
type PostUserResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostUserResponse_Error_Validation
	//	*PostUserResponse_Error_Saving
	Reason isPostUserResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostUserResponse_Error) Reset() {
	*x = PostUserResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostUserResponse_Error) ProtoMessage() {}

func (x *PostUserResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostUserResponse_Error.ProtoReflect.Descriptor instead.
func (*PostUserResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP(), []int{19, 0}
}

func (m *PostUserResponse_Error) GetReason() isPostUserResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostUserResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*PostUserResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

func (x *PostUserResponse_Error) GetSaving() *User_SavingError {
	if x, ok := x.GetReason().(*PostUserResponse_Error_Saving); ok {
		return x.Saving
	}
	return nil
}

type isPostUserResponse_Error_Reason interface {
	isPostUserResponse_Error_Reason()
}

type PostUserResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

type PostUserResponse_Error_Saving struct {
	// Ошибка сохранения
	Saving *User_SavingError `protobuf:"bytes,2,opt,name=saving,proto3,oneof"`
}

func (*PostUserResponse_Error_Validation) isPostUserResponse_Error_Reason() {}

func (*PostUserResponse_Error_Saving) isPostUserResponse_Error_Reason() {}

var File_keyapis_user_v1_keyapis_user_user_v1_proto protoreflect.FileDescriptor

var file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDesc = []byte{
	0x0a, 0x2a, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x76,
	0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61,
	0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
	0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x19,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc6,
	0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
	0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x55, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42,
	0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x99, 0x14, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a,
	0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69,
	0x6e, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
	0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65,
	0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
	0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74,
	0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79,
	0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x6d, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x05, 0x6d, 0x72, 0x66, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x04, 0x72, 0x66, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64,
	0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x62, 0x6c,
	0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x48, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x41, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x6d,
	0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3e, 0x0a, 0x0a, 0x76, 0x63, 0x5f, 0x75, 0x73, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33,
	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x76, 0x63, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0e, 0x75, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0c, 0x75, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a,
	0x07, 0x65, 0x6e, 0x76, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e,
	0x76, 0x55, 0x72, 0x6c, 0x1a, 0xaa, 0x08, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x12, 0x48, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61,
	0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69,
	0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x65,
	0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x62,
	0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e,
	0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x62,
	0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x6b, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75,
	0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69,
	0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x75,
	0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64,
	0x65, 0x6e, 0x12, 0x82, 0x01, 0x0a, 0x20, 0x6d, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x5f, 0x69, 0x73,
	0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x2e, 0x4d, 0x72, 0x66, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f,
	0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x72, 0x66,
	0x49, 0x64, 0x49, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x69, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x6f, 0x72, 0x5f, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61,
	0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f,
	0x72, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x12,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x65, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x12, 0x75, 0x0a, 0x1b, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x5f, 0x64, 0x6f, 0x65, 0x73,
	0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x72, 0x66, 0x5f, 0x69,
	0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53,
	0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x52, 0x66, 0x49, 0x64, 0x44,
	0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x72, 0x66, 0x49, 0x64,
	0x48, 0x00, 0x52, 0x15, 0x72, 0x66, 0x49, 0x64, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x4d, 0x72, 0x66, 0x49, 0x64, 0x12, 0x6c, 0x0a, 0x16, 0x65, 0x6d, 0x61,
	0x69, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x74, 0x61,
	0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x6d, 0x61,
	0x69, 0x6c, 0x49, 0x73, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x54, 0x61, 0x6b, 0x65, 0x6e,
	0x48, 0x00, 0x52, 0x13, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x73, 0x41, 0x6c, 0x72, 0x65, 0x61,
	0x64, 0x79, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x12, 0x5c, 0x0a, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74,
	0x79, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x30, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72,
	0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
	0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74,
	0x46, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x0a, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63,
	0x74, 0x1a, 0x13, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6f, 0x72,
	0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x1a, 0x15, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x1a, 0x1a, 0x0a,
	0x18, 0x4d, 0x72, 0x66, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f,
	0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x14, 0x0a, 0x12, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x6f, 0x72, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a,
	0x17, 0x0a, 0x15, 0x52, 0x66, 0x49, 0x64, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x4d, 0x72, 0x66, 0x49, 0x64, 0x1a, 0x15, 0x0a, 0x13, 0x45, 0x6d, 0x61, 0x69,
	0x6c, 0x49, 0x73, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x1a,
	0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x22, 0xec, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05,
	0x4f, 0x57, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4d, 0x50, 0x4c, 0x4f,
	0x59, 0x45, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10,
	0x03, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4c, 0x41, 0x56, 0x45, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05,
	0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x4c, 0x4c, 0x45,
	0x52, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x52, 0x46, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a,
	0x42, 0x41, 0x43, 0x4b, 0x4f, 0x46, 0x46, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07,
	0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x4f, 0x4f,
	0x54, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x49, 0x10, 0x0b, 0x12, 0x0d, 0x0a, 0x09,
	0x4c, 0x54, 0x50, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x45,
	0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x0d,
	0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10,
	0x0e, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x10, 0x0f, 0x12, 0x10,
	0x0a, 0x0c, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x10,
	0x22, 0x51, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17,
	0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x01,
	0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x4d, 0x4f, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43,
	0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45,
	0x44, 0x10, 0x04, 0x22, 0xf6, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x4b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0e,
	0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x02, 0x69, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x1a, 0x55, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a,
	0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
	0x35, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06,
	0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe5, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x55, 0x0a,
	0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x13,
	0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48,
	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x55, 0x0a, 0x05,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x28, 0x0a, 0x11, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a,
	0x92, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
	0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a,
	0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x48, 0x00, 0x52, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x12,
	0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x42, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x1a, 0xd7, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42,
	0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65,
	0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f,
	0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10,
	0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64,
	0x1a, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x74, 0x46,
	0x6f, 0x75, 0x6e, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65,
	0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x49, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x31, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x55, 0x0a, 0x05, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf7, 0x02, 0x0a, 0x0a, 0x55,
	0x73, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d,
	0x70, 0x61, 0x6e, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a,
	0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72,
	0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
	0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79,
	0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70,
	0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x06, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x73, 0x22, 0x91, 0x03, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67,
	0x69, 0x6e, 0x67, 0x12, 0x4b, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x50, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50,
	0x61, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
	0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
	0x22, 0x76, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x19, 0x0a, 0x15, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x44,
	0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54,
	0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x5f, 0x41, 0x54,
	0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x08, 0x0a,
	0x04, 0x52, 0x41, 0x4e, 0x4b, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x53, 0x43, 0x52,
	0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0x3e, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x49, 0x52,
	0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x12,
	0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x02, 0x22, 0x41, 0x0a, 0x0f, 0x50, 0x6f, 0x73, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x02, 0x0a, 0x10,
	0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x92,
	0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06,
	0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
	0x00, 0x52, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x56,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17,
	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x8d, 0x08, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x12, 0x1f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65,
	0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x75,
	0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
	0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x01,
	0x12, 0x7c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x75,
	0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f,
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72,
	0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f,
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72,
	0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7d,
	0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65,
	0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d,
	0x12, 0x1b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75,
	0x73, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x97, 0x01,
	0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75,
	0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65,
	0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73,
	0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16,
	0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
	0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x8c, 0x01, 0x0a, 0x12, 0x72, 0x75, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x4b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x74,
	0x6f, 0x48, 0x03, 0x50, 0x00, 0x5a, 0x10, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x76, 0x31, 0xd8, 0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x0d,
	0x4b, 0x45, 0x59, 0x41, 0x50, 0x49, 0x53, 0x55, 0x53, 0x45, 0x52, 0x56, 0x31, 0xaa, 0x02, 0x0f,
	0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca,
	0x02, 0x0f, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x55, 0x73, 0x65, 0x72, 0x5c, 0x56,
	0x31, 0xea, 0x02, 0x11, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x55, 0x73, 0x65,
	0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescOnce sync.Once
	file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescData = file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDesc
)

func file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescGZIP() []byte {
	file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescData)
	})
	return file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDescData
}

var file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
var file_keyapis_user_v1_keyapis_user_user_v1_proto_goTypes = []interface{}{
	(User_Type)(0),                                     // 0: keyapis.user.v1.User.Type
	(User_StatusType)(0),                               // 1: keyapis.user.v1.User.StatusType
	(UserPaging_OrderByType)(0),                        // 2: keyapis.user.v1.UserPaging.OrderByType
	(UserPaging_DirectionType)(0),                      // 3: keyapis.user.v1.UserPaging.DirectionType
	(*DeleteUserSessionsRequest)(nil),                  // 4: keyapis.user.v1.DeleteUserSessionsRequest
	(*DeleteUserSessionsResponse)(nil),                 // 5: keyapis.user.v1.DeleteUserSessionsResponse
	(*User)(nil),                                       // 6: keyapis.user.v1.User
	(*UserCode)(nil),                                   // 7: keyapis.user.v1.UserCode
	(*GetUserRequest)(nil),                             // 8: keyapis.user.v1.GetUserRequest
	(*GetUserResponse)(nil),                            // 9: keyapis.user.v1.GetUserResponse
	(*GetUserListRequest)(nil),                         // 10: keyapis.user.v1.GetUserListRequest
	(*GetUserListResponse)(nil),                        // 11: keyapis.user.v1.GetUserListResponse
	(*GetUserCountRequest)(nil),                        // 12: keyapis.user.v1.GetUserCountRequest
	(*GetUserCountResponse)(nil),                       // 13: keyapis.user.v1.GetUserCountResponse
	(*DeleteUserRequest)(nil),                          // 14: keyapis.user.v1.DeleteUserRequest
	(*DeleteUserResponse)(nil),                         // 15: keyapis.user.v1.DeleteUserResponse
	(*GetUserCodeRequest)(nil),                         // 16: keyapis.user.v1.GetUserCodeRequest
	(*GetUserCodeResponse)(nil),                        // 17: keyapis.user.v1.GetUserCodeResponse
	(*PostUserCodeCreateRequest)(nil),                  // 18: keyapis.user.v1.PostUserCodeCreateRequest
	(*PostUserCodeCreateResponse)(nil),                 // 19: keyapis.user.v1.PostUserCodeCreateResponse
	(*UserFilter)(nil),                                 // 20: keyapis.user.v1.UserFilter
	(*UserPaging)(nil),                                 // 21: keyapis.user.v1.UserPaging
	(*PostUserRequest)(nil),                            // 22: keyapis.user.v1.PostUserRequest
	(*PostUserResponse)(nil),                           // 23: keyapis.user.v1.PostUserResponse
	(*ValidationError)(nil),                            // 24: keyapis.user.v1.ValidationError
	(*DeleteUserSessionsResponse_Error)(nil),           // 25: keyapis.user.v1.DeleteUserSessionsResponse.Error
	(*User_SavingError)(nil),                           // 26: keyapis.user.v1.User.SavingError
	(*User_SavingError_Conflict)(nil),                  // 27: keyapis.user.v1.User.SavingError.Conflict
	(*User_SavingError_UserTypeForbidden)(nil),         // 28: keyapis.user.v1.User.SavingError.UserTypeForbidden
	(*User_SavingError_UserStatusForbidden)(nil),       // 29: keyapis.user.v1.User.SavingError.UserStatusForbidden
	(*User_SavingError_MrfIdRequiredForUserType)(nil),  // 30: keyapis.user.v1.User.SavingError.MrfIdRequiredForUserType
	(*User_SavingError_CreatorMustBeAdmin)(nil),        // 31: keyapis.user.v1.User.SavingError.CreatorMustBeAdmin
	(*User_SavingError_RfIdDoesNotMatchMrfId)(nil),     // 32: keyapis.user.v1.User.SavingError.RfIdDoesNotMatchMrfId
	(*User_SavingError_EmailIsAlreadyTaken)(nil),       // 33: keyapis.user.v1.User.SavingError.EmailIsAlreadyTaken
	(*User_SavingError_EntityNotFound)(nil),            // 34: keyapis.user.v1.User.SavingError.EntityNotFound
	(*GetUserResponse_Error)(nil),                      // 35: keyapis.user.v1.GetUserResponse.Error
	(*GetUserListResponse_Error)(nil),                  // 36: keyapis.user.v1.GetUserListResponse.Error
	(*GetUserCountResponse_Error)(nil),                 // 37: keyapis.user.v1.GetUserCountResponse.Error
	(*DeleteUserResponse_Error)(nil),                   // 38: keyapis.user.v1.DeleteUserResponse.Error
	(*GetUserCodeResponse_Error)(nil),                  // 39: keyapis.user.v1.GetUserCodeResponse.Error
	(*GetUserCodeResponse_Error_UserCodeNotFound)(nil), // 40: keyapis.user.v1.GetUserCodeResponse.Error.UserCodeNotFound
	(*PostUserCodeCreateResponse_Error)(nil),           // 41: keyapis.user.v1.PostUserCodeCreateResponse.Error
	(*PostUserResponse_Error)(nil),                     // 42: keyapis.user.v1.PostUserResponse.Error
	(*wrapperspb.StringValue)(nil),                     // 43: google.protobuf.StringValue
	(*wrapperspb.Int32Value)(nil),                      // 44: google.protobuf.Int32Value
	(*timestamppb.Timestamp)(nil),                      // 45: google.protobuf.Timestamp
}
var file_keyapis_user_v1_keyapis_user_user_v1_proto_depIdxs = []int32{
	25, // 0: keyapis.user.v1.DeleteUserSessionsResponse.error:type_name -> keyapis.user.v1.DeleteUserSessionsResponse.Error
	0,  // 1: keyapis.user.v1.User.type:type_name -> keyapis.user.v1.User.Type
	1,  // 2: keyapis.user.v1.User.status_type:type_name -> keyapis.user.v1.User.StatusType
	43, // 3: keyapis.user.v1.User.login:type_name -> google.protobuf.StringValue
	43, // 4: keyapis.user.v1.User.email:type_name -> google.protobuf.StringValue
	43, // 5: keyapis.user.v1.User.phone_number:type_name -> google.protobuf.StringValue
	44, // 6: keyapis.user.v1.User.company_id:type_name -> google.protobuf.Int32Value
	44, // 7: keyapis.user.v1.User.mrf_id:type_name -> google.protobuf.Int32Value
	44, // 8: keyapis.user.v1.User.rf_id:type_name -> google.protobuf.Int32Value
	45, // 9: keyapis.user.v1.User.created_at:type_name -> google.protobuf.Timestamp
	45, // 10: keyapis.user.v1.User.changed_at:type_name -> google.protobuf.Timestamp
	45, // 11: keyapis.user.v1.User.activated_at:type_name -> google.protobuf.Timestamp
	45, // 12: keyapis.user.v1.User.blocked_at:type_name -> google.protobuf.Timestamp
	44, // 13: keyapis.user.v1.User.creator_user_id:type_name -> google.protobuf.Int32Value
	44, // 14: keyapis.user.v1.User.owner_user_id:type_name -> google.protobuf.Int32Value
	43, // 15: keyapis.user.v1.User.invoice_email:type_name -> google.protobuf.StringValue
	44, // 16: keyapis.user.v1.User.vc_user_id:type_name -> google.protobuf.Int32Value
	43, // 17: keyapis.user.v1.User.description:type_name -> google.protobuf.StringValue
	44, // 18: keyapis.user.v1.User.ustore_user_id:type_name -> google.protobuf.Int32Value
	43, // 19: keyapis.user.v1.User.env_url:type_name -> google.protobuf.StringValue
	45, // 20: keyapis.user.v1.UserCode.created_at:type_name -> google.protobuf.Timestamp
	0,  // 21: keyapis.user.v1.UserCode.creator_user_type:type_name -> keyapis.user.v1.User.Type
	6,  // 22: keyapis.user.v1.GetUserResponse.data:type_name -> keyapis.user.v1.User
	35, // 23: keyapis.user.v1.GetUserResponse.error:type_name -> keyapis.user.v1.GetUserResponse.Error
	20, // 24: keyapis.user.v1.GetUserListRequest.filter:type_name -> keyapis.user.v1.UserFilter
	21, // 25: keyapis.user.v1.GetUserListRequest.paging:type_name -> keyapis.user.v1.UserPaging
	6,  // 26: keyapis.user.v1.GetUserListResponse.data:type_name -> keyapis.user.v1.User
	36, // 27: keyapis.user.v1.GetUserListResponse.error:type_name -> keyapis.user.v1.GetUserListResponse.Error
	20, // 28: keyapis.user.v1.GetUserCountRequest.filter:type_name -> keyapis.user.v1.UserFilter
	37, // 29: keyapis.user.v1.GetUserCountResponse.error:type_name -> keyapis.user.v1.GetUserCountResponse.Error
	38, // 30: keyapis.user.v1.DeleteUserResponse.error:type_name -> keyapis.user.v1.DeleteUserResponse.Error
	7,  // 31: keyapis.user.v1.GetUserCodeResponse.data:type_name -> keyapis.user.v1.UserCode
	39, // 32: keyapis.user.v1.GetUserCodeResponse.error:type_name -> keyapis.user.v1.GetUserCodeResponse.Error
	7,  // 33: keyapis.user.v1.PostUserCodeCreateRequest.user_code:type_name -> keyapis.user.v1.UserCode
	7,  // 34: keyapis.user.v1.PostUserCodeCreateResponse.data:type_name -> keyapis.user.v1.UserCode
	41, // 35: keyapis.user.v1.PostUserCodeCreateResponse.error:type_name -> keyapis.user.v1.PostUserCodeCreateResponse.Error
	0,  // 36: keyapis.user.v1.UserFilter.user_types:type_name -> keyapis.user.v1.User.Type
	1,  // 37: keyapis.user.v1.UserFilter.user_status_types:type_name -> keyapis.user.v1.User.StatusType
	43, // 38: keyapis.user.v1.UserFilter.text:type_name -> google.protobuf.StringValue
	43, // 39: keyapis.user.v1.UserFilter.contacts:type_name -> google.protobuf.StringValue
	2,  // 40: keyapis.user.v1.UserPaging.order_by_type:type_name -> keyapis.user.v1.UserPaging.OrderByType
	3,  // 41: keyapis.user.v1.UserPaging.direction_type:type_name -> keyapis.user.v1.UserPaging.DirectionType
	6,  // 42: keyapis.user.v1.PostUserRequest.data:type_name -> keyapis.user.v1.User
	6,  // 43: keyapis.user.v1.PostUserResponse.data:type_name -> keyapis.user.v1.User
	42, // 44: keyapis.user.v1.PostUserResponse.error:type_name -> keyapis.user.v1.PostUserResponse.Error
	24, // 45: keyapis.user.v1.DeleteUserSessionsResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	27, // 46: keyapis.user.v1.User.SavingError.conflict:type_name -> keyapis.user.v1.User.SavingError.Conflict
	28, // 47: keyapis.user.v1.User.SavingError.user_type_forbidden:type_name -> keyapis.user.v1.User.SavingError.UserTypeForbidden
	29, // 48: keyapis.user.v1.User.SavingError.user_status_forbidden:type_name -> keyapis.user.v1.User.SavingError.UserStatusForbidden
	30, // 49: keyapis.user.v1.User.SavingError.mrf_id_is_required_for_user_type:type_name -> keyapis.user.v1.User.SavingError.MrfIdRequiredForUserType
	31, // 50: keyapis.user.v1.User.SavingError.creator_must_be_admin:type_name -> keyapis.user.v1.User.SavingError.CreatorMustBeAdmin
	32, // 51: keyapis.user.v1.User.SavingError.rf_id_does_not_match_mrf_id:type_name -> keyapis.user.v1.User.SavingError.RfIdDoesNotMatchMrfId
	33, // 52: keyapis.user.v1.User.SavingError.email_is_already_taken:type_name -> keyapis.user.v1.User.SavingError.EmailIsAlreadyTaken
	34, // 53: keyapis.user.v1.User.SavingError.entity_not_found:type_name -> keyapis.user.v1.User.SavingError.EntityNotFound
	24, // 54: keyapis.user.v1.GetUserResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	24, // 55: keyapis.user.v1.GetUserListResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	24, // 56: keyapis.user.v1.GetUserCountResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	24, // 57: keyapis.user.v1.DeleteUserResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	26, // 58: keyapis.user.v1.DeleteUserResponse.Error.saving:type_name -> keyapis.user.v1.User.SavingError
	24, // 59: keyapis.user.v1.GetUserCodeResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	40, // 60: keyapis.user.v1.GetUserCodeResponse.Error.user_code_not_found:type_name -> keyapis.user.v1.GetUserCodeResponse.Error.UserCodeNotFound
	24, // 61: keyapis.user.v1.PostUserCodeCreateResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	24, // 62: keyapis.user.v1.PostUserResponse.Error.validation:type_name -> keyapis.user.v1.ValidationError
	26, // 63: keyapis.user.v1.PostUserResponse.Error.saving:type_name -> keyapis.user.v1.User.SavingError
	8,  // 64: keyapis.user.v1.UserService.GetUser:input_type -> keyapis.user.v1.GetUserRequest
	10, // 65: keyapis.user.v1.UserService.GetUserList:input_type -> keyapis.user.v1.GetUserListRequest
	12, // 66: keyapis.user.v1.UserService.GetUserCount:input_type -> keyapis.user.v1.GetUserCountRequest
	14, // 67: keyapis.user.v1.UserService.DeleteUser:input_type -> keyapis.user.v1.DeleteUserRequest
	4,  // 68: keyapis.user.v1.UserService.DeleteUserSessions:input_type -> keyapis.user.v1.DeleteUserSessionsRequest
	16, // 69: keyapis.user.v1.UserService.GetUserCode:input_type -> keyapis.user.v1.GetUserCodeRequest
	18, // 70: keyapis.user.v1.UserService.PostUserCodeCreate:input_type -> keyapis.user.v1.PostUserCodeCreateRequest
	22, // 71: keyapis.user.v1.UserService.PostUser:input_type -> keyapis.user.v1.PostUserRequest
	9,  // 72: keyapis.user.v1.UserService.GetUser:output_type -> keyapis.user.v1.GetUserResponse
	11, // 73: keyapis.user.v1.UserService.GetUserList:output_type -> keyapis.user.v1.GetUserListResponse
	13, // 74: keyapis.user.v1.UserService.GetUserCount:output_type -> keyapis.user.v1.GetUserCountResponse
	15, // 75: keyapis.user.v1.UserService.DeleteUser:output_type -> keyapis.user.v1.DeleteUserResponse
	5,  // 76: keyapis.user.v1.UserService.DeleteUserSessions:output_type -> keyapis.user.v1.DeleteUserSessionsResponse
	17, // 77: keyapis.user.v1.UserService.GetUserCode:output_type -> keyapis.user.v1.GetUserCodeResponse
	19, // 78: keyapis.user.v1.UserService.PostUserCodeCreate:output_type -> keyapis.user.v1.PostUserCodeCreateResponse
	23, // 79: keyapis.user.v1.UserService.PostUser:output_type -> keyapis.user.v1.PostUserResponse
	72, // [72:80] is the sub-list for method output_type
	64, // [64:72] is the sub-list for method input_type
	64, // [64:64] is the sub-list for extension type_name
	64, // [64:64] is the sub-list for extension extendee
	0,  // [0:64] is the sub-list for field type_name
}

func init() { file_keyapis_user_v1_keyapis_user_user_v1_proto_init() }
func file_keyapis_user_v1_keyapis_user_user_v1_proto_init() {
	if File_keyapis_user_v1_keyapis_user_user_v1_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserSessionsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserSessionsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCodeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCodeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserCodeCreateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserCodeCreateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserPaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidationError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserSessionsResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_Conflict); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_UserTypeForbidden); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_UserStatusForbidden); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_MrfIdRequiredForUserType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_CreatorMustBeAdmin); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_RfIdDoesNotMatchMrfId); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_EmailIsAlreadyTaken); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User_SavingError_EntityNotFound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCountResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCodeResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserCodeResponse_Error_UserCodeNotFound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserCodeCreateResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostUserResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*DeleteUserSessionsResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*GetUserResponse_Data)(nil),
		(*GetUserResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*GetUserListRequest_Paging)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[7].OneofWrappers = []interface{}{
		(*GetUserListResponse_Data)(nil),
		(*GetUserListResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*GetUserCountResponse_Data)(nil),
		(*GetUserCountResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*DeleteUserResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[13].OneofWrappers = []interface{}{
		(*GetUserCodeResponse_Data)(nil),
		(*GetUserCodeResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[15].OneofWrappers = []interface{}{
		(*PostUserCodeCreateResponse_Data)(nil),
		(*PostUserCodeCreateResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[19].OneofWrappers = []interface{}{
		(*PostUserResponse_Data)(nil),
		(*PostUserResponse_Error_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[21].OneofWrappers = []interface{}{
		(*DeleteUserSessionsResponse_Error_Validation)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[22].OneofWrappers = []interface{}{
		(*User_SavingError_Conflict_)(nil),
		(*User_SavingError_UserTypeForbidden_)(nil),
		(*User_SavingError_UserStatusForbidden_)(nil),
		(*User_SavingError_MrfIdIsRequiredForUserType)(nil),
		(*User_SavingError_CreatorMustBeAdmin_)(nil),
		(*User_SavingError_RfIdDoesNotMatchMrfId_)(nil),
		(*User_SavingError_EmailIsAlreadyTaken_)(nil),
		(*User_SavingError_EntityNotFound_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[31].OneofWrappers = []interface{}{
		(*GetUserResponse_Error_Validation)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[32].OneofWrappers = []interface{}{
		(*GetUserListResponse_Error_Validation)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[33].OneofWrappers = []interface{}{
		(*GetUserCountResponse_Error_Validation)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[34].OneofWrappers = []interface{}{
		(*DeleteUserResponse_Error_Validation)(nil),
		(*DeleteUserResponse_Error_Saving)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[35].OneofWrappers = []interface{}{
		(*GetUserCodeResponse_Error_Validation)(nil),
		(*GetUserCodeResponse_Error_UserCodeNotFound_)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[37].OneofWrappers = []interface{}{
		(*PostUserCodeCreateResponse_Error_Validation)(nil),
	}
	file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes[38].OneofWrappers = []interface{}{
		(*PostUserResponse_Error_Validation)(nil),
		(*PostUserResponse_Error_Saving)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   39,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_user_v1_keyapis_user_user_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_user_v1_keyapis_user_user_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_user_v1_keyapis_user_user_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_user_v1_keyapis_user_user_v1_proto_msgTypes,
	}.Build()
	File_keyapis_user_v1_keyapis_user_user_v1_proto = out.File
	file_keyapis_user_v1_keyapis_user_user_v1_proto_rawDesc = nil
	file_keyapis_user_v1_keyapis_user_user_v1_proto_goTypes = nil
	file_keyapis_user_v1_keyapis_user_user_v1_proto_depIdxs = nil
}
