# Протокол

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

- [deviceapis/device/v1/deviceapis_device_room_v1.proto](#deviceapis_device_v1_deviceapis_device_room_v1-proto)
    - [RoomService](#deviceapis-device-v1-RoomService)
  
    - [DeleteRoomListRequest](#deviceapis-device-v1-DeleteRoomListRequest)
    - [DeleteRoomListResponse](#deviceapis-device-v1-DeleteRoomListResponse)
    - [DeleteRoomListResponse.Error](#deviceapis-device-v1-DeleteRoomListResponse-Error)
    - [DeleteRoomRequest](#deviceapis-device-v1-DeleteRoomRequest)
    - [DeleteRoomResponse](#deviceapis-device-v1-DeleteRoomResponse)
    - [DeleteRoomResponse.Error](#deviceapis-device-v1-DeleteRoomResponse-Error)
    - [GetRoomCountRequest](#deviceapis-device-v1-GetRoomCountRequest)
    - [GetRoomCountResponse](#deviceapis-device-v1-GetRoomCountResponse)
    - [GetRoomListRequest](#deviceapis-device-v1-GetRoomListRequest)
    - [GetRoomListResponse](#deviceapis-device-v1-GetRoomListResponse)
    - [GetRoomRequest](#deviceapis-device-v1-GetRoomRequest)
    - [GetRoomResponse](#deviceapis-device-v1-GetRoomResponse)
    - [Room](#deviceapis-device-v1-Room)
    - [RoomFilter](#deviceapis-device-v1-RoomFilter)
    - [RoomPaging](#deviceapis-device-v1-RoomPaging)
    - [SaveRoomListRequest](#deviceapis-device-v1-SaveRoomListRequest)
    - [SaveRoomListResponse](#deviceapis-device-v1-SaveRoomListResponse)
    - [SaveRoomListResponse.Error](#deviceapis-device-v1-SaveRoomListResponse-Error)
    - [SaveRoomRequest](#deviceapis-device-v1-SaveRoomRequest)
    - [SaveRoomResponse](#deviceapis-device-v1-SaveRoomResponse)
    - [SaveRoomResponse.Error](#deviceapis-device-v1-SaveRoomResponse-Error)
  


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




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

## [deviceapis/device/v1/deviceapis_device_room_v1.proto](/protos/key/deviceapis/device/v1/deviceapis_device_room_v1.proto)
Сервис управления настройками квартир


<a name="deviceapis-device-v1-RoomService"></a>

### RoomService
 Сервис управления настройками квартир

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="deviceapis-device-v1-DeleteRoom"></a> [DeleteRoom](#deviceapis-device-v1-DeleteRoom) | Метод удаления настроек квартиры | [deviceapis.device.v1.DeleteRoomRequest](#deviceapis-device-v1-DeleteRoomRequest) | [deviceapis.device.v1.DeleteRoomResponse](#deviceapis-device-v1-DeleteRoomResponse) |
| <a id="deviceapis-device-v1-DeleteRoomList"></a> [DeleteRoomList](#deviceapis-device-v1-DeleteRoomList) | Метод удаления списка настроек квартиры. При отсутствующем или пустом фильтре удаляются все квартиры | [deviceapis.device.v1.DeleteRoomListRequest](#deviceapis-device-v1-DeleteRoomListRequest) | [deviceapis.device.v1.DeleteRoomListResponse](#deviceapis-device-v1-DeleteRoomListResponse) |
| <a id="deviceapis-device-v1-GetRoom"></a> [GetRoom](#deviceapis-device-v1-GetRoom) | Метод получения настроек квартиры | [deviceapis.device.v1.GetRoomRequest](#deviceapis-device-v1-GetRoomRequest) | [deviceapis.device.v1.GetRoomResponse](#deviceapis-device-v1-GetRoomResponse) |
| <a id="deviceapis-device-v1-GetRoomCount"></a> [GetRoomCount](#deviceapis-device-v1-GetRoomCount) | Метод получения количества квартир | [deviceapis.device.v1.GetRoomCountRequest](#deviceapis-device-v1-GetRoomCountRequest) | [deviceapis.device.v1.GetRoomCountResponse](#deviceapis-device-v1-GetRoomCountResponse) |
| <a id="deviceapis-device-v1-GetRoomList"></a> [GetRoomList](#deviceapis-device-v1-GetRoomList) | Метод получения списка настроек квартир | [deviceapis.device.v1.GetRoomListRequest](#deviceapis-device-v1-GetRoomListRequest) | [deviceapis.device.v1.GetRoomListResponse](#deviceapis-device-v1-GetRoomListResponse) |
| <a id="deviceapis-device-v1-SaveRoom"></a> [SaveRoom](#deviceapis-device-v1-SaveRoom) | Метод сохранения настроек квартиры. Поддерживает создание и обновление | [deviceapis.device.v1.SaveRoomRequest](#deviceapis-device-v1-SaveRoomRequest) | [deviceapis.device.v1.SaveRoomResponse](#deviceapis-device-v1-SaveRoomResponse) |
| <a id="deviceapis-device-v1-SaveRoomList"></a> [SaveRoomList](#deviceapis-device-v1-SaveRoomList) | Метод сохранения списка настроек квартиры | [deviceapis.device.v1.SaveRoomListRequest](#deviceapis-device-v1-SaveRoomListRequest) | [deviceapis.device.v1.SaveRoomListResponse](#deviceapis-device-v1-SaveRoomListResponse) |

 <!-- end services -->


<a name="deviceapis-device-v1-DeleteRoomListRequest"></a>


### [DeleteRoomListRequest](#deviceapis-device-v1-DeleteRoomListRequest)
 Запрос удаления списка настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-DeleteRoomListRequest-filter"></a> [filter](#deviceapis-device-v1-DeleteRoomListRequest-filter) | Фильтр квартир. При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ |    [deviceapis.device.v1.RoomFilter](#deviceapis-device-v1-RoomFilter) | <nil>|






<a name="deviceapis-device-v1-DeleteRoomListResponse"></a>


### [DeleteRoomListResponse](#deviceapis-device-v1-DeleteRoomListResponse)
 Ответ на запрос удаления списка настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-DeleteRoomListResponse-data"></a> [data](#deviceapis-device-v1-DeleteRoomListResponse-data) | Всего количество удаленных |  optional  [int32](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-DeleteRoomListResponse-error"></a> [error](#deviceapis-device-v1-DeleteRoomListResponse-error) | Ошибка |  optional  [deviceapis.device.v1.DeleteRoomListResponse.Error](#deviceapis-device-v1-DeleteRoomListResponse-Error) | <nil>|






<a name="deviceapis-device-v1-DeleteRoomListResponse-Error"></a>


### [DeleteRoomListResponse.Error](#deviceapis-device-v1-DeleteRoomListResponse-Error)
 Ошибка запроса


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






<a name="deviceapis-device-v1-DeleteRoomRequest"></a>


### [DeleteRoomRequest](#deviceapis-device-v1-DeleteRoomRequest)
 Запрос удаления настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-DeleteRoomRequest-room_number"></a> [room_number](#deviceapis-device-v1-DeleteRoomRequest-room_number) | Номер квартиры |    [string](#scalar-types) | REQUIRED|






<a name="deviceapis-device-v1-DeleteRoomResponse"></a>


### [DeleteRoomResponse](#deviceapis-device-v1-DeleteRoomResponse)
 Ответ на запрос удаления настроек квартиры


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






<a name="deviceapis-device-v1-DeleteRoomResponse-Error"></a>


### [DeleteRoomResponse.Error](#deviceapis-device-v1-DeleteRoomResponse-Error)
 Ошибка запроса


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






<a name="deviceapis-device-v1-GetRoomCountRequest"></a>


### [GetRoomCountRequest](#deviceapis-device-v1-GetRoomCountRequest)
 Запрос получения количества квартир






<a name="deviceapis-device-v1-GetRoomCountResponse"></a>


### [GetRoomCountResponse](#deviceapis-device-v1-GetRoomCountResponse)
 Ответ на запрос получения количества квартир


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






<a name="deviceapis-device-v1-GetRoomListRequest"></a>


### [GetRoomListRequest](#deviceapis-device-v1-GetRoomListRequest)
 Запрос получения списка настроек квартир


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetRoomListRequest-paging"></a> [paging](#deviceapis-device-v1-GetRoomListRequest-paging) | Постраничный вывод |  optional  [deviceapis.device.v1.RoomPaging](#deviceapis-device-v1-RoomPaging) | <nil>|






<a name="deviceapis-device-v1-GetRoomListResponse"></a>


### [GetRoomListResponse](#deviceapis-device-v1-GetRoomListResponse)
 Ответ на запрос получения списка настроек квартир


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetRoomListResponse-data"></a> [data](#deviceapis-device-v1-GetRoomListResponse-data) | Список Room |  repeated  [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | <nil>|






<a name="deviceapis-device-v1-GetRoomRequest"></a>


### [GetRoomRequest](#deviceapis-device-v1-GetRoomRequest)
 Запрос получения настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetRoomRequest-room_number"></a> [room_number](#deviceapis-device-v1-GetRoomRequest-room_number) | Номер квартиры |    [string](#scalar-types) | REQUIRED|






<a name="deviceapis-device-v1-GetRoomResponse"></a>


### [GetRoomResponse](#deviceapis-device-v1-GetRoomResponse)
 Ответ на запрос получения настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetRoomResponse-data"></a> [data](#deviceapis-device-v1-GetRoomResponse-data) | Квартира |  optional  [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | <nil>|






<a name="deviceapis-device-v1-Room"></a>


### [Room](#deviceapis-device-v1-Room)
 Квартира


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-Room-room_number"></a> [room_number](#deviceapis-device-v1-Room-room_number) | Номер квартиры |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-Room-sip_forwarding_number"></a> [sip_forwarding_number](#deviceapis-device-v1-Room-sip_forwarding_number) | Номер Sip-переадресации вызова. Диапазон: 5..200 |    [string](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-Room-analog_phone_cms_number"></a> [analog_phone_cms_number](#deviceapis-device-v1-Room-analog_phone_cms_number) | Номер координатно-матричной аналоговой трубки. Где пример значения K1E9D8 - это К1 = коммутатор 1; Е9 = единицы 9; Д8 = десятки 8. Паттерн: /^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/ |  optional  [string](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-Room-analog_phone_digital_number"></a> [analog_phone_digital_number](#deviceapis-device-v1-Room-analog_phone_digital_number) | Номер цифровой трубки. Диапазон: 1..255 |  optional  [int32](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-Room-is_analog_phone_blocked"></a> [is_analog_phone_blocked](#deviceapis-device-v1-Room-is_analog_phone_blocked) | Признак блокировки аналоговой (CMS) или адресно-цифровой (digital headset) трубки |    [bool](#scalar-types) | <nil>|






<a name="deviceapis-device-v1-RoomFilter"></a>


### [RoomFilter](#deviceapis-device-v1-RoomFilter)
 Фильтр квартир.
При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-RoomFilter-room_numbers"></a> [room_numbers](#deviceapis-device-v1-RoomFilter-room_numbers) | По номерам квартир. При пустом массиве удалятся все квартиры |  repeated  [string](#scalar-types) | <nil>|






<a name="deviceapis-device-v1-RoomPaging"></a>


### [RoomPaging](#deviceapis-device-v1-RoomPaging)
 Постраничный вывод


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






<a name="deviceapis-device-v1-SaveRoomListRequest"></a>


### [SaveRoomListRequest](#deviceapis-device-v1-SaveRoomListRequest)
 Запрос сохранения списка настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveRoomListRequest-data"></a> [data](#deviceapis-device-v1-SaveRoomListRequest-data) | Список Room |  repeated  [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | <nil>|






<a name="deviceapis-device-v1-SaveRoomListResponse"></a>


### [SaveRoomListResponse](#deviceapis-device-v1-SaveRoomListResponse)
 Ответ на запрос сохранения списка настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveRoomListResponse-data"></a> [data](#deviceapis-device-v1-SaveRoomListResponse-data) | Список Room |  repeated  [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | <nil>|
| <a id="deviceapis-device-v1-SaveRoomListResponse-errors"></a> [errors](#deviceapis-device-v1-SaveRoomListResponse-errors) | Список ошибок |  repeated  [deviceapis.device.v1.SaveRoomListResponse.Error](#deviceapis-device-v1-SaveRoomListResponse-Error) | <nil>|






<a name="deviceapis-device-v1-SaveRoomListResponse-Error"></a>


### [SaveRoomListResponse.Error](#deviceapis-device-v1-SaveRoomListResponse-Error)
 Ошибка запроса


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveRoomListResponse-Error-room_number"></a> [room_number](#deviceapis-device-v1-SaveRoomListResponse-Error-room_number) | Номер квартиры |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-SaveRoomListResponse-Error-validation"></a> [validation](#deviceapis-device-v1-SaveRoomListResponse-Error-validation) | Ошибка валидации |  optional  [deviceapis.device.v1.ValidationError](#deviceapis-device-v1-ValidationError) | <nil>|






<a name="deviceapis-device-v1-SaveRoomRequest"></a>


### [SaveRoomRequest](#deviceapis-device-v1-SaveRoomRequest)
 Запрос сохранения настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveRoomRequest-data"></a> [data](#deviceapis-device-v1-SaveRoomRequest-data) | Квартира |    [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | REQUIRED|






<a name="deviceapis-device-v1-SaveRoomResponse"></a>


### [SaveRoomResponse](#deviceapis-device-v1-SaveRoomResponse)
 Ответ на запрос сохранения настроек квартиры


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveRoomResponse-data"></a> [data](#deviceapis-device-v1-SaveRoomResponse-data) | Квартира |  optional  [deviceapis.device.v1.Room](#deviceapis-device-v1-Room) | <nil>|
| <a id="deviceapis-device-v1-SaveRoomResponse-error"></a> [error](#deviceapis-device-v1-SaveRoomResponse-error) | Ошибка |  optional  [deviceapis.device.v1.SaveRoomResponse.Error](#deviceapis-device-v1-SaveRoomResponse-Error) | <nil>|






<a name="deviceapis-device-v1-SaveRoomResponse-Error"></a>


### [SaveRoomResponse.Error](#deviceapis-device-v1-SaveRoomResponse-Error)
 Ошибка запроса


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





 <!-- end messages -->

 <!-- 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 |

