# Протокол

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

- [deviceapis/device/v1/deviceapis_device_code_v1.proto](#deviceapis_device_v1_deviceapis_device_code_v1-proto)
    - [CodeService](#deviceapis-device-v1-CodeService)
  
    - [Code](#deviceapis-device-v1-Code)
    - [Code.SavingError](#deviceapis-device-v1-Code-SavingError)
    - [Code.SavingError.RelayNotFound](#deviceapis-device-v1-Code-SavingError-RelayNotFound)
    - [CodePaging](#deviceapis-device-v1-CodePaging)
    - [DeleteCodeListRequest](#deviceapis-device-v1-DeleteCodeListRequest)
    - [DeleteCodeListResponse](#deviceapis-device-v1-DeleteCodeListResponse)
    - [DeleteCodeRequest](#deviceapis-device-v1-DeleteCodeRequest)
    - [DeleteCodeResponse](#deviceapis-device-v1-DeleteCodeResponse)
    - [DeleteCodeResponse.Error](#deviceapis-device-v1-DeleteCodeResponse-Error)
    - [GetCodeCountRequest](#deviceapis-device-v1-GetCodeCountRequest)
    - [GetCodeCountResponse](#deviceapis-device-v1-GetCodeCountResponse)
    - [GetCodeListRequest](#deviceapis-device-v1-GetCodeListRequest)
    - [GetCodeListResponse](#deviceapis-device-v1-GetCodeListResponse)
    - [GetCodeRequest](#deviceapis-device-v1-GetCodeRequest)
    - [GetCodeResponse](#deviceapis-device-v1-GetCodeResponse)
    - [SaveCodeListRequest](#deviceapis-device-v1-SaveCodeListRequest)
    - [SaveCodeListResponse](#deviceapis-device-v1-SaveCodeListResponse)
    - [SaveCodeListResponse.Error](#deviceapis-device-v1-SaveCodeListResponse-Error)
    - [SaveCodeRequest](#deviceapis-device-v1-SaveCodeRequest)
    - [SaveCodeResponse](#deviceapis-device-v1-SaveCodeResponse)
    - [SaveCodeResponse.Error](#deviceapis-device-v1-SaveCodeResponse-Error)
  


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




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

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


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

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

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="deviceapis-device-v1-DeleteCode"></a> [DeleteCode](#deviceapis-device-v1-DeleteCode) | Метод удаления одного кода доступа | [deviceapis.device.v1.DeleteCodeRequest](#deviceapis-device-v1-DeleteCodeRequest) | [deviceapis.device.v1.DeleteCodeResponse](#deviceapis-device-v1-DeleteCodeResponse) |
| <a id="deviceapis-device-v1-DeleteCodeList"></a> [DeleteCodeList](#deviceapis-device-v1-DeleteCodeList) | Метод удаления списка кодов доступа | [deviceapis.device.v1.DeleteCodeListRequest](#deviceapis-device-v1-DeleteCodeListRequest) | [deviceapis.device.v1.DeleteCodeListResponse](#deviceapis-device-v1-DeleteCodeListResponse) |
| <a id="deviceapis-device-v1-GetCode"></a> [GetCode](#deviceapis-device-v1-GetCode) | Метод получения кода доступа | [deviceapis.device.v1.GetCodeRequest](#deviceapis-device-v1-GetCodeRequest) | [deviceapis.device.v1.GetCodeResponse](#deviceapis-device-v1-GetCodeResponse) |
| <a id="deviceapis-device-v1-GetCodeCount"></a> [GetCodeCount](#deviceapis-device-v1-GetCodeCount) | Метод получения количества кодов доступа | [deviceapis.device.v1.GetCodeCountRequest](#deviceapis-device-v1-GetCodeCountRequest) | [deviceapis.device.v1.GetCodeCountResponse](#deviceapis-device-v1-GetCodeCountResponse) |
| <a id="deviceapis-device-v1-GetCodeList"></a> [GetCodeList](#deviceapis-device-v1-GetCodeList) | Метод получения списка кодов доступа | [deviceapis.device.v1.GetCodeListRequest](#deviceapis-device-v1-GetCodeListRequest) | [deviceapis.device.v1.GetCodeListResponse](#deviceapis-device-v1-GetCodeListResponse) |
| <a id="deviceapis-device-v1-SaveCode"></a> [SaveCode](#deviceapis-device-v1-SaveCode) | Метод создания кода доступа | [deviceapis.device.v1.SaveCodeRequest](#deviceapis-device-v1-SaveCodeRequest) | [deviceapis.device.v1.SaveCodeResponse](#deviceapis-device-v1-SaveCodeResponse) |
| <a id="deviceapis-device-v1-SaveCodeList"></a> [SaveCodeList](#deviceapis-device-v1-SaveCodeList) | Метод создания списка кодов доступа | [deviceapis.device.v1.SaveCodeListRequest](#deviceapis-device-v1-SaveCodeListRequest) | [deviceapis.device.v1.SaveCodeListResponse](#deviceapis-device-v1-SaveCodeListResponse) |

 <!-- end services -->


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


### [Code](#deviceapis-device-v1-Code)
 Код доступа


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-Code-code"></a> [code](#deviceapis-device-v1-Code-code) | Код доступа |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-Code-description"></a> [description](#deviceapis-device-v1-Code-description) | Описание |    [string](#scalar-types) | <nil>|
| <a id="deviceapis-device-v1-Code-relay_indexes"></a> [relay_indexes](#deviceapis-device-v1-Code-relay_indexes) | Идентификаторы реле. Диапазон: 1..64 |  repeated  [int32](#scalar-types) | <nil>|






<a name="deviceapis-device-v1-Code-SavingError"></a>


### [Code.SavingError](#deviceapis-device-v1-Code-SavingError)
 Ошибки сохранения


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-Code-SavingError-relay_not_found"></a> [relay_not_found](#deviceapis-device-v1-Code-SavingError-relay_not_found) | Реле не найдено |  optional  [deviceapis.device.v1.Code.SavingError.RelayNotFound](#deviceapis-device-v1-Code-SavingError-RelayNotFound) | <nil>|






<a name="deviceapis-device-v1-Code-SavingError-RelayNotFound"></a>


### [Code.SavingError.RelayNotFound](#deviceapis-device-v1-Code-SavingError-RelayNotFound)
 Реле не найдено






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


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


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






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


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






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


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


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






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


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-DeleteCodeRequest-code"></a> [code](#deviceapis-device-v1-DeleteCodeRequest-code) | Код доступа |    [string](#scalar-types) | REQUIRED|






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


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


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






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


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


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






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


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






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


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


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






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


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


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






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


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


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






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


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-GetCodeRequest-code"></a> [code](#deviceapis-device-v1-GetCodeRequest-code) | Код доступа |    [string](#scalar-types) | REQUIRED|






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


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


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






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


### [SaveCodeListRequest](#deviceapis-device-v1-SaveCodeListRequest)
 Запрос на создание списка кодов доступа


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






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


### [SaveCodeListResponse](#deviceapis-device-v1-SaveCodeListResponse)
 Ответ на создание списка кодов доступа


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






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


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveCodeListResponse-Error-code"></a> [code](#deviceapis-device-v1-SaveCodeListResponse-Error-code) | Код доступа |    [string](#scalar-types) | REQUIRED|
| <a id="deviceapis-device-v1-SaveCodeListResponse-Error-validation"></a> [validation](#deviceapis-device-v1-SaveCodeListResponse-Error-validation) | Ошибка валидации |  optional  [deviceapis.device.v1.ValidationError](#deviceapis-device-v1-ValidationError) | <nil>|
| <a id="deviceapis-device-v1-SaveCodeListResponse-Error-saving"></a> [saving](#deviceapis-device-v1-SaveCodeListResponse-Error-saving) | Ошибка сохранения |  optional  [deviceapis.device.v1.Code.SavingError](#deviceapis-device-v1-Code-SavingError) | <nil>|






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


### [SaveCodeRequest](#deviceapis-device-v1-SaveCodeRequest)
 Запрос создания кода доступа


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






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


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


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






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


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="deviceapis-device-v1-SaveCodeResponse-Error-validation"></a> [validation](#deviceapis-device-v1-SaveCodeResponse-Error-validation) | Ошибка валидации |  optional  [deviceapis.device.v1.ValidationError](#deviceapis-device-v1-ValidationError) | <nil>|
| <a id="deviceapis-device-v1-SaveCodeResponse-Error-saving"></a> [saving](#deviceapis-device-v1-SaveCodeResponse-Error-saving) | Ошибка сохранения |  optional  [deviceapis.device.v1.Code.SavingError](#deviceapis-device-v1-Code-SavingError) | <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 |

