//
//Сервис упраления связями помещений и устройств

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

package keyapis_access_control_v1

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

const (
	// Значение не указано
	RoomDevicePaging_ORDER_BY_TYPE_UNKNOWN RoomDevicePaging_OrderByType = 0
	// По ОРПОНу и номеру подъезда
	RoomDevicePaging_ORPON_THEN_ENTRANCE_NUMBER RoomDevicePaging_OrderByType = 1
	// По идентификатору устройства
	RoomDevicePaging_DEVICE_ID RoomDevicePaging_OrderByType = 2
)

// Enum value maps for RoomDevicePaging_OrderByType.
var (
	RoomDevicePaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "ORPON_THEN_ENTRANCE_NUMBER",
		2: "DEVICE_ID",
	}
	RoomDevicePaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN":      0,
		"ORPON_THEN_ENTRANCE_NUMBER": 1,
		"DEVICE_ID":                  2,
	}
)

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

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

func (RoomDevicePaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes[0].Descriptor()
}

func (RoomDevicePaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes[0]
}

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

// Deprecated: Use RoomDevicePaging_OrderByType.Descriptor instead.
func (RoomDevicePaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescGZIP(), []int{6, 0}
}

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

const (
	// Значение не указано
	RoomDevicePaging_DIRECTION_TYPE_UNKNOWN RoomDevicePaging_DirectionType = 0
	// От большего к меньшему
	RoomDevicePaging_DESC RoomDevicePaging_DirectionType = 1
	// От меньшего к большему
	RoomDevicePaging_ASC RoomDevicePaging_DirectionType = 2
)

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

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

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

func (RoomDevicePaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes[1].Descriptor()
}

func (RoomDevicePaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes[1]
}

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

// Deprecated: Use RoomDevicePaging_DirectionType.Descriptor instead.
func (RoomDevicePaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescGZIP(), []int{6, 1}
}

// Связка квартиры и устройства
type RoomDevice struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор ОРПОН дома.
	// # Диапазон 1..9223372036854775807
	Orpon int64 `protobuf:"varint,1,opt,name=orpon,proto3" json:"orpon,omitempty"`
	// Номер квартиры.
	// # Диапазон: 1..4
	RoomNumber string `protobuf:"bytes,2,opt,name=room_number,json=roomNumber,proto3" json:"room_number,omitempty"`
	// Идентификатор устройства.
	// # Диапазон: 1..2147483647
	DeviceId int32 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
}

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

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

func (*RoomDevice) ProtoMessage() {}

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

func (x *RoomDevice) GetOrpon() int64 {
	if x != nil {
		return x.Orpon
	}
	return 0
}

func (x *RoomDevice) GetRoomNumber() string {
	if x != nil {
		return x.RoomNumber
	}
	return ""
}

func (x *RoomDevice) GetDeviceId() int32 {
	if x != nil {
		return x.DeviceId
	}
	return 0
}

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

	// Связь квартиры и устройства
	RoomDevice *RoomDevice `protobuf:"bytes,1,opt,name=room_device,json=roomDevice,proto3" json:"room_device,omitempty"`
}

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

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

func (*PutRoomDeviceAttachRequest) ProtoMessage() {}

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

func (x *PutRoomDeviceAttachRequest) GetRoomDevice() *RoomDevice {
	if x != nil {
		return x.RoomDevice
	}
	return nil
}

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

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

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

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

func (*PutRoomDeviceAttachResponse) ProtoMessage() {}

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

func (m *PutRoomDeviceAttachResponse) GetType() isPutRoomDeviceAttachResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PutRoomDeviceAttachResponse) GetError() *PutRoomDeviceAttachResponse_Error {
	if x, ok := x.GetType().(*PutRoomDeviceAttachResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPutRoomDeviceAttachResponse_Type interface {
	isPutRoomDeviceAttachResponse_Type()
}

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

func (*PutRoomDeviceAttachResponse_Error_) isPutRoomDeviceAttachResponse_Type() {}

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

	// Связь квартиры и устройства
	RoomDevice *RoomDevice `protobuf:"bytes,1,opt,name=room_device,json=roomDevice,proto3" json:"room_device,omitempty"`
}

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

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

func (*PutRoomDeviceDetachRequest) ProtoMessage() {}

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

func (x *PutRoomDeviceDetachRequest) GetRoomDevice() *RoomDevice {
	if x != nil {
		return x.RoomDevice
	}
	return nil
}

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

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

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

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

func (*PutRoomDeviceDetachResponse) ProtoMessage() {}

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

func (m *PutRoomDeviceDetachResponse) GetType() isPutRoomDeviceDetachResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PutRoomDeviceDetachResponse) GetError() *PutRoomDeviceDetachResponse_Error {
	if x, ok := x.GetType().(*PutRoomDeviceDetachResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPutRoomDeviceDetachResponse_Type interface {
	isPutRoomDeviceDetachResponse_Type()
}

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

func (*PutRoomDeviceDetachResponse_Error_) isPutRoomDeviceDetachResponse_Type() {}

// Фильтр связок помещение-устройство
type RoomDeviceFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По идентификаторам квартирограмм
	FlatgrammIds []int32 `protobuf:"varint,1,rep,packed,name=flatgramm_ids,json=flatgrammIds,proto3" json:"flatgramm_ids,omitempty"`
	// По ОРПОН
	Orpons []int64 `protobuf:"varint,2,rep,packed,name=orpons,proto3" json:"orpons,omitempty"`
	// По номерам квартир
	RoomNumbers []string `protobuf:"bytes,3,rep,name=room_numbers,json=roomNumbers,proto3" json:"room_numbers,omitempty"`
	// По идентификаторам привязанных устройств
	DeviceIds []int32 `protobuf:"varint,4,rep,packed,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"`
}

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

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

func (*RoomDeviceFilter) ProtoMessage() {}

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

func (x *RoomDeviceFilter) GetFlatgrammIds() []int32 {
	if x != nil {
		return x.FlatgrammIds
	}
	return nil
}

func (x *RoomDeviceFilter) GetOrpons() []int64 {
	if x != nil {
		return x.Orpons
	}
	return nil
}

func (x *RoomDeviceFilter) GetRoomNumbers() []string {
	if x != nil {
		return x.RoomNumbers
	}
	return nil
}

func (x *RoomDeviceFilter) GetDeviceIds() []int32 {
	if x != nil {
		return x.DeviceIds
	}
	return nil
}

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

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

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

func (*RoomDevicePaging) ProtoMessage() {}

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

func (x *RoomDevicePaging) GetOrderByType() RoomDevicePaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return RoomDevicePaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *RoomDevicePaging) GetDirectionType() RoomDevicePaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return RoomDevicePaging_DIRECTION_TYPE_UNKNOWN
}

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

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

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

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

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

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

func (*GetRoomDeviceListRequest) ProtoMessage() {}

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

