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

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

package keyapis_access_management_v1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 GroupPaging_OrderByType int32

const (
	// Значение не указано
	GroupPaging_ORDER_BY_TYPE_UNKNOWN GroupPaging_OrderByType = 0
	// По идентификатору
	GroupPaging_ID GroupPaging_OrderByType = 1
	// По наименованию
	GroupPaging_TITLE GroupPaging_OrderByType = 2
)

// Enum value maps for GroupPaging_OrderByType.
var (
	GroupPaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "ID",
		2: "TITLE",
	}
	GroupPaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"ID":                    1,
		"TITLE":                 2,
	}
)

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

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

func (GroupPaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[0].Descriptor()
}

func (GroupPaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[0]
}

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

// Deprecated: Use GroupPaging_OrderByType.Descriptor instead.
func (GroupPaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{14, 0}
}

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

const (
	// Значение не указано
	GroupPaging_DIRECTION_TYPE_UNKNOWN GroupPaging_DirectionType = 0
	// От большего к меньшему
	GroupPaging_DESC GroupPaging_DirectionType = 1
	// От меньшего к большему
	GroupPaging_ASC GroupPaging_DirectionType = 2
)

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

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

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

func (GroupPaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[1].Descriptor()
}

func (GroupPaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[1]
}

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

// Deprecated: Use GroupPaging_DirectionType.Descriptor instead.
func (GroupPaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{14, 1}
}

// Справочник типов сортировки
type GroupUserPaging_OrderByType int32

const (
	// Значение не указано
	GroupUserPaging_ORDER_BY_TYPE_UNKNOWN GroupUserPaging_OrderByType = 0
	// По Идентификатору группы
	GroupUserPaging_GROUP_ID GroupUserPaging_OrderByType = 1
	// По Идентификатору пользователя
	GroupUserPaging_USER_ID GroupUserPaging_OrderByType = 2
)

// Enum value maps for GroupUserPaging_OrderByType.
var (
	GroupUserPaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "GROUP_ID",
		2: "USER_ID",
	}
	GroupUserPaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"GROUP_ID":              1,
		"USER_ID":               2,
	}
)

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

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

func (GroupUserPaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[2].Descriptor()
}

func (GroupUserPaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[2]
}

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

// Deprecated: Use GroupUserPaging_OrderByType.Descriptor instead.
func (GroupUserPaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{25, 0}
}

// Справочник типов направлений сортировки
type GroupUserPaging_DirectionType int32

const (
	// Значение не указано
	GroupUserPaging_DIRECTION_TYPE_UNKNOWN GroupUserPaging_DirectionType = 0
	// От большего к меньшему
	GroupUserPaging_DESC GroupUserPaging_DirectionType = 1
	// От меньшего к большему
	GroupUserPaging_ASC GroupUserPaging_DirectionType = 2
)

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

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

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

func (GroupUserPaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[3].Descriptor()
}

func (GroupUserPaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[3]
}

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

// Deprecated: Use GroupUserPaging_DirectionType.Descriptor instead.
func (GroupUserPaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{25, 1}
}

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

const (
	// Значение не указано
	GroupClaimPaging_ORDER_BY_TYPE_UNKNOWN GroupClaimPaging_OrderByType = 0
	// По ключу атрибута
	GroupClaimPaging_KEY GroupClaimPaging_OrderByType = 1
	// По значению атрибута
	GroupClaimPaging_VALUE GroupClaimPaging_OrderByType = 2
)

// Enum value maps for GroupClaimPaging_OrderByType.
var (
	GroupClaimPaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "KEY",
		2: "VALUE",
	}
	GroupClaimPaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"KEY":                   1,
		"VALUE":                 2,
	}
)

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

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

func (GroupClaimPaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[4].Descriptor()
}

func (GroupClaimPaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[4]
}

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

// Deprecated: Use GroupClaimPaging_OrderByType.Descriptor instead.
func (GroupClaimPaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{38, 0}
}

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

const (
	// Значение не указано
	GroupClaimPaging_DIRECTION_TYPE_UNKNOWN GroupClaimPaging_DirectionType = 0
	// От большего к меньшему
	GroupClaimPaging_DESC GroupClaimPaging_DirectionType = 1
	// От меньшего к большему
	GroupClaimPaging_ASC GroupClaimPaging_DirectionType = 2
)

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

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

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

func (GroupClaimPaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[5].Descriptor()
}

func (GroupClaimPaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes[5]
}

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

// Deprecated: Use GroupClaimPaging_DirectionType.Descriptor instead.
func (GroupClaimPaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{38, 1}
}

// Запрос на добавления группе ключа доступа ApiKey
type PutGroupApiKeyCreateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор группы.
	// # Тип: Guid
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
}

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

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

func (*PutGroupApiKeyCreateRequest) ProtoMessage() {}

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

func (x *PutGroupApiKeyCreateRequest) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

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

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

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

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

func (*PutGroupApiKeyCreateResponse) ProtoMessage() {}

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

func (m *PutGroupApiKeyCreateResponse) GetType() isPutGroupApiKeyCreateResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PutGroupApiKeyCreateResponse) GetData() string {
	if x, ok := x.GetType().(*PutGroupApiKeyCreateResponse_Data); ok {
		return x.Data
	}
	return ""
}

type isPutGroupApiKeyCreateResponse_Type interface {
	isPutGroupApiKeyCreateResponse_Type()
}

type PutGroupApiKeyCreateResponse_Data struct {
	// Значение ключа доступа ApiKey.
	// # Тип: Guid
	Data string `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*PutGroupApiKeyCreateResponse_Data) isPutGroupApiKeyCreateResponse_Type() {}

// Запрос на удаление ключей доступа ApiKey
type PutGroupApiKeyDeleteRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор группы.
	// # Тип: Guid
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
}

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

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

func (*PutGroupApiKeyDeleteRequest) ProtoMessage() {}

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

func (x *PutGroupApiKeyDeleteRequest) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

// Ответ на запрос на удаление ключей доступа ApiKey
type PutGroupApiKeyDeleteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*PutGroupApiKeyDeleteResponse) ProtoMessage() {}

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

// Атрибут пользователя
type Claim struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Ключ атрибута
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// Значение атрибута
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*Claim) ProtoMessage() {}

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

func (x *Claim) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Claim) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// Связка пользователя с группой
type UserGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор пользователя.
	// Соответствует subject, sub, client_id из JWT.
	// # Диапазон: 3..256
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Идентификатор группы.
	// # Тип: Guid
	GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
}

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

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

func (*UserGroup) ProtoMessage() {}

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

func (x *UserGroup) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *UserGroup) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

// Группа атрибутов пользователя
type Group struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор группы.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Наименование.
	// # Диапазон: 3..256
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// Описание.
	// # Диапазон: 3..256
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Массив атрибутов группы.
	// Эти атрибуты назначены пользователям, которые принадлежат группе.
	// # Диапазон: 0..100
	Claims []*Claim `protobuf:"bytes,4,rep,name=claims,proto3" json:"claims,omitempty"`
	// Требования, означающие принадлежность пользователя к данной группе.
	// Пользователь принадлежит группе, если все атрибуты требований группы присутствуют у пользователя и имеют те же значения.
	// # Диапазон: 0..10
	Requirements []*Claim `protobuf:"bytes,5,rep,name=requirements,proto3" json:"requirements,omitempty"`
	// Дата удаления группы из использования.
	// Группа не участвует в определении разрешений пользователя, если дата deleted_at непустая и уже в прошлом
	DeletedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"`
	// Теги группы.
	// # Диапазон: 0..10
	Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
}

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

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

func (*Group) ProtoMessage() {}

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

func (x *Group) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Group) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Group) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Group) GetClaims() []*Claim {
	if x != nil {
		return x.Claims
	}
	return nil
}

func (x *Group) GetRequirements() []*Claim {
	if x != nil {
		return x.Requirements
	}
	return nil
}

