# Протокол

## Оглавление

- [keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto](#keyapis_access_control_v1_keyapis_access_control_room_device_v1-proto)
    - [RoomDeviceService](#keyapis-access_control-v1-RoomDeviceService)
  
    - [GetRoomDeviceCountRequest](#keyapis-access_control-v1-GetRoomDeviceCountRequest)
    - [GetRoomDeviceCountResponse](#keyapis-access_control-v1-GetRoomDeviceCountResponse)
    - [GetRoomDeviceListRequest](#keyapis-access_control-v1-GetRoomDeviceListRequest)
    - [GetRoomDeviceListResponse](#keyapis-access_control-v1-GetRoomDeviceListResponse)
    - [GetRoomDeviceListResponse.Error](#keyapis-access_control-v1-GetRoomDeviceListResponse-Error)
    - [PutRoomDeviceAttachRequest](#keyapis-access_control-v1-PutRoomDeviceAttachRequest)
    - [PutRoomDeviceAttachResponse](#keyapis-access_control-v1-PutRoomDeviceAttachResponse)
    - [PutRoomDeviceAttachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error)
    - [PutRoomDeviceDetachRequest](#keyapis-access_control-v1-PutRoomDeviceDetachRequest)
    - [PutRoomDeviceDetachResponse](#keyapis-access_control-v1-PutRoomDeviceDetachResponse)
    - [PutRoomDeviceDetachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error)
    - [RoomDevice](#keyapis-access_control-v1-RoomDevice)
    - [RoomDeviceFilter](#keyapis-access_control-v1-RoomDeviceFilter)
    - [RoomDevicePaging](#keyapis-access_control-v1-RoomDevicePaging)
  
    - [RoomDevicePaging.DirectionType](#keyapis-access_control-v1-RoomDevicePaging-DirectionType)
    - [RoomDevicePaging.OrderByType](#keyapis-access_control-v1-RoomDevicePaging-OrderByType)
  


## [Схема классов](/svg/protos/key/keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto.svg)
<a href="/svg/protos/key/keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto.svg"><img src="/svg/protos/key/keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto.svg" alt="/svg/protos/key/keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto.svg" style="height:100%;"></a>




<a name="keyapis_access_control_v1_keyapis_access_control_room_device_v1-proto"></a>

## [keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto](/protos/key/keyapis/access_control/v1/keyapis_access_control_room_device_v1.proto)
Сервис упраления связями помещений и устройств


<a name="keyapis-access_control-v1-RoomDeviceService"></a>

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

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="keyapis-access_control-v1-PutRoomDeviceAttach"></a> [PutRoomDeviceAttach](#keyapis-access_control-v1-PutRoomDeviceAttach) | Метод создания связи помещения и устройства. Метод доступен для: admin, service | [keyapis.access_control.v1.PutRoomDeviceAttachRequest](#keyapis-access_control-v1-PutRoomDeviceAttachRequest) | [keyapis.access_control.v1.PutRoomDeviceAttachResponse](#keyapis-access_control-v1-PutRoomDeviceAttachResponse) |
| <a id="keyapis-access_control-v1-PutRoomDeviceDetach"></a> [PutRoomDeviceDetach](#keyapis-access_control-v1-PutRoomDeviceDetach) | Метод удаления связи помещения и устройства. Метод доступен для: admin, service | [keyapis.access_control.v1.PutRoomDeviceDetachRequest](#keyapis-access_control-v1-PutRoomDeviceDetachRequest) | [keyapis.access_control.v1.PutRoomDeviceDetachResponse](#keyapis-access_control-v1-PutRoomDeviceDetachResponse) |
| <a id="keyapis-access_control-v1-GetRoomDeviceList"></a> [GetRoomDeviceList](#keyapis-access_control-v1-GetRoomDeviceList) | Метод получения списка связок помещение-устройство. Метод доступен для: admin, service, bti, ltp_first | [keyapis.access_control.v1.GetRoomDeviceListRequest](#keyapis-access_control-v1-GetRoomDeviceListRequest) | [keyapis.access_control.v1.GetRoomDeviceListResponse](#keyapis-access_control-v1-GetRoomDeviceListResponse) stream |
| <a id="keyapis-access_control-v1-GetRoomDeviceCount"></a> [GetRoomDeviceCount](#keyapis-access_control-v1-GetRoomDeviceCount) | Метод получения количества связок помещение-устройство. Метод доступен для: admin, service, bti, ltp_first | [keyapis.access_control.v1.GetRoomDeviceCountRequest](#keyapis-access_control-v1-GetRoomDeviceCountRequest) | [keyapis.access_control.v1.GetRoomDeviceCountResponse](#keyapis-access_control-v1-GetRoomDeviceCountResponse) |

 <!-- end services -->


<a name="keyapis-access_control-v1-GetRoomDeviceCountRequest"></a>


### [GetRoomDeviceCountRequest](#keyapis-access_control-v1-GetRoomDeviceCountRequest)
 Запрос получения количества домов


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-GetRoomDeviceCountRequest-filter"></a> [filter](#keyapis-access_control-v1-GetRoomDeviceCountRequest-filter) | Фильтр |    [keyapis.access_control.v1.RoomDeviceFilter](#keyapis-access_control-v1-RoomDeviceFilter) | REQUIRED|






<a name="keyapis-access_control-v1-GetRoomDeviceCountResponse"></a>


### [GetRoomDeviceCountResponse](#keyapis-access_control-v1-GetRoomDeviceCountResponse)
 Ответ на запрос получения количества домов


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-GetRoomDeviceCountResponse-data"></a> [data](#keyapis-access_control-v1-GetRoomDeviceCountResponse-data) | Количество |  optional  [int32](#scalar-types) | <nil>|






<a name="keyapis-access_control-v1-GetRoomDeviceListRequest"></a>


### [GetRoomDeviceListRequest](#keyapis-access_control-v1-GetRoomDeviceListRequest)
 Запрос на получение связок помещение-устройство


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-GetRoomDeviceListRequest-filter"></a> [filter](#keyapis-access_control-v1-GetRoomDeviceListRequest-filter) | Фильтр по связкам помещение-устройство |    [keyapis.access_control.v1.RoomDeviceFilter](#keyapis-access_control-v1-RoomDeviceFilter) | <nil>|
| <a id="keyapis-access_control-v1-GetRoomDeviceListRequest-paging"></a> [paging](#keyapis-access_control-v1-GetRoomDeviceListRequest-paging) | Стандартный постраничный вывод |  optional  [keyapis.access_control.v1.RoomDevicePaging](#keyapis-access_control-v1-RoomDevicePaging) | <nil>|






<a name="keyapis-access_control-v1-GetRoomDeviceListResponse"></a>


### [GetRoomDeviceListResponse](#keyapis-access_control-v1-GetRoomDeviceListResponse)
 Ответ на запрос на получение списка связок помещение-устройство


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-GetRoomDeviceListResponse-data"></a> [data](#keyapis-access_control-v1-GetRoomDeviceListResponse-data) | Связка помещение-устройство |  optional  [keyapis.access_control.v1.RoomDevice](#keyapis-access_control-v1-RoomDevice) | <nil>|
| <a id="keyapis-access_control-v1-GetRoomDeviceListResponse-error"></a> [error](#keyapis-access_control-v1-GetRoomDeviceListResponse-error) | Ошибка |  optional  [keyapis.access_control.v1.GetRoomDeviceListResponse.Error](#keyapis-access_control-v1-GetRoomDeviceListResponse-Error) | <nil>|






<a name="keyapis-access_control-v1-GetRoomDeviceListResponse-Error"></a>


### [GetRoomDeviceListResponse.Error](#keyapis-access_control-v1-GetRoomDeviceListResponse-Error)
 Ошибка запроса на получение списка связок помещение-устройство


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-GetRoomDeviceListResponse-Error-validation"></a> [validation](#keyapis-access_control-v1-GetRoomDeviceListResponse-Error-validation) | Ошибка валидации |  optional  [keyapis.access_control.v1.ValidationError](#keyapis-access_control-v1-ValidationError) | <nil>|






<a name="keyapis-access_control-v1-PutRoomDeviceAttachRequest"></a>


### [PutRoomDeviceAttachRequest](#keyapis-access_control-v1-PutRoomDeviceAttachRequest)
 Запрос создания связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceAttachRequest-room_device"></a> [room_device](#keyapis-access_control-v1-PutRoomDeviceAttachRequest-room_device) | Связь квартиры и устройства |    [keyapis.access_control.v1.RoomDevice](#keyapis-access_control-v1-RoomDevice) | REQUIRED|






<a name="keyapis-access_control-v1-PutRoomDeviceAttachResponse"></a>


### [PutRoomDeviceAttachResponse](#keyapis-access_control-v1-PutRoomDeviceAttachResponse)
 Ответ на запрос сохранения связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceAttachResponse-error"></a> [error](#keyapis-access_control-v1-PutRoomDeviceAttachResponse-error) | Ошибка |  optional  [keyapis.access_control.v1.PutRoomDeviceAttachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error) | <nil>|






<a name="keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error"></a>


### [PutRoomDeviceAttachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error)
 Ошибка запроса на создание связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error-validation"></a> [validation](#keyapis-access_control-v1-PutRoomDeviceAttachResponse-Error-validation) | Ошибка валидации |  optional  [keyapis.access_control.v1.ValidationError](#keyapis-access_control-v1-ValidationError) | <nil>|






<a name="keyapis-access_control-v1-PutRoomDeviceDetachRequest"></a>


### [PutRoomDeviceDetachRequest](#keyapis-access_control-v1-PutRoomDeviceDetachRequest)
 Запрос удаления связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceDetachRequest-room_device"></a> [room_device](#keyapis-access_control-v1-PutRoomDeviceDetachRequest-room_device) | Связь квартиры и устройства |    [keyapis.access_control.v1.RoomDevice](#keyapis-access_control-v1-RoomDevice) | REQUIRED|






<a name="keyapis-access_control-v1-PutRoomDeviceDetachResponse"></a>


### [PutRoomDeviceDetachResponse](#keyapis-access_control-v1-PutRoomDeviceDetachResponse)
 Ответ на запрос удаления связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceDetachResponse-error"></a> [error](#keyapis-access_control-v1-PutRoomDeviceDetachResponse-error) | Ошибка |  optional  [keyapis.access_control.v1.PutRoomDeviceDetachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error) | <nil>|






<a name="keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error"></a>


### [PutRoomDeviceDetachResponse.Error](#keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error)
 Ошибка запроса на удаления связи квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error-validation"></a> [validation](#keyapis-access_control-v1-PutRoomDeviceDetachResponse-Error-validation) | Ошибка валидации |  optional  [keyapis.access_control.v1.ValidationError](#keyapis-access_control-v1-ValidationError) | <nil>|






<a name="keyapis-access_control-v1-RoomDevice"></a>


### [RoomDevice](#keyapis-access_control-v1-RoomDevice)
 Связка квартиры и устройства


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-RoomDevice-orpon"></a> [orpon](#keyapis-access_control-v1-RoomDevice-orpon) | Идентификатор ОРПОН дома. # Диапазон 1..9223372036854775807 |    [int64](#scalar-types) | REQUIRED|
| <a id="keyapis-access_control-v1-RoomDevice-room_number"></a> [room_number](#keyapis-access_control-v1-RoomDevice-room_number) | Номер квартиры. # Диапазон: 1..4 |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-access_control-v1-RoomDevice-device_id"></a> [device_id](#keyapis-access_control-v1-RoomDevice-device_id) | Идентификатор устройства. # Диапазон: 1..2147483647 |    [int32](#scalar-types) | REQUIRED|






<a name="keyapis-access_control-v1-RoomDeviceFilter"></a>


### [RoomDeviceFilter](#keyapis-access_control-v1-RoomDeviceFilter)
 Фильтр связок помещение-устройство


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-RoomDeviceFilter-flatgramm_ids"></a> [flatgramm_ids](#keyapis-access_control-v1-RoomDeviceFilter-flatgramm_ids) | По идентификаторам квартирограмм |  repeated  [int32](#scalar-types) | <nil>|
| <a id="keyapis-access_control-v1-RoomDeviceFilter-orpons"></a> [orpons](#keyapis-access_control-v1-RoomDeviceFilter-orpons) | По ОРПОН |  repeated  [int64](#scalar-types) | <nil>|
| <a id="keyapis-access_control-v1-RoomDeviceFilter-room_numbers"></a> [room_numbers](#keyapis-access_control-v1-RoomDeviceFilter-room_numbers) | По номерам квартир |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-access_control-v1-RoomDeviceFilter-device_ids"></a> [device_ids](#keyapis-access_control-v1-RoomDeviceFilter-device_ids) | По идентификаторам привязанных устройств |  repeated  [int32](#scalar-types) | <nil>|






<a name="keyapis-access_control-v1-RoomDevicePaging"></a>


### [RoomDevicePaging](#keyapis-access_control-v1-RoomDevicePaging)
 Постраничный вывод


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-access_control-v1-RoomDevicePaging-order_by_type"></a> [order_by_type](#keyapis-access_control-v1-RoomDevicePaging-order_by_type) | Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER |    [keyapis.access_control.v1.RoomDevicePaging.OrderByType](#keyapis-access_control-v1-RoomDevicePaging-OrderByType) | <nil>|
| <a id="keyapis-access_control-v1-RoomDevicePaging-direction_type"></a> [direction_type](#keyapis-access_control-v1-RoomDevicePaging-direction_type) | Тип направления сортировки. # По умолчанию: DESC |    [keyapis.access_control.v1.RoomDevicePaging.DirectionType](#keyapis-access_control-v1-RoomDevicePaging-DirectionType) | <nil>|
| <a id="keyapis-access_control-v1-RoomDevicePaging-limit"></a> [limit](#keyapis-access_control-v1-RoomDevicePaging-limit) | Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 |    [int32](#scalar-types) | <nil>|
| <a id="keyapis-access_control-v1-RoomDevicePaging-offset"></a> [offset](#keyapis-access_control-v1-RoomDevicePaging-offset) | Сдвиг. # Диапазон: 0..2147483647 |    [int32](#scalar-types) | <nil>|





 <!-- end messages -->



<a name="keyapis-access_control-v1-RoomDevicePaging-DirectionType"></a>

### [RoomDevicePaging.DirectionType](#keyapis-access_control-v1-RoomDevicePaging-DirectionType)
 Справочник типов направлений сортировки.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-access_control-v1-RoomDevicePaging-DirectionType-DIRECTION_TYPE_UNKNOWN"></a> [DIRECTION_TYPE_UNKNOWN](#keyapis-access_control-v1-RoomDevicePaging-DirectionType-DIRECTION_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-access_control-v1-RoomDevicePaging-DirectionType-DESC"></a> [DESC](#keyapis-access_control-v1-RoomDevicePaging-DirectionType-DESC) | От большего к меньшему |
| 2 | <a id="keyapis-access_control-v1-RoomDevicePaging-DirectionType-ASC"></a> [ASC](#keyapis-access_control-v1-RoomDevicePaging-DirectionType-ASC) | От меньшего к большему |




<a name="keyapis-access_control-v1-RoomDevicePaging-OrderByType"></a>

### [RoomDevicePaging.OrderByType](#keyapis-access_control-v1-RoomDevicePaging-OrderByType)
 Справочник типов значений сортировки.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-access_control-v1-RoomDevicePaging-OrderByType-ORDER_BY_TYPE_UNKNOWN"></a> [ORDER_BY_TYPE_UNKNOWN](#keyapis-access_control-v1-RoomDevicePaging-OrderByType-ORDER_BY_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-access_control-v1-RoomDevicePaging-OrderByType-ORPON_THEN_ENTRANCE_NUMBER"></a> [ORPON_THEN_ENTRANCE_NUMBER](#keyapis-access_control-v1-RoomDevicePaging-OrderByType-ORPON_THEN_ENTRANCE_NUMBER) | По ОРПОНу и номеру подъезда |
| 2 | <a id="keyapis-access_control-v1-RoomDevicePaging-OrderByType-DEVICE_ID"></a> [DEVICE_ID](#keyapis-access_control-v1-RoomDevicePaging-OrderByType-DEVICE_ID) | По идентификатору устройства |


 <!-- end enums -->

 <!-- end HasExtensions -->



## Скалярные типы значений
<a id="scalar-types"></a>

| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
| ----------- | ---------- | ------ | -- | ---- | -- | --- | ---- | --- |
| [double](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float64 | Float | double | double | double | float |
| [float](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float32 | Float | float | float | float | float |
| [int32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [int64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [uint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [uint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| [sint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [fixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [fixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long | uint64 | Bignum | ulong | uint64 | long | integer/string |
| [sfixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sfixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [bool](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean |
| [string](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| [bytes](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |

