# Протокол

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

- [keyapis/rfidregistry/v1/keyapis_rfidregistry_record_v1.proto](#keyapis_rfidregistry_v1_keyapis_rfidregistry_record_v1-proto)
    - [RecordService](#keyapis-rfidregistry-v1-RecordService)
  
    - [DeleteRecordRequest](#keyapis-rfidregistry-v1-DeleteRecordRequest)
    - [DeleteRecordResponse](#keyapis-rfidregistry-v1-DeleteRecordResponse)
    - [DeleteRecordResponse.Error](#keyapis-rfidregistry-v1-DeleteRecordResponse-Error)
    - [GetRecordCountRequest](#keyapis-rfidregistry-v1-GetRecordCountRequest)
    - [GetRecordCountResponse](#keyapis-rfidregistry-v1-GetRecordCountResponse)
    - [GetRecordCountResponse.Error](#keyapis-rfidregistry-v1-GetRecordCountResponse-Error)
    - [GetRecordListRequest](#keyapis-rfidregistry-v1-GetRecordListRequest)
    - [GetRecordListResponse](#keyapis-rfidregistry-v1-GetRecordListResponse)
    - [GetRecordListResponse.Error](#keyapis-rfidregistry-v1-GetRecordListResponse-Error)
    - [GetRecordRequest](#keyapis-rfidregistry-v1-GetRecordRequest)
    - [GetRecordResponse](#keyapis-rfidregistry-v1-GetRecordResponse)
    - [PostRecordRequest](#keyapis-rfidregistry-v1-PostRecordRequest)
    - [PostRecordResponse](#keyapis-rfidregistry-v1-PostRecordResponse)
    - [PostRecordResponse.Error](#keyapis-rfidregistry-v1-PostRecordResponse-Error)
    - [Record](#keyapis-rfidregistry-v1-Record)
    - [Record.AesKeyConfiguration](#keyapis-rfidregistry-v1-Record-AesKeyConfiguration)
    - [Record.DataCell](#keyapis-rfidregistry-v1-Record-DataCell)
    - [Record.SavingError](#keyapis-rfidregistry-v1-Record-SavingError)
    - [Record.SavingError.AlreadyLinked](#keyapis-rfidregistry-v1-Record-SavingError-AlreadyLinked)
    - [Record.SavingError.Conflict](#keyapis-rfidregistry-v1-Record-SavingError-Conflict)
    - [Record.SavingError.OwnedByAnotherUser](#keyapis-rfidregistry-v1-Record-SavingError-OwnedByAnotherUser)
    - [Record.SavingError.StatusTypeRestricted](#keyapis-rfidregistry-v1-Record-SavingError-StatusTypeRestricted)
    - [Record.SavingError.UidExist](#keyapis-rfidregistry-v1-Record-SavingError-UidExist)
    - [Record.Trailer](#keyapis-rfidregistry-v1-Record-Trailer)
    - [RecordFilter](#keyapis-rfidregistry-v1-RecordFilter)
    - [RecordPaging](#keyapis-rfidregistry-v1-RecordPaging)
    - [ValidationError](#keyapis-rfidregistry-v1-ValidationError)
  
    - [Record.EncryptionType](#keyapis-rfidregistry-v1-Record-EncryptionType)
    - [Record.IdentificationMethodType](#keyapis-rfidregistry-v1-Record-IdentificationMethodType)
    - [Record.RfidType](#keyapis-rfidregistry-v1-Record-RfidType)
    - [Record.StatusType](#keyapis-rfidregistry-v1-Record-StatusType)
    - [RecordPaging.DirectionType](#keyapis-rfidregistry-v1-RecordPaging-DirectionType)
    - [RecordPaging.OrderByType](#keyapis-rfidregistry-v1-RecordPaging-OrderByType)
  


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




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

## [keyapis/rfidregistry/v1/keyapis_rfidregistry_record_v1.proto](/protos/key/keyapis/rfidregistry/v1/keyapis_rfidregistry_record_v1.proto)
Сервис реализует функционал регистрации в системе RFID-ключей.
Только зарегистрированные RFID-ключи доступны для активации пользователям


<a name="keyapis-rfidregistry-v1-RecordService"></a>

### RecordService
 Сервис реестра ключей

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="keyapis-rfidregistry-v1-PostRecord"></a> [PostRecord](#keyapis-rfidregistry-v1-PostRecord) | Метод сохранения записи. Нельзя отвязать ключ, который привязал кто-то другой. Поддерживает создание и обновление. Метод доступен для: admin, service, device_admin | [keyapis.rfidregistry.v1.PostRecordRequest](#keyapis-rfidregistry-v1-PostRecordRequest) | [keyapis.rfidregistry.v1.PostRecordResponse](#keyapis-rfidregistry-v1-PostRecordResponse) |
| <a id="keyapis-rfidregistry-v1-GetRecord"></a> [GetRecord](#keyapis-rfidregistry-v1-GetRecord) | Метод получения записи. Метод доступен для: admin, service, device_admin | [keyapis.rfidregistry.v1.GetRecordRequest](#keyapis-rfidregistry-v1-GetRecordRequest) | [keyapis.rfidregistry.v1.GetRecordResponse](#keyapis-rfidregistry-v1-GetRecordResponse) |
| <a id="keyapis-rfidregistry-v1-GetRecordList"></a> [GetRecordList](#keyapis-rfidregistry-v1-GetRecordList) | Метод получения списка записей. Метод доступен для: admin, service, device_admin | [keyapis.rfidregistry.v1.GetRecordListRequest](#keyapis-rfidregistry-v1-GetRecordListRequest) | [keyapis.rfidregistry.v1.GetRecordListResponse](#keyapis-rfidregistry-v1-GetRecordListResponse) stream |
| <a id="keyapis-rfidregistry-v1-GetRecordCount"></a> [GetRecordCount](#keyapis-rfidregistry-v1-GetRecordCount) | Метод получения количества записей. Метод доступен для: admin, service, device_admin | [keyapis.rfidregistry.v1.GetRecordCountRequest](#keyapis-rfidregistry-v1-GetRecordCountRequest) | [keyapis.rfidregistry.v1.GetRecordCountResponse](#keyapis-rfidregistry-v1-GetRecordCountResponse) |
| <a id="keyapis-rfidregistry-v1-DeleteRecord"></a> [DeleteRecord](#keyapis-rfidregistry-v1-DeleteRecord) | Метод удаления записи. Можно удалять только свои записи. Нельзя удалить ключ, если его использует кто-то другой. Метод доступен для: admin, service, device_admin | [keyapis.rfidregistry.v1.DeleteRecordRequest](#keyapis-rfidregistry-v1-DeleteRecordRequest) | [keyapis.rfidregistry.v1.DeleteRecordResponse](#keyapis-rfidregistry-v1-DeleteRecordResponse) |

 <!-- end services -->


<a name="keyapis-rfidregistry-v1-DeleteRecordRequest"></a>


### [DeleteRecordRequest](#keyapis-rfidregistry-v1-DeleteRecordRequest)
 Запрос удаления записи из реестра.
Можно удалить только свои записи


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-DeleteRecordRequest-id"></a> [id](#keyapis-rfidregistry-v1-DeleteRecordRequest-id) | Идентификатор записи. # Тип: Guid |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-rfidregistry-v1-DeleteRecordResponse"></a>


### [DeleteRecordResponse](#keyapis-rfidregistry-v1-DeleteRecordResponse)
 Ответ на запрос удаления записи из реестра


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






<a name="keyapis-rfidregistry-v1-DeleteRecordResponse-Error"></a>


### [DeleteRecordResponse.Error](#keyapis-rfidregistry-v1-DeleteRecordResponse-Error)
 Ошибка удаления записи


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






<a name="keyapis-rfidregistry-v1-GetRecordCountRequest"></a>


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


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






<a name="keyapis-rfidregistry-v1-GetRecordCountResponse"></a>


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordCountResponse-data"></a> [data](#keyapis-rfidregistry-v1-GetRecordCountResponse-data) | Всего записей |  optional  [int32](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-GetRecordCountResponse-error"></a> [error](#keyapis-rfidregistry-v1-GetRecordCountResponse-error) | Ошибка |  optional  [keyapis.rfidregistry.v1.GetRecordCountResponse.Error](#keyapis-rfidregistry-v1-GetRecordCountResponse-Error) | <nil>|






<a name="keyapis-rfidregistry-v1-GetRecordCountResponse-Error"></a>


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordCountResponse-Error-validation"></a> [validation](#keyapis-rfidregistry-v1-GetRecordCountResponse-Error-validation) | Ошибка фильтрации записей |  optional  [keyapis.rfidregistry.v1.ValidationError](#keyapis-rfidregistry-v1-ValidationError) | <nil>|






<a name="keyapis-rfidregistry-v1-GetRecordListRequest"></a>


### [GetRecordListRequest](#keyapis-rfidregistry-v1-GetRecordListRequest)
 Запрос получения списка


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordListRequest-filter"></a> [filter](#keyapis-rfidregistry-v1-GetRecordListRequest-filter) | Фильтр |    [keyapis.rfidregistry.v1.RecordFilter](#keyapis-rfidregistry-v1-RecordFilter) | <nil>|
| <a id="keyapis-rfidregistry-v1-GetRecordListRequest-paging"></a> [paging](#keyapis-rfidregistry-v1-GetRecordListRequest-paging) | Пагинация |  optional  [keyapis.rfidregistry.v1.RecordPaging](#keyapis-rfidregistry-v1-RecordPaging) | <nil>|






<a name="keyapis-rfidregistry-v1-GetRecordListResponse"></a>


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


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






<a name="keyapis-rfidregistry-v1-GetRecordListResponse-Error"></a>


### [GetRecordListResponse.Error](#keyapis-rfidregistry-v1-GetRecordListResponse-Error)
 Ошибка запроса получения списка записей


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordListResponse-Error-validation"></a> [validation](#keyapis-rfidregistry-v1-GetRecordListResponse-Error-validation) | Ошибка фильтрации записей |  optional  [keyapis.rfidregistry.v1.ValidationError](#keyapis-rfidregistry-v1-ValidationError) | <nil>|






<a name="keyapis-rfidregistry-v1-GetRecordRequest"></a>


### [GetRecordRequest](#keyapis-rfidregistry-v1-GetRecordRequest)
 Запрос получения записи


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordRequest-id"></a> [id](#keyapis-rfidregistry-v1-GetRecordRequest-id) | Идентификатор. # Тип: Guid |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-rfidregistry-v1-GetRecordResponse"></a>


### [GetRecordResponse](#keyapis-rfidregistry-v1-GetRecordResponse)
 Ответ на запрос получения записи


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-GetRecordResponse-data"></a> [data](#keyapis-rfidregistry-v1-GetRecordResponse-data) | Запись |  optional  [keyapis.rfidregistry.v1.Record](#keyapis-rfidregistry-v1-Record) | <nil>|






<a name="keyapis-rfidregistry-v1-PostRecordRequest"></a>


### [PostRecordRequest](#keyapis-rfidregistry-v1-PostRecordRequest)
 Запрос сохранения записи


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-PostRecordRequest-data"></a> [data](#keyapis-rfidregistry-v1-PostRecordRequest-data) | Запись |    [keyapis.rfidregistry.v1.Record](#keyapis-rfidregistry-v1-Record) | REQUIRED|






<a name="keyapis-rfidregistry-v1-PostRecordResponse"></a>


### [PostRecordResponse](#keyapis-rfidregistry-v1-PostRecordResponse)
 Ответ на запрос сохранения записи


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






<a name="keyapis-rfidregistry-v1-PostRecordResponse-Error"></a>


### [PostRecordResponse.Error](#keyapis-rfidregistry-v1-PostRecordResponse-Error)
 Ошибка запроса сохранения записи


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






<a name="keyapis-rfidregistry-v1-Record"></a>


### [Record](#keyapis-rfidregistry-v1-Record)
 Запись.
# Описание модели


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-Record-id"></a> [id](#keyapis-rfidregistry-v1-Record-id) | Идентификатор. Если не передан создаётся сервером. # Тип: Guid |    [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-rfid_type"></a> [rfid_type](#keyapis-rfidregistry-v1-Record-rfid_type) | Тип ключа |    [keyapis.rfidregistry.v1.Record.RfidType](#keyapis-rfidregistry-v1-Record-RfidType) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-encryption_type"></a> [encryption_type](#keyapis-rfidregistry-v1-Record-encryption_type) | Тип шифрования ключа. Максимально поддерживаемый ключом тип шифрования |    [keyapis.rfidregistry.v1.Record.EncryptionType](#keyapis-rfidregistry-v1-Record-EncryptionType) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-uid"></a> [uid](#keyapis-rfidregistry-v1-Record-uid) | Номер ключа. Указывается при создании. # Диапазон: 1..14 |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-status_type"></a> [status_type](#keyapis-rfidregistry-v1-Record-status_type) | Тип статуса ключа |    [keyapis.rfidregistry.v1.Record.StatusType](#keyapis-rfidregistry-v1-Record-StatusType) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-new_at"></a> [new_at](#keyapis-rfidregistry-v1-Record-new_at) | Дата перевода в статус "Новый". # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-shipped_at"></a> [shipped_at](#keyapis-rfidregistry-v1-Record-shipped_at) | Дата перевода в статус "Отгружен". # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-defect_at"></a> [defect_at](#keyapis-rfidregistry-v1-Record-defect_at) | Дата перевода в статус "Брак". # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-in_use_at"></a> [in_use_at](#keyapis-rfidregistry-v1-Record-in_use_at) | Дата перевода в статус "Использован". # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-in_use_rfid_id"></a> [in_use_rfid_id](#keyapis-rfidregistry-v1-Record-in_use_rfid_id) | Идентификатор привязанного ключа. Заполняется при переводе в статус "Использован". # Диапазон: 0..16 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-data_cells"></a> [data_cells](#keyapis-rfidregistry-v1-Record-data_cells) | Содержимое ячеек ключа |  repeated  [keyapis.rfidregistry.v1.Record.DataCell](#keyapis-rfidregistry-v1-Record-DataCell) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-resource_owner_id"></a> [resource_owner_id](#keyapis-rfidregistry-v1-Record-resource_owner_id) | Идентификатор владельца. Заполняется сервером. # Диапазон: 0..255 |    [string](#scalar-types) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-package_info_box"></a> [package_info_box](#keyapis-rfidregistry-v1-Record-package_info_box) | Номер коробки. # Диапазон: 1..2147483647 |    [int32](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-package_info_place"></a> [package_info_place](#keyapis-rfidregistry-v1-Record-package_info_place) | Номер места в коробке. # Диапазон: 1..2147483647 |    [int32](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-changed_at"></a> [changed_at](#keyapis-rfidregistry-v1-Record-changed_at) | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта. # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-aes_key_configurations"></a> [aes_key_configurations](#keyapis-rfidregistry-v1-Record-aes_key_configurations) | Конфигурации шифрования ключа |  repeated  [keyapis.rfidregistry.v1.Record.AesKeyConfiguration](#keyapis-rfidregistry-v1-Record-AesKeyConfiguration) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-trailers"></a> [trailers](#keyapis-rfidregistry-v1-Record-trailers) | Контрольные суммы. Нужны для ключей SL1 и SL3 |  repeated  [keyapis.rfidregistry.v1.Record.Trailer](#keyapis-rfidregistry-v1-Record-Trailer) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-order_number"></a> [order_number](#keyapis-rfidregistry-v1-Record-order_number) | Номер заказа. # Диапазон: 0..256 |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-order_at"></a> [order_at](#keyapis-rfidregistry-v1-Record-order_at) | Дата заказа. # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-in_use_resource_owner_id"></a> [in_use_resource_owner_id](#keyapis-rfidregistry-v1-Record-in_use_resource_owner_id) | Владелец привязанного ключа. Заполняется сервером, значение берётся из токена при использовании ключа. # Диапазон: 0..255 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-is_deleted"></a> [is_deleted](#keyapis-rfidregistry-v1-Record-is_deleted) | Признак, удалена ли запись |    [bool](#scalar-types) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-deleted_at"></a> [deleted_at](#keyapis-rfidregistry-v1-Record-deleted_at) | Дата удаления. # Тип: DateTime |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-rfidregistry-v1-Record-vendor_name"></a> [vendor_name](#keyapis-rfidregistry-v1-Record-vendor_name) | Производитель. # Диапазон: 3..100 |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-identification_method_type"></a> [identification_method_type](#keyapis-rfidregistry-v1-Record-identification_method_type) | Метод идентификации |    [keyapis.rfidregistry.v1.Record.IdentificationMethodType](#keyapis-rfidregistry-v1-Record-IdentificationMethodType) | <nil>|






<a name="keyapis-rfidregistry-v1-Record-AesKeyConfiguration"></a>


### [Record.AesKeyConfiguration](#keyapis-rfidregistry-v1-Record-AesKeyConfiguration)
 Конфигурация шифрования ключа


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-Record-AesKeyConfiguration-address"></a> [address](#keyapis-rfidregistry-v1-Record-AesKeyConfiguration-address) | Адрес. # Паттерн: /^[A-Za-z0-9=]+$/ |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-AesKeyConfiguration-data"></a> [data](#keyapis-rfidregistry-v1-Record-AesKeyConfiguration-data) | Данные. # Паттерн: /^[A-Za-z0-9=]+$/ |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-rfidregistry-v1-Record-DataCell"></a>


### [Record.DataCell](#keyapis-rfidregistry-v1-Record-DataCell)
 Содержимое ячейки ключа


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-Record-DataCell-section"></a> [section](#keyapis-rfidregistry-v1-Record-DataCell-section) | Сектор. # Диапазон: 0..127 |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-DataCell-block"></a> [block](#keyapis-rfidregistry-v1-Record-DataCell-block) | Блок. # Диапазон: 0..127 |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-DataCell-data"></a> [data](#keyapis-rfidregistry-v1-Record-DataCell-data) | Данные. # Паттерн: /^[A-Za-z0-9=]+$/ |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-rfidregistry-v1-Record-SavingError"></a>


### [Record.SavingError](#keyapis-rfidregistry-v1-Record-SavingError)
 Ошибка сохранения записи.
Эти проверки выполняются при работе с базой данных и сторонними сервисами


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-Record-SavingError-status_type_restricted"></a> [status_type_restricted](#keyapis-rfidregistry-v1-Record-SavingError-status_type_restricted) | Перевод статуса запрещён |  optional  [keyapis.rfidregistry.v1.Record.SavingError.StatusTypeRestricted](#keyapis-rfidregistry-v1-Record-SavingError-StatusTypeRestricted) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-SavingError-uid_exist"></a> [uid_exist](#keyapis-rfidregistry-v1-Record-SavingError-uid_exist) | Запись уже существует |  optional  [keyapis.rfidregistry.v1.Record.SavingError.UidExist](#keyapis-rfidregistry-v1-Record-SavingError-UidExist) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-SavingError-owned_by_another_user"></a> [owned_by_another_user](#keyapis-rfidregistry-v1-Record-SavingError-owned_by_another_user) | Вы не владелец |  optional  [keyapis.rfidregistry.v1.Record.SavingError.OwnedByAnotherUser](#keyapis-rfidregistry-v1-Record-SavingError-OwnedByAnotherUser) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-SavingError-already_linked"></a> [already_linked](#keyapis-rfidregistry-v1-Record-SavingError-already_linked) | Ключ уже использован |  optional  [keyapis.rfidregistry.v1.Record.SavingError.AlreadyLinked](#keyapis-rfidregistry-v1-Record-SavingError-AlreadyLinked) | <nil>|
| <a id="keyapis-rfidregistry-v1-Record-SavingError-conflict"></a> [conflict](#keyapis-rfidregistry-v1-Record-SavingError-conflict) | Конфликт версий |  optional  [keyapis.rfidregistry.v1.Record.SavingError.Conflict](#keyapis-rfidregistry-v1-Record-SavingError-Conflict) | <nil>|






<a name="keyapis-rfidregistry-v1-Record-SavingError-AlreadyLinked"></a>


### [Record.SavingError.AlreadyLinked](#keyapis-rfidregistry-v1-Record-SavingError-AlreadyLinked)
 Причины:
- Такой ключ уже привязан к другой записи






<a name="keyapis-rfidregistry-v1-Record-SavingError-Conflict"></a>


### [Record.SavingError.Conflict](#keyapis-rfidregistry-v1-Record-SavingError-Conflict)
 Причины:
- В базе хранится более новая версия записи, значения changed_at отличаются






<a name="keyapis-rfidregistry-v1-Record-SavingError-OwnedByAnotherUser"></a>


### [Record.SavingError.OwnedByAnotherUser](#keyapis-rfidregistry-v1-Record-SavingError-OwnedByAnotherUser)
 Причины:
- Запись принадлежит другому пользователю






<a name="keyapis-rfidregistry-v1-Record-SavingError-StatusTypeRestricted"></a>


### [Record.SavingError.StatusTypeRestricted](#keyapis-rfidregistry-v1-Record-SavingError-StatusTypeRestricted)
 Причины:
- Недопустимый перевод статуса.
- Не переданы обязательные поля https://openapi-key.deploy.rtkit.dev/keyapis_rfidregistry_v1/#таблица-обязательности-передачи-полей-в-request






<a name="keyapis-rfidregistry-v1-Record-SavingError-UidExist"></a>


### [Record.SavingError.UidExist](#keyapis-rfidregistry-v1-Record-SavingError-UidExist)
 Причины:
- Ключ уже существует






<a name="keyapis-rfidregistry-v1-Record-Trailer"></a>


### [Record.Trailer](#keyapis-rfidregistry-v1-Record-Trailer)
 Контрольная сумма


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-Record-Trailer-sector"></a> [sector](#keyapis-rfidregistry-v1-Record-Trailer-sector) | Сектор. # Диапазон: 0..15 |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-Trailer-key_a"></a> [key_a](#keyapis-rfidregistry-v1-Record-Trailer-key_a) | Ключ А. # Диапазон: 1..256 |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-Trailer-key_b"></a> [key_b](#keyapis-rfidregistry-v1-Record-Trailer-key_b) | Ключ Б. # Диапазон: 1..256 |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-Record-Trailer-access_mask"></a> [access_mask](#keyapis-rfidregistry-v1-Record-Trailer-access_mask) | Маска доступа. # Диапазон: 1..512 |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-rfidregistry-v1-RecordFilter"></a>


### [RecordFilter](#keyapis-rfidregistry-v1-RecordFilter)
 Фильтр записей


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-RecordFilter-rfid_types"></a> [rfid_types](#keyapis-rfidregistry-v1-RecordFilter-rfid_types) | По типам ключей |  repeated  [keyapis.rfidregistry.v1.Record.RfidType](#keyapis-rfidregistry-v1-Record-RfidType) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-encryption_types"></a> [encryption_types](#keyapis-rfidregistry-v1-RecordFilter-encryption_types) | По типам шифрования |  repeated  [keyapis.rfidregistry.v1.Record.EncryptionType](#keyapis-rfidregistry-v1-Record-EncryptionType) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-uids"></a> [uids](#keyapis-rfidregistry-v1-RecordFilter-uids) | По номерам ключей |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-status_types"></a> [status_types](#keyapis-rfidregistry-v1-RecordFilter-status_types) | По типам статуса |  repeated  [keyapis.rfidregistry.v1.Record.StatusType](#keyapis-rfidregistry-v1-Record-StatusType) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-in_use_rfid_ids"></a> [in_use_rfid_ids](#keyapis-rfidregistry-v1-RecordFilter-in_use_rfid_ids) | По номерам привязанных ключей |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-resource_owner_ids"></a> [resource_owner_ids](#keyapis-rfidregistry-v1-RecordFilter-resource_owner_ids) | По владельцам |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-order_numbers"></a> [order_numbers](#keyapis-rfidregistry-v1-RecordFilter-order_numbers) | По номерам заказа |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-in_use_resource_owner_ids"></a> [in_use_resource_owner_ids](#keyapis-rfidregistry-v1-RecordFilter-in_use_resource_owner_ids) | По владельцам привязанных ключей |  repeated  [string](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-is_deleted"></a> [is_deleted](#keyapis-rfidregistry-v1-RecordFilter-is_deleted) | По удалённым записям. По умолчанию: false |    [google.protobuf.BoolValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-text"></a> [text](#keyapis-rfidregistry-v1-RecordFilter-text) | По тексту. Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Номер заказа; # - Производитель |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-start_shipped_at"></a> [start_shipped_at](#keyapis-rfidregistry-v1-RecordFilter-start_shipped_at) | Дата отгрузки от |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-end_shipped_at"></a> [end_shipped_at](#keyapis-rfidregistry-v1-RecordFilter-end_shipped_at) | Дата отгрузки до |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-package_info_boxes"></a> [package_info_boxes](#keyapis-rfidregistry-v1-RecordFilter-package_info_boxes) | По номеру коробки |  repeated  [int32](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-package_info_places"></a> [package_info_places](#keyapis-rfidregistry-v1-RecordFilter-package_info_places) | По номеру места в коробке |  repeated  [int32](#scalar-types) | <nil>|
| <a id="keyapis-rfidregistry-v1-RecordFilter-identification_method_types"></a> [identification_method_types](#keyapis-rfidregistry-v1-RecordFilter-identification_method_types) | По методу идентификации |  repeated  [keyapis.rfidregistry.v1.Record.IdentificationMethodType](#keyapis-rfidregistry-v1-Record-IdentificationMethodType) | <nil>|






<a name="keyapis-rfidregistry-v1-RecordPaging"></a>


### [RecordPaging](#keyapis-rfidregistry-v1-RecordPaging)
 Пагинация записей


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






<a name="keyapis-rfidregistry-v1-ValidationError"></a>


### [ValidationError](#keyapis-rfidregistry-v1-ValidationError)
 Ошибки валидации.
Эти проверки выполняются до обращения в базу данных


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-rfidregistry-v1-ValidationError-path"></a> [path](#keyapis-rfidregistry-v1-ValidationError-path) | Путь к полю в формате наименования прото |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-rfidregistry-v1-ValidationError-message"></a> [message](#keyapis-rfidregistry-v1-ValidationError-message) | Валидационное сообщение |    [string](#scalar-types) | REQUIRED|





 <!-- end messages -->



<a name="keyapis-rfidregistry-v1-Record-EncryptionType"></a>

### [Record.EncryptionType](#keyapis-rfidregistry-v1-Record-EncryptionType)
 Справочник типов шифрования ключа.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-rfidregistry-v1-Record-EncryptionType-ENCRYPTION_TYPE_UNKNOWN"></a> [ENCRYPTION_TYPE_UNKNOWN](#keyapis-rfidregistry-v1-Record-EncryptionType-ENCRYPTION_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-rfidregistry-v1-Record-EncryptionType-SL0"></a> [SL0](#keyapis-rfidregistry-v1-Record-EncryptionType-SL0) | Без шифрования |
| 2 | <a id="keyapis-rfidregistry-v1-Record-EncryptionType-SL1"></a> [SL1](#keyapis-rfidregistry-v1-Record-EncryptionType-SL1) | С шифрованием, копируемый |
| 3 | <a id="keyapis-rfidregistry-v1-Record-EncryptionType-SL3"></a> [SL3](#keyapis-rfidregistry-v1-Record-EncryptionType-SL3) | С шифрованием, не копируемый |




<a name="keyapis-rfidregistry-v1-Record-IdentificationMethodType"></a>

### [Record.IdentificationMethodType](#keyapis-rfidregistry-v1-Record-IdentificationMethodType)
 Справочник методов идентификации.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-rfidregistry-v1-Record-IdentificationMethodType-IDENTIFICATION_METHOD_TYPE_UNKNOWN"></a> [IDENTIFICATION_METHOD_TYPE_UNKNOWN](#keyapis-rfidregistry-v1-Record-IdentificationMethodType-IDENTIFICATION_METHOD_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-rfidregistry-v1-Record-IdentificationMethodType-MIFARE"></a> [MIFARE](#keyapis-rfidregistry-v1-Record-IdentificationMethodType-MIFARE) | Значение Mifare |
| 2 | <a id="keyapis-rfidregistry-v1-Record-IdentificationMethodType-BLE"></a> [BLE](#keyapis-rfidregistry-v1-Record-IdentificationMethodType-BLE) | Значение Bluetooth low energy |
| 3 | <a id="keyapis-rfidregistry-v1-Record-IdentificationMethodType-UHF"></a> [UHF](#keyapis-rfidregistry-v1-Record-IdentificationMethodType-UHF) | Значение Ultra high frequency |
| 4 | <a id="keyapis-rfidregistry-v1-Record-IdentificationMethodType-EM_MARINE"></a> [EM_MARINE](#keyapis-rfidregistry-v1-Record-IdentificationMethodType-EM_MARINE) | Значение em-marine |




<a name="keyapis-rfidregistry-v1-Record-RfidType"></a>

### [Record.RfidType](#keyapis-rfidregistry-v1-Record-RfidType)
 Справочник типов ключей.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-rfidregistry-v1-Record-RfidType-RFID_TYPE_UNKNOWN"></a> [RFID_TYPE_UNKNOWN](#keyapis-rfidregistry-v1-Record-RfidType-RFID_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-rfidregistry-v1-Record-RfidType-FOB"></a> [FOB](#keyapis-rfidregistry-v1-Record-RfidType-FOB) | Брелок |
| 2 | <a id="keyapis-rfidregistry-v1-Record-RfidType-CARD"></a> [CARD](#keyapis-rfidregistry-v1-Record-RfidType-CARD) | Карта |
| 3 | <a id="keyapis-rfidregistry-v1-Record-RfidType-BAND"></a> [BAND](#keyapis-rfidregistry-v1-Record-RfidType-BAND) | Браслет |
| 4 | <a id="keyapis-rfidregistry-v1-Record-RfidType-STICKER"></a> [STICKER](#keyapis-rfidregistry-v1-Record-RfidType-STICKER) | Стикер |
| 5 | <a id="keyapis-rfidregistry-v1-Record-RfidType-ACTIVE_TAG"></a> [ACTIVE_TAG](#keyapis-rfidregistry-v1-Record-RfidType-ACTIVE_TAG) | Активная метка |




<a name="keyapis-rfidregistry-v1-Record-StatusType"></a>

### [Record.StatusType](#keyapis-rfidregistry-v1-Record-StatusType)
 Справочник типов статусов ключа.
# Тип: byte

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-rfidregistry-v1-Record-StatusType-STATUS_TYPE_UNKNOWN"></a> [STATUS_TYPE_UNKNOWN](#keyapis-rfidregistry-v1-Record-StatusType-STATUS_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-rfidregistry-v1-Record-StatusType-NEW"></a> [NEW](#keyapis-rfidregistry-v1-Record-StatusType-NEW) | Новый |
| 2 | <a id="keyapis-rfidregistry-v1-Record-StatusType-SHIPPED"></a> [SHIPPED](#keyapis-rfidregistry-v1-Record-StatusType-SHIPPED) | Отгружен |
| 3 | <a id="keyapis-rfidregistry-v1-Record-StatusType-DEFECT"></a> [DEFECT](#keyapis-rfidregistry-v1-Record-StatusType-DEFECT) | Брак |
| 4 | <a id="keyapis-rfidregistry-v1-Record-StatusType-IN_USE"></a> [IN_USE](#keyapis-rfidregistry-v1-Record-StatusType-IN_USE) | Использован |




<a name="keyapis-rfidregistry-v1-RecordPaging-DirectionType"></a>

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

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




<a name="keyapis-rfidregistry-v1-RecordPaging-OrderByType"></a>

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

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_BY_TYPE_UNKNOWN"></a> [ORDER_BY_TYPE_UNKNOWN](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_BY_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-NEW_AT"></a> [NEW_AT](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-NEW_AT) | По дате перевода в статус new (дате создания) |
| 2 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-CHANGED_AT"></a> [CHANGED_AT](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-CHANGED_AT) | По времени изменения |
| 3 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_AT"></a> [ORDER_AT](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_AT) | По времени заказа |
| 4 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_NUMBER"></a> [ORDER_NUMBER](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-ORDER_NUMBER) | По номеру заказа |
| 5 | <a id="keyapis-rfidregistry-v1-RecordPaging-OrderByType-RANK"></a> [RANK](#keyapis-rfidregistry-v1-RecordPaging-OrderByType-RANK) | По рангу для поиска по тексту. Применяется когда передано поле для поиска по тексту. В случае если текстовое поле не передано, применяется значение по умолчанию |


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