func (x *Group) GetDeletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.DeletedAt
	}
	return nil
}

func (x *Group) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

// Запрос получения группы
type GetGroupRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор группы.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetGroupRequest) ProtoMessage() {}

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

func (x *GetGroupRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

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

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

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

func (*GetGroupResponse) ProtoMessage() {}

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

func (m *GetGroupResponse) GetType() isGetGroupResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetGroupResponse) GetData() *Group {
	if x, ok := x.GetType().(*GetGroupResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetGroupResponse) GetError() *GetGroupResponse_Error {
	if x, ok := x.GetType().(*GetGroupResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetGroupResponse_Type interface {
	isGetGroupResponse_Type()
}

type GetGroupResponse_Data struct {
	// Группа
	Data *Group `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*GetGroupResponse_Data) isGetGroupResponse_Type() {}

func (*GetGroupResponse_Error_) isGetGroupResponse_Type() {}

// Запрос получения списка групп
type GetGroupListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetGroupListRequest) ProtoMessage() {}

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

func (x *GetGroupListRequest) GetFilter() *GroupFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetGroupListRequest) GetPagination() isGetGroupListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetGroupListRequest) GetPaging() *GroupPaging {
	if x, ok := x.GetPagination().(*GetGroupListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetGroupListRequest_Pagination interface {
	isGetGroupListRequest_Pagination()
}

type GetGroupListRequest_Paging struct {
	// Пагинация
	Paging *GroupPaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetGroupListRequest_Paging) isGetGroupListRequest_Pagination() {}

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

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

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

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

func (*GetGroupListResponse) ProtoMessage() {}

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

func (m *GetGroupListResponse) GetType() isGetGroupListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetGroupListResponse) GetData() *Group {
	if x, ok := x.GetType().(*GetGroupListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetGroupListResponse) GetError() *GetGroupListResponse_Error {
	if x, ok := x.GetType().(*GetGroupListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetGroupListResponse_Type interface {
	isGetGroupListResponse_Type()
}

type GetGroupListResponse_Data struct {
	// Группа
	Data *Group `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*GetGroupListResponse_Data) isGetGroupListResponse_Type() {}

func (*GetGroupListResponse_Error_) isGetGroupListResponse_Type() {}

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

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

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

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

func (*GetGroupCountRequest) ProtoMessage() {}

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

func (x *GetGroupCountRequest) GetFilter() *GroupFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

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

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

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

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

func (*GetGroupCountResponse) ProtoMessage() {}

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

func (m *GetGroupCountResponse) GetType() isGetGroupCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

func (x *GetGroupCountResponse) GetError() *GetGroupCountResponse_Error {
	if x, ok := x.GetType().(*GetGroupCountResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetGroupCountResponse_Type interface {
	isGetGroupCountResponse_Type()
}

type GetGroupCountResponse_Data struct {
	// Всего групп
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

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

func (*GetGroupCountResponse_Data) isGetGroupCountResponse_Type() {}

func (*GetGroupCountResponse_Error_) isGetGroupCountResponse_Type() {}

// Фильтр групп
type GroupFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По тексту.
	// Если значение не передано то поиск по нему не производится.
	// # Диапазон: 3..64.
	// # Поиск производится по полям:
	// # - Наименование
	Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	// По requirements группы.
	// Возвращаем группы, у которых Group.requirements.key=GroupFilter.requirements[n].key И Group.requirements.value=GroupFilter.requirements[n].value.
	// При пустом GroupFilter.requirements[n].value возвращаем все группы, у которых Group.requirements.key=GroupFilter.requirements[n].key.
	// При передаче нескольких элементов map они работают в выборке через И
	Requirements map[string]string `protobuf:"bytes,2,rep,name=requirements,proto3" json:"requirements,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// По claims группы.
	// Возвращаем группы, у которых Group.claim.key=GroupFilter.claims[n].key И Group.claims.value=GroupFilter.claims[n].value.
	// При пустом GroupFilter.claims[n].value возвращаем все группы, у которых Group.claims.key=GroupFilter.claims[n].key.
	// При передаче нескольких элементов map они работают в выборке через И
	Claims map[string]string `protobuf:"bytes,3,rep,name=claims,proto3" json:"claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// По тегам.
	// # Диапазон: 0..10
	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
	// Скрывать удалённые элементы.
	// Если значение — true, возвращаются только записи, у которых deleted_at = null или deleted_at > текущего времени.
	// Если значение — false или не задано, возвращаются все записи, включая удалённые
	HideDeleted *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=hide_deleted,json=hideDeleted,proto3" json:"hide_deleted,omitempty"`
}

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

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

func (*GroupFilter) ProtoMessage() {}

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

func (x *GroupFilter) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

func (x *GroupFilter) GetRequirements() map[string]string {
	if x != nil {
		return x.Requirements
	}
	return nil
}

func (x *GroupFilter) GetClaims() map[string]string {
	if x != nil {
		return x.Claims
	}
	return nil
}

func (x *GroupFilter) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *GroupFilter) GetHideDeleted() *wrapperspb.BoolValue {
	if x != nil {
		return x.HideDeleted
	}
	return nil
}

// Пагинация групп
type GroupPaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: ID
	OrderByType GroupPaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.access_management.v1.GroupPaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType GroupPaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.access_management.v1.GroupPaging_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 *GroupPaging) Reset() {
	*x = GroupPaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GroupPaging) ProtoMessage() {}

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

func (x *GroupPaging) GetOrderByType() GroupPaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return GroupPaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *GroupPaging) GetDirectionType() GroupPaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return GroupPaging_DIRECTION_TYPE_UNKNOWN
}

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

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

// Запрос сохранения группы
type PostGroupRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Группа
	Data *Group `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*PostGroupRequest) ProtoMessage() {}

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

func (x *PostGroupRequest) GetData() *Group {
	if x != nil {
		return x.Data
	}
	return nil
}

// Запрос создания группы по шаблону
type PostGroupByTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор шаблона группы.
	// # Тип: Guid
	GroupTemplateId string `protobuf:"bytes,1,opt,name=group_template_id,json=groupTemplateId,proto3" json:"group_template_id,omitempty"`
	// Наименование создаваемой по шаблону группы.
	// В наименование группы будет добавлен суффикс GroupTemplate.group_title_suffix.
	// # Диапазон: 3..256
	GroupTitle string `protobuf:"bytes,2,opt,name=group_title,json=groupTitle,proto3" json:"group_title,omitempty"`
	// Специфичные для создаваемой по шаблону группы Claim requirements, они будут добавлены к requirements создаваемой по шаблону группы.
	// # Диапазон: 0..10
	GroupRequirements []*Claim `protobuf:"bytes,3,rep,name=group_requirements,json=groupRequirements,proto3" json:"group_requirements,omitempty"`
}

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

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

func (*PostGroupByTemplateRequest) ProtoMessage() {}

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

func (x *PostGroupByTemplateRequest) GetGroupTemplateId() string {
	if x != nil {
		return x.GroupTemplateId
	}
	return ""
}

func (x *PostGroupByTemplateRequest) GetGroupTitle() string {
	if x != nil {
		return x.GroupTitle
	}
	return ""
}

func (x *PostGroupByTemplateRequest) GetGroupRequirements() []*Claim {
	if x != nil {
		return x.GroupRequirements
	}
	return nil
}

// Ответ на запрос сохранения группы
type PostGroupResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*PostGroupResponse) ProtoMessage() {}

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

func (m *PostGroupResponse) GetType() isPostGroupResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostGroupResponse) GetData() *Group {
	if x, ok := x.GetType().(*PostGroupResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostGroupResponse) GetError() *PostGroupResponse_Error {
	if x, ok := x.GetType().(*PostGroupResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostGroupResponse_Type interface {
	isPostGroupResponse_Type()
}

type PostGroupResponse_Data struct {
	// Группа
	Data *Group `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*PostGroupResponse_Data) isPostGroupResponse_Type() {}

