# Протокол

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

- [keyapis/subscription/v1/keyapis_subscription_plan_v1.proto](#keyapis_subscription_v1_keyapis_subscription_plan_v1-proto)
    - [PlanService](#keyapis-subscription-v1-PlanService)
  
    - [GetPlanCountRequest](#keyapis-subscription-v1-GetPlanCountRequest)
    - [GetPlanCountResponse](#keyapis-subscription-v1-GetPlanCountResponse)
    - [GetPlanCountResponse.Error](#keyapis-subscription-v1-GetPlanCountResponse-Error)
    - [GetPlanListRequest](#keyapis-subscription-v1-GetPlanListRequest)
    - [GetPlanListResponse](#keyapis-subscription-v1-GetPlanListResponse)
    - [GetPlanListResponse.Error](#keyapis-subscription-v1-GetPlanListResponse-Error)
    - [GetPlanRequest](#keyapis-subscription-v1-GetPlanRequest)
    - [GetPlanResponse](#keyapis-subscription-v1-GetPlanResponse)
    - [Plan](#keyapis-subscription-v1-Plan)
    - [Plan.OptionDescription](#keyapis-subscription-v1-Plan-OptionDescription)
    - [PlanFilter](#keyapis-subscription-v1-PlanFilter)
    - [PlanFilter.ValidationError](#keyapis-subscription-v1-PlanFilter-ValidationError)
    - [PlanFilter.ValidationError.TextInvalid](#keyapis-subscription-v1-PlanFilter-ValidationError-TextInvalid)
    - [PlanPaging](#keyapis-subscription-v1-PlanPaging)
    - [PlanPaging.ValidationError](#keyapis-subscription-v1-PlanPaging-ValidationError)
    - [PlanPaging.ValidationError.LimitInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-LimitInvalid)
    - [PlanPaging.ValidationError.OffsetInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-OffsetInvalid)
  
    - [Plan.IconType](#keyapis-subscription-v1-Plan-IconType)
    - [PlanPaging.DirectionType](#keyapis-subscription-v1-PlanPaging-DirectionType)
    - [PlanPaging.OrderByType](#keyapis-subscription-v1-PlanPaging-OrderByType)
  


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




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

## [keyapis/subscription/v1/keyapis_subscription_plan_v1.proto](/protos/key/keyapis/subscription/v1/keyapis_subscription_plan_v1.proto)
Сервис реализует функционал управления технологическими планами(ТП).
ТП это подготовленный набор доступных услуг


<a name="keyapis-subscription-v1-PlanService"></a>

### PlanService
 Сервис технологических планов(ТП)

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="keyapis-subscription-v1-GetPlan"></a> [GetPlan](#keyapis-subscription-v1-GetPlan) | Метод получения технологического плана. Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit) | [keyapis.subscription.v1.GetPlanRequest](#keyapis-subscription-v1-GetPlanRequest) | [keyapis.subscription.v1.GetPlanResponse](#keyapis-subscription-v1-GetPlanResponse) |
| <a id="keyapis-subscription-v1-GetPlanList"></a> [GetPlanList](#keyapis-subscription-v1-GetPlanList) | Метод получения списка технологических планов. Метод доступен для: admin, service, mrf, master, ltp_first, service, application(subscription:read или subscription:edit) | [keyapis.subscription.v1.GetPlanListRequest](#keyapis-subscription-v1-GetPlanListRequest) | [keyapis.subscription.v1.GetPlanListResponse](#keyapis-subscription-v1-GetPlanListResponse) stream |
| <a id="keyapis-subscription-v1-GetPlanCount"></a> [GetPlanCount](#keyapis-subscription-v1-GetPlanCount) | Метод получения количества технологических планов. Метод доступен для: admin, service, mrf, master, ltp_first, service, application(subscription:read или subscription:edit) | [keyapis.subscription.v1.GetPlanCountRequest](#keyapis-subscription-v1-GetPlanCountRequest) | [keyapis.subscription.v1.GetPlanCountResponse](#keyapis-subscription-v1-GetPlanCountResponse) |

 <!-- end services -->


<a name="keyapis-subscription-v1-GetPlanCountRequest"></a>


### [GetPlanCountRequest](#keyapis-subscription-v1-GetPlanCountRequest)
 Запрос получения количества технологических планов


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






<a name="keyapis-subscription-v1-GetPlanCountResponse"></a>


### [GetPlanCountResponse](#keyapis-subscription-v1-GetPlanCountResponse)
 Ответ на запрос получения количества технологических планов


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






<a name="keyapis-subscription-v1-GetPlanCountResponse-Error"></a>


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


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






<a name="keyapis-subscription-v1-GetPlanListRequest"></a>


### [GetPlanListRequest](#keyapis-subscription-v1-GetPlanListRequest)
 Запрос получения технологических планов


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






<a name="keyapis-subscription-v1-GetPlanListResponse"></a>


### [GetPlanListResponse](#keyapis-subscription-v1-GetPlanListResponse)
 Ответ на запрос получения технологических планов


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-GetPlanListResponse-data"></a> [data](#keyapis-subscription-v1-GetPlanListResponse-data) | Технологический план |  optional  [keyapis.subscription.v1.Plan](#keyapis-subscription-v1-Plan) | <nil>|
| <a id="keyapis-subscription-v1-GetPlanListResponse-error"></a> [error](#keyapis-subscription-v1-GetPlanListResponse-error) | Ошибка |  optional  [keyapis.subscription.v1.GetPlanListResponse.Error](#keyapis-subscription-v1-GetPlanListResponse-Error) | <nil>|






<a name="keyapis-subscription-v1-GetPlanListResponse-Error"></a>


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-GetPlanListResponse-Error-plan_filter_validation"></a> [plan_filter_validation](#keyapis-subscription-v1-GetPlanListResponse-Error-plan_filter_validation) | Ошибка фильтрации |  optional  [keyapis.subscription.v1.PlanFilter.ValidationError](#keyapis-subscription-v1-PlanFilter-ValidationError) | <nil>|
| <a id="keyapis-subscription-v1-GetPlanListResponse-Error-plan_paging_validation"></a> [plan_paging_validation](#keyapis-subscription-v1-GetPlanListResponse-Error-plan_paging_validation) | Ошибка пагинации по страницам |  optional  [keyapis.subscription.v1.PlanPaging.ValidationError](#keyapis-subscription-v1-PlanPaging-ValidationError) | <nil>|






<a name="keyapis-subscription-v1-GetPlanRequest"></a>


### [GetPlanRequest](#keyapis-subscription-v1-GetPlanRequest)
 Запрос получения технологического плана


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






<a name="keyapis-subscription-v1-GetPlanResponse"></a>


### [GetPlanResponse](#keyapis-subscription-v1-GetPlanResponse)
 Ответ на запрос получения технологического плана


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-GetPlanResponse-data"></a> [data](#keyapis-subscription-v1-GetPlanResponse-data) | Технологический план |  optional  [keyapis.subscription.v1.Plan](#keyapis-subscription-v1-Plan) | <nil>|






<a name="keyapis-subscription-v1-Plan"></a>


### [Plan](#keyapis-subscription-v1-Plan)
 Технологический план(ТП)


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-Plan-id"></a> [id](#keyapis-subscription-v1-Plan-id) | Идентификатор |    [int32](#scalar-types) | OUTPUT_ONLY|
| <a id="keyapis-subscription-v1-Plan-title"></a> [title](#keyapis-subscription-v1-Plan-title) | Название |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-subscription-v1-Plan-description"></a> [description](#keyapis-subscription-v1-Plan-description) | Описание |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-subscription-v1-Plan-created_at"></a> [created_at](#keyapis-subscription-v1-Plan-created_at) | Дата создания записи. Заполняется сервером |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-subscription-v1-Plan-changed_at"></a> [changed_at](#keyapis-subscription-v1-Plan-changed_at) | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | OUTPUT_ONLY|
| <a id="keyapis-subscription-v1-Plan-parent_ids"></a> [parent_ids](#keyapis-subscription-v1-Plan-parent_ids) | Идентификаторы родительских технологических планов(ТП) |  repeated  [int32](#scalar-types) | <nil>|
| <a id="keyapis-subscription-v1-Plan-rf_ids"></a> [rf_ids](#keyapis-subscription-v1-Plan-rf_ids) | Идентификаторы регионов, в которых доступен технологический план(ТП) |  repeated  [int32](#scalar-types) | <nil>|
| <a id="keyapis-subscription-v1-Plan-summary"></a> [summary](#keyapis-subscription-v1-Plan-summary) | Краткое описание |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-subscription-v1-Plan-icon_type"></a> [icon_type](#keyapis-subscription-v1-Plan-icon_type) | Тип иконки |    [keyapis.subscription.v1.Plan.IconType](#keyapis-subscription-v1-Plan-IconType) | <nil>|
| <a id="keyapis-subscription-v1-Plan-option_descriptions"></a> [option_descriptions](#keyapis-subscription-v1-Plan-option_descriptions) | Описание опций |  repeated  [keyapis.subscription.v1.Plan.OptionDescription](#keyapis-subscription-v1-Plan-OptionDescription) | <nil>|
| <a id="keyapis-subscription-v1-Plan-privilege_types"></a> [privilege_types](#keyapis-subscription-v1-Plan-privilege_types) | Привилегии. Массив услуг доступных по технологическому плану |  repeated  [keyapis.subscription.v1.Privilege.Type](#keyapis-subscription-v1-Privilege-Type) | <nil>|






<a name="keyapis-subscription-v1-Plan-OptionDescription"></a>


### [Plan.OptionDescription](#keyapis-subscription-v1-Plan-OptionDescription)
 Описание опции


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-Plan-OptionDescription-icon_type"></a> [icon_type](#keyapis-subscription-v1-Plan-OptionDescription-icon_type) | Тип иконки |    [keyapis.subscription.v1.Plan.IconType](#keyapis-subscription-v1-Plan-IconType) | <nil>|
| <a id="keyapis-subscription-v1-Plan-OptionDescription-title"></a> [title](#keyapis-subscription-v1-Plan-OptionDescription-title) | Название |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-subscription-v1-Plan-OptionDescription-summary"></a> [summary](#keyapis-subscription-v1-Plan-OptionDescription-summary) | Краткое описание |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|






<a name="keyapis-subscription-v1-PlanFilter"></a>


### [PlanFilter](#keyapis-subscription-v1-PlanFilter)
 Фильтр по технологическим планам


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-PlanFilter-text"></a> [text](#keyapis-subscription-v1-PlanFilter-text) | По тексту. Если значение не передано то поиск по нему не производится. # Поиск производится по полям: # - Название; # - Описание; # - Краткое описание |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-subscription-v1-PlanFilter-rf_ids"></a> [rf_ids](#keyapis-subscription-v1-PlanFilter-rf_ids) | По идентификаторам регионов |  repeated  [int32](#scalar-types) | <nil>|






<a name="keyapis-subscription-v1-PlanFilter-ValidationError"></a>


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-PlanFilter-ValidationError-text"></a> [text](#keyapis-subscription-v1-PlanFilter-ValidationError-text) | Текст передан некорректно |  optional  [keyapis.subscription.v1.PlanFilter.ValidationError.TextInvalid](#keyapis-subscription-v1-PlanFilter-ValidationError-TextInvalid) | <nil>|






<a name="keyapis-subscription-v1-PlanFilter-ValidationError-TextInvalid"></a>


### [PlanFilter.ValidationError.TextInvalid](#keyapis-subscription-v1-PlanFilter-ValidationError-TextInvalid)
 Причины:
- Длина текста < 3 символов и >= 64






<a name="keyapis-subscription-v1-PlanPaging"></a>


### [PlanPaging](#keyapis-subscription-v1-PlanPaging)
 Пагинация по технологическим планам


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






<a name="keyapis-subscription-v1-PlanPaging-ValidationError"></a>


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


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-subscription-v1-PlanPaging-ValidationError-limit"></a> [limit](#keyapis-subscription-v1-PlanPaging-ValidationError-limit) | Количество передано некорректно |  optional  [keyapis.subscription.v1.PlanPaging.ValidationError.LimitInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-LimitInvalid) | <nil>|
| <a id="keyapis-subscription-v1-PlanPaging-ValidationError-offset"></a> [offset](#keyapis-subscription-v1-PlanPaging-ValidationError-offset) | Сдвиг передан некорректно |  optional  [keyapis.subscription.v1.PlanPaging.ValidationError.OffsetInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-OffsetInvalid) | <nil>|






<a name="keyapis-subscription-v1-PlanPaging-ValidationError-LimitInvalid"></a>


### [PlanPaging.ValidationError.LimitInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-LimitInvalid)
 Причины:
- Значение количества < 0 или > 100






<a name="keyapis-subscription-v1-PlanPaging-ValidationError-OffsetInvalid"></a>


### [PlanPaging.ValidationError.OffsetInvalid](#keyapis-subscription-v1-PlanPaging-ValidationError-OffsetInvalid)
 Причины:
- Значение сдвига < 0





 <!-- end messages -->



<a name="keyapis-subscription-v1-Plan-IconType"></a>

### [Plan.IconType](#keyapis-subscription-v1-Plan-IconType)
 Справочник типов иконок

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-subscription-v1-Plan-IconType-ICON_TYPE_UNKNOWN"></a> [ICON_TYPE_UNKNOWN](#keyapis-subscription-v1-Plan-IconType-ICON_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-subscription-v1-Plan-IconType-FAST"></a> [FAST](#keyapis-subscription-v1-Plan-IconType-FAST) | Быстро |
| 2 | <a id="keyapis-subscription-v1-Plan-IconType-FACE_REC"></a> [FACE_REC](#keyapis-subscription-v1-Plan-IconType-FACE_REC) | Распознавание лиц |
| 3 | <a id="keyapis-subscription-v1-Plan-IconType-SAFE"></a> [SAFE](#keyapis-subscription-v1-Plan-IconType-SAFE) | Безопасно |




<a name="keyapis-subscription-v1-PlanPaging-DirectionType"></a>

### [PlanPaging.DirectionType](#keyapis-subscription-v1-PlanPaging-DirectionType)
 Справочник типов направлений сортировки

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




<a name="keyapis-subscription-v1-PlanPaging-OrderByType"></a>

### [PlanPaging.OrderByType](#keyapis-subscription-v1-PlanPaging-OrderByType)
 Справочник типов значений сортировки

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-subscription-v1-PlanPaging-OrderByType-ORDER_BY_TYPE_UNKNOWN"></a> [ORDER_BY_TYPE_UNKNOWN](#keyapis-subscription-v1-PlanPaging-OrderByType-ORDER_BY_TYPE_UNKNOWN) | Значение не указано |
| 1 | <a id="keyapis-subscription-v1-PlanPaging-OrderByType-ID"></a> [ID](#keyapis-subscription-v1-PlanPaging-OrderByType-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 |