func (x *GetRoomDeviceListRequest) GetFilter() *RoomDeviceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetRoomDeviceListRequest) GetPagination() isGetRoomDeviceListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetRoomDeviceListRequest) GetPaging() *RoomDevicePaging {
	if x, ok := x.GetPagination().(*GetRoomDeviceListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetRoomDeviceListRequest_Pagination interface {
	isGetRoomDeviceListRequest_Pagination()
}

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

func (*GetRoomDeviceListRequest_Paging) isGetRoomDeviceListRequest_Pagination() {}

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

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

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

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

func (*GetRoomDeviceListResponse) ProtoMessage() {}

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

func (m *GetRoomDeviceListResponse) GetType() isGetRoomDeviceListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetRoomDeviceListResponse) GetData() *RoomDevice {
	if x, ok := x.GetType().(*GetRoomDeviceListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetRoomDeviceListResponse) GetError() *GetRoomDeviceListResponse_Error {
	if x, ok := x.GetType().(*GetRoomDeviceListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetRoomDeviceListResponse_Type interface {
	isGetRoomDeviceListResponse_Type()
}

type GetRoomDeviceListResponse_Data struct {
	// Связка помещение-устройство
	Data *RoomDevice `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*GetRoomDeviceListResponse_Data) isGetRoomDeviceListResponse_Type() {}

func (*GetRoomDeviceListResponse_Error_) isGetRoomDeviceListResponse_Type() {}

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

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

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

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

func (*GetRoomDeviceCountRequest) ProtoMessage() {}

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

func (x *GetRoomDeviceCountRequest) GetFilter() *RoomDeviceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

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

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

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

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

func (*GetRoomDeviceCountResponse) ProtoMessage() {}

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

func (m *GetRoomDeviceCountResponse) GetType() isGetRoomDeviceCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

type isGetRoomDeviceCountResponse_Type interface {
	isGetRoomDeviceCountResponse_Type()
}

type GetRoomDeviceCountResponse_Data struct {
	// Количество
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

func (*GetRoomDeviceCountResponse_Data) isGetRoomDeviceCountResponse_Type() {}

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

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

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

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

func (*PutRoomDeviceAttachResponse_Error) ProtoMessage() {}

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

func (m *PutRoomDeviceAttachResponse_Error) GetReason() isPutRoomDeviceAttachResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isPutRoomDeviceAttachResponse_Error_Reason interface {
	isPutRoomDeviceAttachResponse_Error_Reason()
}

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

func (*PutRoomDeviceAttachResponse_Error_Validation) isPutRoomDeviceAttachResponse_Error_Reason() {}

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

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

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

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

func (*PutRoomDeviceDetachResponse_Error) ProtoMessage() {}

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

func (m *PutRoomDeviceDetachResponse_Error) GetReason() isPutRoomDeviceDetachResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isPutRoomDeviceDetachResponse_Error_Reason interface {
	isPutRoomDeviceDetachResponse_Error_Reason()
}

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

func (*PutRoomDeviceDetachResponse_Error_Validation) isPutRoomDeviceDetachResponse_Error_Reason() {}

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

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

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

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

func (*GetRoomDeviceListResponse_Error) ProtoMessage() {}

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

func (m *GetRoomDeviceListResponse_Error) GetReason() isGetRoomDeviceListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetRoomDeviceListResponse_Error_Reason interface {
	isGetRoomDeviceListResponse_Error_Reason()
}

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

func (*GetRoomDeviceListResponse_Error_Validation) isGetRoomDeviceListResponse_Error_Reason() {}

var File_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto protoreflect.FileDescriptor

var file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDesc = []byte{
	0x0a, 0x45, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76,
	0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 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, 0x48, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x0a, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x72, 0x70,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6f,
	0x72, 0x70, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a,
	0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x1a,
	0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 0x74,
	0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x72, 0x6f,
	0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x6f, 0x6f,
	0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x1b, 0x50, 0x75, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x5f, 0x0a,
	0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 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, 0x69, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f,
	0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x22, 0xdc, 0x01, 0x0a, 0x1b, 0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x54, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74,
	0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x5f, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x12, 0x4c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 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, 0x91, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x74, 0x67, 0x72, 0x61,
	0x6d, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x6c,
	0x61, 0x74, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72,
	0x70, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x72, 0x70, 0x6f,
	0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x75,
	0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x49, 0x64, 0x73, 0x22, 0x98, 0x03, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x0d, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f,
	0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x60, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x57, 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, 0x1e, 0x0a, 0x1a, 0x4f, 0x52, 0x50, 0x4f, 0x4e, 0x5f, 0x54, 0x48, 0x45, 0x4e, 0x5f, 0x45,
	0x4e, 0x54, 0x52, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01,
	0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 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,
	0xb4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f,
	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f,
	0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x95, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x6f,
	0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x12, 0x52, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x5f, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c,
	0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 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, 0x65,
	0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e,
	0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x32, 0xfd, 0x06, 0x0a, 0x11, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfd, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12,
	0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 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, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x1a, 0x6f, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72,
	0x6f, 0x6f, 0x6d, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d,
	0x2f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0xfd, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12,
	0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 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, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x1a, 0x6f, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72,
	0x6f, 0x6f, 0x6d, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d,
	0x2f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x12, 0xb1, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52,
	0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f,
	0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29,
	0x12, 0x27, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x01, 0x12, 0xb3, 0x01, 0x0a, 0x12,
	0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
	0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x42, 0xcd, 0x01, 0x0a, 0x1c, 0x72, 0x75, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x42, 0x1b, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48,
	0x03, 0x50, 0x00, 0x5a, 0x1a, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x61, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x76, 0x31, 0xd8,
	0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x16, 0x4b, 0x45, 0x59, 0x41, 0x50, 0x49, 0x53, 0x41,
	0x43, 0x43, 0x45, 0x53, 0x53, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x56, 0x31, 0xaa, 0x02,
	0x18, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x4b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1a, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a,
	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x3a, 0x56,
	0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescOnce sync.Once
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescData = file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDesc
)

func file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescGZIP() []byte {
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescData)
	})
	return file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDescData
}

var file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_goTypes = []interface{}{
	(RoomDevicePaging_OrderByType)(0),         // 0: keyapis.access_control.v1.RoomDevicePaging.OrderByType
	(RoomDevicePaging_DirectionType)(0),       // 1: keyapis.access_control.v1.RoomDevicePaging.DirectionType
	(*RoomDevice)(nil),                        // 2: keyapis.access_control.v1.RoomDevice
	(*PutRoomDeviceAttachRequest)(nil),        // 3: keyapis.access_control.v1.PutRoomDeviceAttachRequest
	(*PutRoomDeviceAttachResponse)(nil),       // 4: keyapis.access_control.v1.PutRoomDeviceAttachResponse
	(*PutRoomDeviceDetachRequest)(nil),        // 5: keyapis.access_control.v1.PutRoomDeviceDetachRequest
	(*PutRoomDeviceDetachResponse)(nil),       // 6: keyapis.access_control.v1.PutRoomDeviceDetachResponse
	(*RoomDeviceFilter)(nil),                  // 7: keyapis.access_control.v1.RoomDeviceFilter
	(*RoomDevicePaging)(nil),                  // 8: keyapis.access_control.v1.RoomDevicePaging
	(*GetRoomDeviceListRequest)(nil),          // 9: keyapis.access_control.v1.GetRoomDeviceListRequest
	(*GetRoomDeviceListResponse)(nil),         // 10: keyapis.access_control.v1.GetRoomDeviceListResponse
	(*GetRoomDeviceCountRequest)(nil),         // 11: keyapis.access_control.v1.GetRoomDeviceCountRequest
	(*GetRoomDeviceCountResponse)(nil),        // 12: keyapis.access_control.v1.GetRoomDeviceCountResponse
	(*PutRoomDeviceAttachResponse_Error)(nil), // 13: keyapis.access_control.v1.PutRoomDeviceAttachResponse.Error
	(*PutRoomDeviceDetachResponse_Error)(nil), // 14: keyapis.access_control.v1.PutRoomDeviceDetachResponse.Error
	(*GetRoomDeviceListResponse_Error)(nil),   // 15: keyapis.access_control.v1.GetRoomDeviceListResponse.Error
	(*ValidationError)(nil),                   // 16: keyapis.access_control.v1.ValidationError
}
var file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_depIdxs = []int32{
	2,  // 0: keyapis.access_control.v1.PutRoomDeviceAttachRequest.room_device:type_name -> keyapis.access_control.v1.RoomDevice
	13, // 1: keyapis.access_control.v1.PutRoomDeviceAttachResponse.error:type_name -> keyapis.access_control.v1.PutRoomDeviceAttachResponse.Error
	2,  // 2: keyapis.access_control.v1.PutRoomDeviceDetachRequest.room_device:type_name -> keyapis.access_control.v1.RoomDevice
	14, // 3: keyapis.access_control.v1.PutRoomDeviceDetachResponse.error:type_name -> keyapis.access_control.v1.PutRoomDeviceDetachResponse.Error
	0,  // 4: keyapis.access_control.v1.RoomDevicePaging.order_by_type:type_name -> keyapis.access_control.v1.RoomDevicePaging.OrderByType
	1,  // 5: keyapis.access_control.v1.RoomDevicePaging.direction_type:type_name -> keyapis.access_control.v1.RoomDevicePaging.DirectionType
	7,  // 6: keyapis.access_control.v1.GetRoomDeviceListRequest.filter:type_name -> keyapis.access_control.v1.RoomDeviceFilter
	8,  // 7: keyapis.access_control.v1.GetRoomDeviceListRequest.paging:type_name -> keyapis.access_control.v1.RoomDevicePaging
	2,  // 8: keyapis.access_control.v1.GetRoomDeviceListResponse.data:type_name -> keyapis.access_control.v1.RoomDevice
	15, // 9: keyapis.access_control.v1.GetRoomDeviceListResponse.error:type_name -> keyapis.access_control.v1.GetRoomDeviceListResponse.Error
	7,  // 10: keyapis.access_control.v1.GetRoomDeviceCountRequest.filter:type_name -> keyapis.access_control.v1.RoomDeviceFilter
	16, // 11: keyapis.access_control.v1.PutRoomDeviceAttachResponse.Error.validation:type_name -> keyapis.access_control.v1.ValidationError
	16, // 12: keyapis.access_control.v1.PutRoomDeviceDetachResponse.Error.validation:type_name -> keyapis.access_control.v1.ValidationError
	16, // 13: keyapis.access_control.v1.GetRoomDeviceListResponse.Error.validation:type_name -> keyapis.access_control.v1.ValidationError
	3,  // 14: keyapis.access_control.v1.RoomDeviceService.PutRoomDeviceAttach:input_type -> keyapis.access_control.v1.PutRoomDeviceAttachRequest
	5,  // 15: keyapis.access_control.v1.RoomDeviceService.PutRoomDeviceDetach:input_type -> keyapis.access_control.v1.PutRoomDeviceDetachRequest
	9,  // 16: keyapis.access_control.v1.RoomDeviceService.GetRoomDeviceList:input_type -> keyapis.access_control.v1.GetRoomDeviceListRequest
	11, // 17: keyapis.access_control.v1.RoomDeviceService.GetRoomDeviceCount:input_type -> keyapis.access_control.v1.GetRoomDeviceCountRequest
	4,  // 18: keyapis.access_control.v1.RoomDeviceService.PutRoomDeviceAttach:output_type -> keyapis.access_control.v1.PutRoomDeviceAttachResponse
	6,  // 19: keyapis.access_control.v1.RoomDeviceService.PutRoomDeviceDetach:output_type -> keyapis.access_control.v1.PutRoomDeviceDetachResponse
	10, // 20: keyapis.access_control.v1.RoomDeviceService.GetRoomDeviceList:output_type -> keyapis.access_control.v1.GetRoomDeviceListResponse
	12, // 21: keyapis.access_control.v1.RoomDeviceService.GetRoomDeviceCount:output_type -> keyapis.access_control.v1.GetRoomDeviceCountResponse
	18, // [18:22] is the sub-list for method output_type
	14, // [14:18] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_init() }
func file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_init() {
	if File_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto != nil {
		return
	}
	file_keyapis_access_control_v1_keyapis_access_control_access_control_v1_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomDevice); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceAttachRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceAttachResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceDetachRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceDetachResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomDeviceFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomDevicePaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoomDeviceListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoomDeviceListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoomDeviceCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoomDeviceCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceAttachResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutRoomDeviceDetachResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoomDeviceListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*PutRoomDeviceAttachResponse_Error_)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[4].OneofWrappers = []interface{}{
		(*PutRoomDeviceDetachResponse_Error_)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[7].OneofWrappers = []interface{}{
		(*GetRoomDeviceListRequest_Paging)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*GetRoomDeviceListResponse_Data)(nil),
		(*GetRoomDeviceListResponse_Error_)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[10].OneofWrappers = []interface{}{
		(*GetRoomDeviceCountResponse_Data)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*PutRoomDeviceAttachResponse_Error_Validation)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*PutRoomDeviceDetachResponse_Error_Validation)(nil),
	}
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes[13].OneofWrappers = []interface{}{
		(*GetRoomDeviceListResponse_Error_Validation)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   14,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_msgTypes,
	}.Build()
	File_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto = out.File
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_rawDesc = nil
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_goTypes = nil
	file_keyapis_access_control_v1_keyapis_access_control_room_device_v1_proto_depIdxs = nil
}