func (*PostGroupResponse_Error_) isPostGroupResponse_Type() {}

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

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

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

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

func (*PostGroupByTemplateResponse) ProtoMessage() {}

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

func (m *PostGroupByTemplateResponse) GetType() isPostGroupByTemplateResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostGroupByTemplateResponse) GetData() *Group {
	if x, ok := x.GetType().(*PostGroupByTemplateResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostGroupByTemplateResponse) GetError() *PostGroupByTemplateResponse_Error {
	if x, ok := x.GetType().(*PostGroupByTemplateResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostGroupByTemplateResponse_Type interface {
	isPostGroupByTemplateResponse_Type()
}

type PostGroupByTemplateResponse_Data struct {
	// Группа
	Data *Group `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*PostGroupByTemplateResponse_Data) isPostGroupByTemplateResponse_Type() {}

func (*PostGroupByTemplateResponse_Error_) isPostGroupByTemplateResponse_Type() {}

// Запрос удаления группы
type DeleteGroupRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор группы.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*DeleteGroupRequest) ProtoMessage() {}

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

func (x *DeleteGroupRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

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

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

func (*DeleteGroupResponse) ProtoMessage() {}

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

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

	// Связь пользователя и группы
	UserGroup *UserGroup `protobuf:"bytes,1,opt,name=user_group,json=userGroup,proto3" json:"user_group,omitempty"`
}

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

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

func (*PutGroupUserAttachRequest) ProtoMessage() {}

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

func (x *PutGroupUserAttachRequest) GetUserGroup() *UserGroup {
	if x != nil {
		return x.UserGroup
	}
	return nil
}

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

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

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

func (*PutGroupUserAttachResponse) ProtoMessage() {}

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

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

	// Связь пользователя и группы
	UserGroup *UserGroup `protobuf:"bytes,1,opt,name=user_group,json=userGroup,proto3" json:"user_group,omitempty"`
}

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

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

func (*PutGroupUserDetachRequest) ProtoMessage() {}

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

func (x *PutGroupUserDetachRequest) GetUserGroup() *UserGroup {
	if x != nil {
		return x.UserGroup
	}
	return nil
}

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

	// Фильтр связей пользователей и групп
	Filter *GroupUserFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// Вариант разбиения на страницы
	//
	// Types that are assignable to Pagination:
	//
	//	*GetGroupUserListRequest_Paging
	Pagination isGetGroupUserListRequest_Pagination `protobuf_oneof:"pagination"`
}

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

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

func (*GetGroupUserListRequest) ProtoMessage() {}

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

func (x *GetGroupUserListRequest) GetFilter() *GroupUserFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetGroupUserListRequest) GetPagination() isGetGroupUserListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetGroupUserListRequest) GetPaging() *GroupUserPaging {
	if x, ok := x.GetPagination().(*GetGroupUserListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetGroupUserListRequest_Pagination interface {
	isGetGroupUserListRequest_Pagination()
}

type GetGroupUserListRequest_Paging struct {
	// Пагинация
	Paging *GroupUserPaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetGroupUserListRequest_Paging) isGetGroupUserListRequest_Pagination() {}

// Пагинация связей пользователей и групп
type GroupUserPaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GroupUserPaging) ProtoMessage() {}

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

func (x *GroupUserPaging) GetOrderByType() GroupUserPaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return GroupUserPaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *GroupUserPaging) GetDirectionType() GroupUserPaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return GroupUserPaging_DIRECTION_TYPE_UNKNOWN
}

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

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

// Фильтр для запроса связей пользователей и групп.
// При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.
// При передаче нескольких разных параметров фильтра они работают в выборке через И
type GroupUserFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По Идентификаторам группы
	GroupIds []string `protobuf:"bytes,1,rep,name=group_ids,json=groupIds,proto3" json:"group_ids,omitempty"`
	// По Идентификаторам пользователя
	UserIds []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
}

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

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

func (*GroupUserFilter) ProtoMessage() {}

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

func (x *GroupUserFilter) GetGroupIds() []string {
	if x != nil {
		return x.GroupIds
	}
	return nil
}

func (x *GroupUserFilter) GetUserIds() []string {
	if x != nil {
		return x.UserIds
	}
	return nil
}

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

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

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

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

func (*GetGroupUserListResponse) ProtoMessage() {}

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

func (m *GetGroupUserListResponse) GetType() isGetGroupUserListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetGroupUserListResponse) GetData() *UserGroup {
	if x, ok := x.GetType().(*GetGroupUserListResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetGroupUserListResponse_Type interface {
	isGetGroupUserListResponse_Type()
}

type GetGroupUserListResponse_Data struct {
	// Связь пользователя и группы
	Data *UserGroup `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*GetGroupUserListResponse_Data) isGetGroupUserListResponse_Type() {}

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

	// Фильтр связей пользователей и групп
	Filter *GroupUserFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

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

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

func (*GetGroupUserCountRequest) ProtoMessage() {}

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

func (x *GetGroupUserCountRequest) GetFilter() *GroupUserFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

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

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

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

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

func (*GetGroupUserCountResponse) ProtoMessage() {}

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

func (m *GetGroupUserCountResponse) GetType() isGetGroupUserCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

type isGetGroupUserCountResponse_Type interface {
	isGetGroupUserCountResponse_Type()
}

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

func (*GetGroupUserCountResponse_Data) isGetGroupUserCountResponse_Type() {}

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

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

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

func (*PutGroupUserDetachResponse) ProtoMessage() {}

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

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

	// Фильтр атрибутов пользователя
	Filter *GroupClaimFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

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

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

func (*GetGroupClaimCountRequest) ProtoMessage() {}

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

func (x *GetGroupClaimCountRequest) GetFilter() *GroupClaimFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

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

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

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

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

func (*GetGroupClaimCountResponse) ProtoMessage() {}

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

func (m *GetGroupClaimCountResponse) GetType() isGetGroupClaimCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

type isGetGroupClaimCountResponse_Type interface {
	isGetGroupClaimCountResponse_Type()
}

type GetGroupClaimCountResponse_Data struct {
	// Всего уникальных атрибутов пользователя
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

func (*GetGroupClaimCountResponse_Data) isGetGroupClaimCountResponse_Type() {}

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

	// Фильтр атрибутов пользователя
	Filter *GroupClaimFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

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

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

func (*GetGroupClaimExistRequest) ProtoMessage() {}

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

func (x *GetGroupClaimExistRequest) GetFilter() *GroupClaimFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

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

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

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

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

func (*GetGroupClaimExistResponse) ProtoMessage() {}

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

func (m *GetGroupClaimExistResponse) GetType() isGetGroupClaimExistResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetGroupClaimExistResponse) GetData() bool {
	if x, ok := x.GetType().(*GetGroupClaimExistResponse_Data); ok {
		return x.Data
	}
	return false
}

func (x *GetGroupClaimExistResponse) GetError() *GetGroupClaimExistResponse_Error {
	if x, ok := x.GetType().(*GetGroupClaimExistResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetGroupClaimExistResponse_Type interface {
	isGetGroupClaimExistResponse_Type()
}

type GetGroupClaimExistResponse_Data struct {
	// Флаг наличия
	Data bool `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

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

func (*GetGroupClaimExistResponse_Data) isGetGroupClaimExistResponse_Type() {}

func (*GetGroupClaimExistResponse_Error_) isGetGroupClaimExistResponse_Type() {}

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

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

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

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

func (*GetGroupClaimListRequest) ProtoMessage() {}

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

func (x *GetGroupClaimListRequest) GetFilter() *GroupClaimFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetGroupClaimListRequest) GetPagination() isGetGroupClaimListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetGroupClaimListRequest) GetPaging() *GroupClaimPaging {
	if x, ok := x.GetPagination().(*GetGroupClaimListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetGroupClaimListRequest_Pagination interface {
	isGetGroupClaimListRequest_Pagination()
}

type GetGroupClaimListRequest_Paging struct {
	// Пагинация по атрибутам пользователя
	Paging *GroupClaimPaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetGroupClaimListRequest_Paging) isGetGroupClaimListRequest_Pagination() {}

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

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

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

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

func (*GetGroupClaimListResponse) ProtoMessage() {}

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

func (m *GetGroupClaimListResponse) GetType() isGetGroupClaimListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetGroupClaimListResponse) GetData() *Claim {
	if x, ok := x.GetType().(*GetGroupClaimListResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetGroupClaimListResponse_Type interface {
	isGetGroupClaimListResponse_Type()
}

type GetGroupClaimListResponse_Data struct {
	// Атрибут пользователя
	Data *Claim `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*GetGroupClaimListResponse_Data) isGetGroupClaimListResponse_Type() {}

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

	// По идентификатору пользователя.
	// Соответствует subject, sub, client_id из JWT.
	// Для пользователя Ключа это user_id Ключа
	UserId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// По назначенным атрибутам пользователя.
	// Фильтр ограничивает возвращаемые атрибуты данным списком.
	// Возвращаем атрибуты групп, у которых Claim.key=claims[n].key И (Claim.value=claims[n].value ИЛИ claims[n].value пустой).
	// При пустом GroupClaimFilter.claims не ограничиваем выдачу, отдаем все Claims, назначенные пользователю
	Claims map[string]string `protobuf:"bytes,2,rep,name=claims,proto3" json:"claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// По условию принадлежности к группе.
	// Пользователь принадлежит группе, если user_data полностью удовлетворяет требованиям группы, то есть user_data содержит в себе Group.requirements целиком
	UserData *GroupClaimFilter_UserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"`
	// Хешированное SHA256 значение ключа доступа ApiKey
	ApiKeyHash string `protobuf:"bytes,4,opt,name=api_key_hash,json=apiKeyHash,proto3" json:"api_key_hash,omitempty"`
}

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

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

func (*GroupClaimFilter) ProtoMessage() {}

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

func (x *GroupClaimFilter) GetUserId() *wrapperspb.StringValue {
	if x != nil {
		return x.UserId
	}
	return nil
}

func (x *GroupClaimFilter) GetClaims() map[string]string {
	if x != nil {
		return x.Claims
	}
	return nil
}

func (x *GroupClaimFilter) GetUserData() *GroupClaimFilter_UserData {
	if x != nil {
		return x.UserData
	}
	return nil
}

func (x *GroupClaimFilter) GetApiKeyHash() string {
	if x != nil {
		return x.ApiKeyHash
	}
	return ""
}

// Пагинация атрибутов пользователя
type GroupClaimPaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: KEY
	OrderByType GroupClaimPaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.access_management.v1.GroupClaimPaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType GroupClaimPaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.access_management.v1.GroupClaimPaging_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 *GroupClaimPaging) Reset() {
	*x = GroupClaimPaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GroupClaimPaging) ProtoMessage() {}

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

func (x *GroupClaimPaging) GetOrderByType() GroupClaimPaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return GroupClaimPaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *GroupClaimPaging) GetDirectionType() GroupClaimPaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return GroupClaimPaging_DIRECTION_TYPE_UNKNOWN
}

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

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

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

	// Путь к полю в формате наименования protobuf
	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_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[39]
		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_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[39]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ValidationError.ProtoReflect.Descriptor instead.
func (*ValidationError) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{39}
}

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 GroupTemplateNotFoundError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор шаблона группы, который не найден
	GroupTemplateId string `protobuf:"bytes,1,opt,name=group_template_id,json=groupTemplateId,proto3" json:"group_template_id,omitempty"`
	// Сообщение
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *GroupTemplateNotFoundError) Reset() {
	*x = GroupTemplateNotFoundError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GroupTemplateNotFoundError) ProtoMessage() {}

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

// Deprecated: Use GroupTemplateNotFoundError.ProtoReflect.Descriptor instead.
func (*GroupTemplateNotFoundError) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{40}
}

func (x *GroupTemplateNotFoundError) GetGroupTemplateId() string {
	if x != nil {
		return x.GroupTemplateId
	}
	return ""
}

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

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

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

func (x *GetGroupResponse_Error) Reset() {
	*x = GetGroupResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetGroupResponse_Error) ProtoMessage() {}

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

// Deprecated: Use GetGroupResponse_Error.ProtoReflect.Descriptor instead.
func (*GetGroupResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{8, 0}
}

func (m *GetGroupResponse_Error) GetReason() isGetGroupResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetGroupResponse_Error_Reason interface {
	isGetGroupResponse_Error_Reason()
}

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

func (*GetGroupResponse_Error_Validation) isGetGroupResponse_Error_Reason() {}

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

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

func (x *GetGroupListResponse_Error) Reset() {
	*x = GetGroupListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetGroupListResponse_Error) ProtoMessage() {}

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

// Deprecated: Use GetGroupListResponse_Error.ProtoReflect.Descriptor instead.
func (*GetGroupListResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{10, 0}
}

func (m *GetGroupListResponse_Error) GetReason() isGetGroupListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetGroupListResponse_Error_Reason interface {
	isGetGroupListResponse_Error_Reason()
}

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

func (*GetGroupListResponse_Error_Validation) isGetGroupListResponse_Error_Reason() {}

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

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

func (x *GetGroupCountResponse_Error) Reset() {
	*x = GetGroupCountResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetGroupCountResponse_Error) ProtoMessage() {}

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

// Deprecated: Use GetGroupCountResponse_Error.ProtoReflect.Descriptor instead.
func (*GetGroupCountResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{12, 0}
}

func (m *GetGroupCountResponse_Error) GetReason() isGetGroupCountResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetGroupCountResponse_Error_Reason interface {
	isGetGroupCountResponse_Error_Reason()
}

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

func (*GetGroupCountResponse_Error_Validation) isGetGroupCountResponse_Error_Reason() {}

// Ошибка запроса сохранения группы
type PostGroupResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PostGroupResponse_Error) Reset() {
	*x = PostGroupResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostGroupResponse_Error) ProtoMessage() {}

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

// Deprecated: Use PostGroupResponse_Error.ProtoReflect.Descriptor instead.
func (*PostGroupResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{17, 0}
}

func (m *PostGroupResponse_Error) GetReason() isPostGroupResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isPostGroupResponse_Error_Reason interface {
	isPostGroupResponse_Error_Reason()
}

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

func (*PostGroupResponse_Error_Validation) isPostGroupResponse_Error_Reason() {}

// Ошибка запроса создания группы
type PostGroupByTemplateResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PostGroupByTemplateResponse_Error) Reset() {
	*x = PostGroupByTemplateResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostGroupByTemplateResponse_Error) ProtoMessage() {}

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

// Deprecated: Use PostGroupByTemplateResponse_Error.ProtoReflect.Descriptor instead.
func (*PostGroupByTemplateResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{18, 0}
}

func (m *PostGroupByTemplateResponse_Error) GetReason() isPostGroupByTemplateResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

func (x *PostGroupByTemplateResponse_Error) GetGroupTemplateNotFoundError() *GroupTemplateNotFoundError {
	if x, ok := x.GetReason().(*PostGroupByTemplateResponse_Error_GroupTemplateNotFoundError); ok {
		return x.GroupTemplateNotFoundError
	}
	return nil
}

type isPostGroupByTemplateResponse_Error_Reason interface {
	isPostGroupByTemplateResponse_Error_Reason()
}

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

type PostGroupByTemplateResponse_Error_GroupTemplateNotFoundError struct {
	// Шаблон не найден
	GroupTemplateNotFoundError *GroupTemplateNotFoundError `protobuf:"bytes,2,opt,name=group_template_not_found_error,json=groupTemplateNotFoundError,proto3,oneof"`
}

func (*PostGroupByTemplateResponse_Error_Validation) isPostGroupByTemplateResponse_Error_Reason() {}

func (*PostGroupByTemplateResponse_Error_GroupTemplateNotFoundError) isPostGroupByTemplateResponse_Error_Reason() {
}

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

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

func (x *GetGroupClaimExistResponse_Error) Reset() {
	*x = GetGroupClaimExistResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetGroupClaimExistResponse_Error) ProtoMessage() {}

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

// Deprecated: Use GetGroupClaimExistResponse_Error.ProtoReflect.Descriptor instead.
func (*GetGroupClaimExistResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{34, 0}
}

func (m *GetGroupClaimExistResponse_Error) GetReason() isGetGroupClaimExistResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetGroupClaimExistResponse_Error) GetClaimFilterEmpty() *GetGroupClaimExistResponse_Error_ClaimFilterEmptyError {
	if x, ok := x.GetReason().(*GetGroupClaimExistResponse_Error_ClaimFilterEmpty); ok {
		return x.ClaimFilterEmpty
	}
	return nil
}

type isGetGroupClaimExistResponse_Error_Reason interface {
	isGetGroupClaimExistResponse_Error_Reason()
}

type GetGroupClaimExistResponse_Error_ClaimFilterEmpty struct {
	// Ошибка пустого фильтра по атрибутам пользователя
	ClaimFilterEmpty *GetGroupClaimExistResponse_Error_ClaimFilterEmptyError `protobuf:"bytes,1,opt,name=claim_filter_empty,json=claimFilterEmpty,proto3,oneof"`
}

func (*GetGroupClaimExistResponse_Error_ClaimFilterEmpty) isGetGroupClaimExistResponse_Error_Reason() {
}

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

func (x *GetGroupClaimExistResponse_Error_ClaimFilterEmptyError) Reset() {
	*x = GetGroupClaimExistResponse_Error_ClaimFilterEmptyError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetGroupClaimExistResponse_Error_ClaimFilterEmptyError) ProtoMessage() {}

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

// Deprecated: Use GetGroupClaimExistResponse_Error_ClaimFilterEmptyError.ProtoReflect.Descriptor instead.
func (*GetGroupClaimExistResponse_Error_ClaimFilterEmptyError) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{34, 0, 0}
}

// Условие принадлежности к группе
type GroupClaimFilter_UserData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Атрибуты пользователя, claims которого мы хотим получить
	Claims map[string]string `protobuf:"bytes,1,rep,name=claims,proto3" json:"claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *GroupClaimFilter_UserData) Reset() {
	*x = GroupClaimFilter_UserData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GroupClaimFilter_UserData) ProtoMessage() {}

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

// Deprecated: Use GroupClaimFilter_UserData.ProtoReflect.Descriptor instead.
func (*GroupClaimFilter_UserData) Descriptor() ([]byte, []int) {
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP(), []int{37, 1}
}

func (x *GroupClaimFilter_UserData) GetClaims() map[string]string {
	if x != nil {
		return x.Claims
	}
	return nil
}

var File_keyapis_access_management_v1_keyapis_access_management_group_v1_proto protoreflect.FileDescriptor

var file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDesc = []byte{
	0x0a, 0x45, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x76,
	0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x76, 0x31, 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, 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, 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, 0x22, 0x3d, 0x0a, 0x1b, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x1c, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0x3d, 0x0a, 0x1b, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70,
	0x69, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
	0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69,
	0x4b, 0x65, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x34, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x49, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x49, 0x64, 0x22, 0xa9, 0x02, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x6c, 0x61,
	0x69, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x06,
	0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69,
	0x6d, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 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, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61,
	0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x26,
	0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x87, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00,
	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x1a, 0x62, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a,
	0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x06, 0x70,
	0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
	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, 0x8f,
	0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x12, 0x50, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x62, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a,
	0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xec, 0x01, 0x0a, 0x15,
	0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x51, 0x0a, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 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, 0x62,
	0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0xa0, 0x03, 0x0a, 0x0b, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65,
	0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x5f,
	0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x4d, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61,
	0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x68, 0x69, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x64, 0x1a, 0x3f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf3, 0x02,
	0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x59, 0x0a,
	0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x5e, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x3b, 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, 0x09, 0x0a, 0x05, 0x54, 0x49, 0x54, 0x4c,
	0x45, 0x10, 0x02, 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, 0x50, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x42, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x11, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22,
	0x89, 0x02, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x4d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a,
	0x62, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x9e, 0x03, 0x0a, 0x1b,
	0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00,
	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x57, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 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,
	0xe2, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d,
	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x7e, 0x0a, 0x1e, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x74,
	0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e,
	0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x1a,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74,
	0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x12,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68,
	0x0a, 0x19, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74,
	0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75,
	0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x1c, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x19, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x22, 0xb7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x87, 0x03, 0x0a, 0x0f, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x5d,
	0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x62, 0x0a,
	0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 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,
	0x43, 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, 0x0c, 0x0a, 0x08, 0x47, 0x52, 0x4f,
	0x55, 0x50, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x53, 0x45, 0x52, 0x5f,
	0x49, 0x44, 0x10, 0x02, 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, 0x49, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65,
	0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22,
	0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73,
	0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45,
	0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x39, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75,
	0x70, 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, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x22, 0x1c, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72,
	0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63,
	0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43,
	0x6c, 0x61, 0x69, 0x6d, 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, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
	0x63, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d,
	0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x22, 0xc6, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x78, 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, 0xb1, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x84, 0x01, 0x0a, 0x12,
	0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x70,
	0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x10, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x1a, 0x17, 0x0a, 0x15, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x72,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xba, 0x01,
	0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43,
	0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 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, 0x5e, 0x0a, 0x19, 0x47, 0x65,
	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf5, 0x03, 0x0a, 0x10, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
	0x35, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 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,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d,
	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
	0x12, 0x20, 0x0a, 0x0c, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x48, 0x61,
	0x73, 0x68, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xa2, 0x01,
	0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x6c,
	0x61, 0x69, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43,
	0x6c, 0x61, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44,
	0x61, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6c, 0x61, 0x69, 0x6d,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x83, 0x03, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69,
	0x6d, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x5e, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 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, 0x63, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x3c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 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, 0x3c, 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, 0x07, 0x0a, 0x03, 0x4b, 0x45, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a,
	0x05, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 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, 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, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x49, 0x64, 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, 0xa6, 0x16, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
	0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
	0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa5, 0x01, 0x0a,
	0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d,
	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x6c, 0x69,
	0x73, 0x74, 0x30, 0x01, 0x12, 0xa7, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x98,
	0x01, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x2a, 0x24, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
	0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xc2, 0x01, 0x0a,
	0x13, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f,
	0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x62, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x12, 0xe7, 0x01, 0x0a, 0x12, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74,
	0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x58, 0x1a, 0x56, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
	0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0xe7, 0x01, 0x0a, 0x12,
	0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61,
	0x63, 0x68, 0x12, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65,
	0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x1a, 0x56, 0x2f,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64,
	0x65, 0x74, 0x61, 0x63, 0x68, 0x12, 0xb6, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61,
	0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x36, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x2b, 0x12, 0x29, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x01, 0x12, 0xb8,
	0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x75,
	0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xba, 0x01, 0x0a, 0x11, 0x47, 0x65,
	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x36, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43,
	0x6c, 0x61, 0x69, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x2f,
	0x6c, 0x69, 0x73, 0x74, 0x30, 0x01, 0x12, 0xbc, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d,
	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c,
	0x61, 0x69, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x2f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xbc, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6c, 0x61,
	0x69, 0x6d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x2f, 0x65,
	0x78, 0x69, 0x73, 0x74, 0x12, 0xd0, 0x01, 0x0a, 0x14, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d,
	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x39, 0x2f, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x7b, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79,
	0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0xd0, 0x01, 0x0a, 0x14, 0x50, 0x75, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x12, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a,
	0x39, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x5f,
	0x6b, 0x65, 0x79, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0xe2, 0x01, 0x0a, 0x1f, 0x72,
	0x75, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x1e,
	0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x03,
	0x50, 0x00, 0x5a, 0x1d, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76,
	0x31, 0xd8, 0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x19, 0x4b, 0x45, 0x59, 0x41, 0x50, 0x49,
	0x53, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e,
	0x54, 0x56, 0x31, 0xaa, 0x02, 0x1b, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x56,
	0x31, 0xca, 0x02, 0x1b, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xea,
	0x02, 0x1d, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62,
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescOnce sync.Once
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescData = file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDesc
)

func file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescGZIP() []byte {
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescData)
	})
	return file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDescData
}

var file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 53)
var file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_goTypes = []interface{}{
	(GroupPaging_OrderByType)(0),                                   // 0: keyapis.access_management.v1.GroupPaging.OrderByType
	(GroupPaging_DirectionType)(0),                                 // 1: keyapis.access_management.v1.GroupPaging.DirectionType
	(GroupUserPaging_OrderByType)(0),                               // 2: keyapis.access_management.v1.GroupUserPaging.OrderByType
	(GroupUserPaging_DirectionType)(0),                             // 3: keyapis.access_management.v1.GroupUserPaging.DirectionType
	(GroupClaimPaging_OrderByType)(0),                              // 4: keyapis.access_management.v1.GroupClaimPaging.OrderByType
	(GroupClaimPaging_DirectionType)(0),                            // 5: keyapis.access_management.v1.GroupClaimPaging.DirectionType
	(*PutGroupApiKeyCreateRequest)(nil),                            // 6: keyapis.access_management.v1.PutGroupApiKeyCreateRequest
	(*PutGroupApiKeyCreateResponse)(nil),                           // 7: keyapis.access_management.v1.PutGroupApiKeyCreateResponse
	(*PutGroupApiKeyDeleteRequest)(nil),                            // 8: keyapis.access_management.v1.PutGroupApiKeyDeleteRequest
	(*PutGroupApiKeyDeleteResponse)(nil),                           // 9: keyapis.access_management.v1.PutGroupApiKeyDeleteResponse
	(*Claim)(nil),                                                  // 10: keyapis.access_management.v1.Claim
	(*UserGroup)(nil),                                              // 11: keyapis.access_management.v1.UserGroup
	(*Group)(nil),                                                  // 12: keyapis.access_management.v1.Group
	(*GetGroupRequest)(nil),                                        // 13: keyapis.access_management.v1.GetGroupRequest
	(*GetGroupResponse)(nil),                                       // 14: keyapis.access_management.v1.GetGroupResponse
	(*GetGroupListRequest)(nil),                                    // 15: keyapis.access_management.v1.GetGroupListRequest
	(*GetGroupListResponse)(nil),                                   // 16: keyapis.access_management.v1.GetGroupListResponse
	(*GetGroupCountRequest)(nil),                                   // 17: keyapis.access_management.v1.GetGroupCountRequest
	(*GetGroupCountResponse)(nil),                                  // 18: keyapis.access_management.v1.GetGroupCountResponse
	(*GroupFilter)(nil),                                            // 19: keyapis.access_management.v1.GroupFilter
	(*GroupPaging)(nil),                                            // 20: keyapis.access_management.v1.GroupPaging
	(*PostGroupRequest)(nil),                                       // 21: keyapis.access_management.v1.PostGroupRequest
	(*PostGroupByTemplateRequest)(nil),                             // 22: keyapis.access_management.v1.PostGroupByTemplateRequest
	(*PostGroupResponse)(nil),                                      // 23: keyapis.access_management.v1.PostGroupResponse
	(*PostGroupByTemplateResponse)(nil),                            // 24: keyapis.access_management.v1.PostGroupByTemplateResponse
	(*DeleteGroupRequest)(nil),                                     // 25: keyapis.access_management.v1.DeleteGroupRequest
	(*DeleteGroupResponse)(nil),                                    // 26: keyapis.access_management.v1.DeleteGroupResponse
	(*PutGroupUserAttachRequest)(nil),                              // 27: keyapis.access_management.v1.PutGroupUserAttachRequest
	(*PutGroupUserAttachResponse)(nil),                             // 28: keyapis.access_management.v1.PutGroupUserAttachResponse
	(*PutGroupUserDetachRequest)(nil),                              // 29: keyapis.access_management.v1.PutGroupUserDetachRequest
	(*GetGroupUserListRequest)(nil),                                // 30: keyapis.access_management.v1.GetGroupUserListRequest
	(*GroupUserPaging)(nil),                                        // 31: keyapis.access_management.v1.GroupUserPaging
	(*GroupUserFilter)(nil),                                        // 32: keyapis.access_management.v1.GroupUserFilter
	(*GetGroupUserListResponse)(nil),                               // 33: keyapis.access_management.v1.GetGroupUserListResponse
	(*GetGroupUserCountRequest)(nil),                               // 34: keyapis.access_management.v1.GetGroupUserCountRequest
	(*GetGroupUserCountResponse)(nil),                              // 35: keyapis.access_management.v1.GetGroupUserCountResponse
	(*PutGroupUserDetachResponse)(nil),                             // 36: keyapis.access_management.v1.PutGroupUserDetachResponse
	(*GetGroupClaimCountRequest)(nil),                              // 37: keyapis.access_management.v1.GetGroupClaimCountRequest
	(*GetGroupClaimCountResponse)(nil),                             // 38: keyapis.access_management.v1.GetGroupClaimCountResponse
	(*GetGroupClaimExistRequest)(nil),                              // 39: keyapis.access_management.v1.GetGroupClaimExistRequest
	(*GetGroupClaimExistResponse)(nil),                             // 40: keyapis.access_management.v1.GetGroupClaimExistResponse
	(*GetGroupClaimListRequest)(nil),                               // 41: keyapis.access_management.v1.GetGroupClaimListRequest
	(*GetGroupClaimListResponse)(nil),                              // 42: keyapis.access_management.v1.GetGroupClaimListResponse
	(*GroupClaimFilter)(nil),                                       // 43: keyapis.access_management.v1.GroupClaimFilter
	(*GroupClaimPaging)(nil),                                       // 44: keyapis.access_management.v1.GroupClaimPaging
	(*ValidationError)(nil),                                        // 45: keyapis.access_management.v1.ValidationError
	(*GroupTemplateNotFoundError)(nil),                             // 46: keyapis.access_management.v1.GroupTemplateNotFoundError
	(*GetGroupResponse_Error)(nil),                                 // 47: keyapis.access_management.v1.GetGroupResponse.Error
	(*GetGroupListResponse_Error)(nil),                             // 48: keyapis.access_management.v1.GetGroupListResponse.Error
	(*GetGroupCountResponse_Error)(nil),                            // 49: keyapis.access_management.v1.GetGroupCountResponse.Error
	nil,                                                            // 50: keyapis.access_management.v1.GroupFilter.RequirementsEntry
	nil,                                                            // 51: keyapis.access_management.v1.GroupFilter.ClaimsEntry
	(*PostGroupResponse_Error)(nil),                                // 52: keyapis.access_management.v1.PostGroupResponse.Error
	(*PostGroupByTemplateResponse_Error)(nil),                      // 53: keyapis.access_management.v1.PostGroupByTemplateResponse.Error
	(*GetGroupClaimExistResponse_Error)(nil),                       // 54: keyapis.access_management.v1.GetGroupClaimExistResponse.Error
	(*GetGroupClaimExistResponse_Error_ClaimFilterEmptyError)(nil), // 55: keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError
	nil,                               // 56: keyapis.access_management.v1.GroupClaimFilter.ClaimsEntry
	(*GroupClaimFilter_UserData)(nil), // 57: keyapis.access_management.v1.GroupClaimFilter.UserData
	nil,                               // 58: keyapis.access_management.v1.GroupClaimFilter.UserData.ClaimsEntry
	(*timestamppb.Timestamp)(nil),     // 59: google.protobuf.Timestamp
	(*wrapperspb.BoolValue)(nil),      // 60: google.protobuf.BoolValue
	(*wrapperspb.StringValue)(nil),    // 61: google.protobuf.StringValue
}
var file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_depIdxs = []int32{
	10, // 0: keyapis.access_management.v1.Group.claims:type_name -> keyapis.access_management.v1.Claim
	10, // 1: keyapis.access_management.v1.Group.requirements:type_name -> keyapis.access_management.v1.Claim
	59, // 2: keyapis.access_management.v1.Group.deleted_at:type_name -> google.protobuf.Timestamp
	12, // 3: keyapis.access_management.v1.GetGroupResponse.data:type_name -> keyapis.access_management.v1.Group
	47, // 4: keyapis.access_management.v1.GetGroupResponse.error:type_name -> keyapis.access_management.v1.GetGroupResponse.Error
	19, // 5: keyapis.access_management.v1.GetGroupListRequest.filter:type_name -> keyapis.access_management.v1.GroupFilter
	20, // 6: keyapis.access_management.v1.GetGroupListRequest.paging:type_name -> keyapis.access_management.v1.GroupPaging
	12, // 7: keyapis.access_management.v1.GetGroupListResponse.data:type_name -> keyapis.access_management.v1.Group
	48, // 8: keyapis.access_management.v1.GetGroupListResponse.error:type_name -> keyapis.access_management.v1.GetGroupListResponse.Error
	19, // 9: keyapis.access_management.v1.GetGroupCountRequest.filter:type_name -> keyapis.access_management.v1.GroupFilter
	49, // 10: keyapis.access_management.v1.GetGroupCountResponse.error:type_name -> keyapis.access_management.v1.GetGroupCountResponse.Error
	50, // 11: keyapis.access_management.v1.GroupFilter.requirements:type_name -> keyapis.access_management.v1.GroupFilter.RequirementsEntry
	51, // 12: keyapis.access_management.v1.GroupFilter.claims:type_name -> keyapis.access_management.v1.GroupFilter.ClaimsEntry
	60, // 13: keyapis.access_management.v1.GroupFilter.hide_deleted:type_name -> google.protobuf.BoolValue
	0,  // 14: keyapis.access_management.v1.GroupPaging.order_by_type:type_name -> keyapis.access_management.v1.GroupPaging.OrderByType
	1,  // 15: keyapis.access_management.v1.GroupPaging.direction_type:type_name -> keyapis.access_management.v1.GroupPaging.DirectionType
	12, // 16: keyapis.access_management.v1.PostGroupRequest.data:type_name -> keyapis.access_management.v1.Group
	10, // 17: keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements:type_name -> keyapis.access_management.v1.Claim
	12, // 18: keyapis.access_management.v1.PostGroupResponse.data:type_name -> keyapis.access_management.v1.Group
	52, // 19: keyapis.access_management.v1.PostGroupResponse.error:type_name -> keyapis.access_management.v1.PostGroupResponse.Error
	12, // 20: keyapis.access_management.v1.PostGroupByTemplateResponse.data:type_name -> keyapis.access_management.v1.Group
	53, // 21: keyapis.access_management.v1.PostGroupByTemplateResponse.error:type_name -> keyapis.access_management.v1.PostGroupByTemplateResponse.Error
	11, // 22: keyapis.access_management.v1.PutGroupUserAttachRequest.user_group:type_name -> keyapis.access_management.v1.UserGroup
	11, // 23: keyapis.access_management.v1.PutGroupUserDetachRequest.user_group:type_name -> keyapis.access_management.v1.UserGroup
	32, // 24: keyapis.access_management.v1.GetGroupUserListRequest.filter:type_name -> keyapis.access_management.v1.GroupUserFilter
	31, // 25: keyapis.access_management.v1.GetGroupUserListRequest.paging:type_name -> keyapis.access_management.v1.GroupUserPaging
	2,  // 26: keyapis.access_management.v1.GroupUserPaging.order_by_type:type_name -> keyapis.access_management.v1.GroupUserPaging.OrderByType
	3,  // 27: keyapis.access_management.v1.GroupUserPaging.direction_type:type_name -> keyapis.access_management.v1.GroupUserPaging.DirectionType
	11, // 28: keyapis.access_management.v1.GetGroupUserListResponse.data:type_name -> keyapis.access_management.v1.UserGroup
	32, // 29: keyapis.access_management.v1.GetGroupUserCountRequest.filter:type_name -> keyapis.access_management.v1.GroupUserFilter
	43, // 30: keyapis.access_management.v1.GetGroupClaimCountRequest.filter:type_name -> keyapis.access_management.v1.GroupClaimFilter
	43, // 31: keyapis.access_management.v1.GetGroupClaimExistRequest.filter:type_name -> keyapis.access_management.v1.GroupClaimFilter
	54, // 32: keyapis.access_management.v1.GetGroupClaimExistResponse.error:type_name -> keyapis.access_management.v1.GetGroupClaimExistResponse.Error
	43, // 33: keyapis.access_management.v1.GetGroupClaimListRequest.filter:type_name -> keyapis.access_management.v1.GroupClaimFilter
	44, // 34: keyapis.access_management.v1.GetGroupClaimListRequest.paging:type_name -> keyapis.access_management.v1.GroupClaimPaging
	10, // 35: keyapis.access_management.v1.GetGroupClaimListResponse.data:type_name -> keyapis.access_management.v1.Claim
	61, // 36: keyapis.access_management.v1.GroupClaimFilter.user_id:type_name -> google.protobuf.StringValue
	56, // 37: keyapis.access_management.v1.GroupClaimFilter.claims:type_name -> keyapis.access_management.v1.GroupClaimFilter.ClaimsEntry
	57, // 38: keyapis.access_management.v1.GroupClaimFilter.user_data:type_name -> keyapis.access_management.v1.GroupClaimFilter.UserData
	4,  // 39: keyapis.access_management.v1.GroupClaimPaging.order_by_type:type_name -> keyapis.access_management.v1.GroupClaimPaging.OrderByType
	5,  // 40: keyapis.access_management.v1.GroupClaimPaging.direction_type:type_name -> keyapis.access_management.v1.GroupClaimPaging.DirectionType
	45, // 41: keyapis.access_management.v1.GetGroupResponse.Error.validation:type_name -> keyapis.access_management.v1.ValidationError
	45, // 42: keyapis.access_management.v1.GetGroupListResponse.Error.validation:type_name -> keyapis.access_management.v1.ValidationError
	45, // 43: keyapis.access_management.v1.GetGroupCountResponse.Error.validation:type_name -> keyapis.access_management.v1.ValidationError
	45, // 44: keyapis.access_management.v1.PostGroupResponse.Error.validation:type_name -> keyapis.access_management.v1.ValidationError
	45, // 45: keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation:type_name -> keyapis.access_management.v1.ValidationError
	46, // 46: keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error:type_name -> keyapis.access_management.v1.GroupTemplateNotFoundError
	55, // 47: keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty:type_name -> keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError
	58, // 48: keyapis.access_management.v1.GroupClaimFilter.UserData.claims:type_name -> keyapis.access_management.v1.GroupClaimFilter.UserData.ClaimsEntry
	13, // 49: keyapis.access_management.v1.GroupService.GetGroup:input_type -> keyapis.access_management.v1.GetGroupRequest
	15, // 50: keyapis.access_management.v1.GroupService.GetGroupList:input_type -> keyapis.access_management.v1.GetGroupListRequest
	17, // 51: keyapis.access_management.v1.GroupService.GetGroupCount:input_type -> keyapis.access_management.v1.GetGroupCountRequest
	21, // 52: keyapis.access_management.v1.GroupService.PostGroup:input_type -> keyapis.access_management.v1.PostGroupRequest
	25, // 53: keyapis.access_management.v1.GroupService.DeleteGroup:input_type -> keyapis.access_management.v1.DeleteGroupRequest
	22, // 54: keyapis.access_management.v1.GroupService.PostGroupByTemplate:input_type -> keyapis.access_management.v1.PostGroupByTemplateRequest
	27, // 55: keyapis.access_management.v1.GroupService.PutGroupUserAttach:input_type -> keyapis.access_management.v1.PutGroupUserAttachRequest
	29, // 56: keyapis.access_management.v1.GroupService.PutGroupUserDetach:input_type -> keyapis.access_management.v1.PutGroupUserDetachRequest
	30, // 57: keyapis.access_management.v1.GroupService.GetGroupUserList:input_type -> keyapis.access_management.v1.GetGroupUserListRequest
	34, // 58: keyapis.access_management.v1.GroupService.GetGroupUserCount:input_type -> keyapis.access_management.v1.GetGroupUserCountRequest
	41, // 59: keyapis.access_management.v1.GroupService.GetGroupClaimList:input_type -> keyapis.access_management.v1.GetGroupClaimListRequest
	37, // 60: keyapis.access_management.v1.GroupService.GetGroupClaimCount:input_type -> keyapis.access_management.v1.GetGroupClaimCountRequest
	39, // 61: keyapis.access_management.v1.GroupService.GetGroupClaimExist:input_type -> keyapis.access_management.v1.GetGroupClaimExistRequest
	6,  // 62: keyapis.access_management.v1.GroupService.PutGroupApiKeyCreate:input_type -> keyapis.access_management.v1.PutGroupApiKeyCreateRequest
	8,  // 63: keyapis.access_management.v1.GroupService.PutGroupApiKeyDelete:input_type -> keyapis.access_management.v1.PutGroupApiKeyDeleteRequest
	14, // 64: keyapis.access_management.v1.GroupService.GetGroup:output_type -> keyapis.access_management.v1.GetGroupResponse
	16, // 65: keyapis.access_management.v1.GroupService.GetGroupList:output_type -> keyapis.access_management.v1.GetGroupListResponse
	18, // 66: keyapis.access_management.v1.GroupService.GetGroupCount:output_type -> keyapis.access_management.v1.GetGroupCountResponse
	23, // 67: keyapis.access_management.v1.GroupService.PostGroup:output_type -> keyapis.access_management.v1.PostGroupResponse
	26, // 68: keyapis.access_management.v1.GroupService.DeleteGroup:output_type -> keyapis.access_management.v1.DeleteGroupResponse
	24, // 69: keyapis.access_management.v1.GroupService.PostGroupByTemplate:output_type -> keyapis.access_management.v1.PostGroupByTemplateResponse
	28, // 70: keyapis.access_management.v1.GroupService.PutGroupUserAttach:output_type -> keyapis.access_management.v1.PutGroupUserAttachResponse
	36, // 71: keyapis.access_management.v1.GroupService.PutGroupUserDetach:output_type -> keyapis.access_management.v1.PutGroupUserDetachResponse
	33, // 72: keyapis.access_management.v1.GroupService.GetGroupUserList:output_type -> keyapis.access_management.v1.GetGroupUserListResponse
	35, // 73: keyapis.access_management.v1.GroupService.GetGroupUserCount:output_type -> keyapis.access_management.v1.GetGroupUserCountResponse
	42, // 74: keyapis.access_management.v1.GroupService.GetGroupClaimList:output_type -> keyapis.access_management.v1.GetGroupClaimListResponse
	38, // 75: keyapis.access_management.v1.GroupService.GetGroupClaimCount:output_type -> keyapis.access_management.v1.GetGroupClaimCountResponse
	40, // 76: keyapis.access_management.v1.GroupService.GetGroupClaimExist:output_type -> keyapis.access_management.v1.GetGroupClaimExistResponse
	7,  // 77: keyapis.access_management.v1.GroupService.PutGroupApiKeyCreate:output_type -> keyapis.access_management.v1.PutGroupApiKeyCreateResponse
	9,  // 78: keyapis.access_management.v1.GroupService.PutGroupApiKeyDelete:output_type -> keyapis.access_management.v1.PutGroupApiKeyDeleteResponse
	64, // [64:79] is the sub-list for method output_type
	49, // [49:64] is the sub-list for method input_type
	49, // [49:49] is the sub-list for extension type_name
	49, // [49:49] is the sub-list for extension extendee
	0,  // [0:49] is the sub-list for field type_name
}

func init() { file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_init() }
func file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_init() {
	if File_keyapis_access_management_v1_keyapis_access_management_group_v1_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupApiKeyCreateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupApiKeyCreateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupApiKeyDeleteRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupApiKeyDeleteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Claim); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Group); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupPaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupByTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupByTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteGroupResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupUserAttachRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupUserAttachResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupUserDetachRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupUserListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupUserPaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupUserFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupUserListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupUserCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupUserCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutGroupUserDetachResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimExistRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimExistResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupClaimFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupClaimPaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[39].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_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupTemplateNotFoundError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupCountResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostGroupByTemplateResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimExistResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGroupClaimExistResponse_Error_ClaimFilterEmptyError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupClaimFilter_UserData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*PutGroupApiKeyCreateResponse_Data)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*GetGroupResponse_Data)(nil),
		(*GetGroupResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*GetGroupListRequest_Paging)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[10].OneofWrappers = []interface{}{
		(*GetGroupListResponse_Data)(nil),
		(*GetGroupListResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*GetGroupCountResponse_Data)(nil),
		(*GetGroupCountResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*PostGroupResponse_Data)(nil),
		(*PostGroupResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*PostGroupByTemplateResponse_Data)(nil),
		(*PostGroupByTemplateResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[24].OneofWrappers = []interface{}{
		(*GetGroupUserListRequest_Paging)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[27].OneofWrappers = []interface{}{
		(*GetGroupUserListResponse_Data)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[29].OneofWrappers = []interface{}{
		(*GetGroupUserCountResponse_Data)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[32].OneofWrappers = []interface{}{
		(*GetGroupClaimCountResponse_Data)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[34].OneofWrappers = []interface{}{
		(*GetGroupClaimExistResponse_Data)(nil),
		(*GetGroupClaimExistResponse_Error_)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[35].OneofWrappers = []interface{}{
		(*GetGroupClaimListRequest_Paging)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[36].OneofWrappers = []interface{}{
		(*GetGroupClaimListResponse_Data)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[41].OneofWrappers = []interface{}{
		(*GetGroupResponse_Error_Validation)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[42].OneofWrappers = []interface{}{
		(*GetGroupListResponse_Error_Validation)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[43].OneofWrappers = []interface{}{
		(*GetGroupCountResponse_Error_Validation)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[46].OneofWrappers = []interface{}{
		(*PostGroupResponse_Error_Validation)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[47].OneofWrappers = []interface{}{
		(*PostGroupByTemplateResponse_Error_Validation)(nil),
		(*PostGroupByTemplateResponse_Error_GroupTemplateNotFoundError)(nil),
	}
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes[48].OneofWrappers = []interface{}{
		(*GetGroupClaimExistResponse_Error_ClaimFilterEmpty)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   53,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_msgTypes,
	}.Build()
	File_keyapis_access_management_v1_keyapis_access_management_group_v1_proto = out.File
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_rawDesc = nil
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_goTypes = nil
	file_keyapis_access_management_v1_keyapis_access_management_group_v1_proto_depIdxs = nil
}
