# Протокол

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

- [keyapis/exchange/v1/keyapis_exchange_message_v1.proto](#keyapis_exchange_v1_keyapis_exchange_message_v1-proto)
    - [MessageService](#keyapis-exchange-v1-MessageService)
  
    - [MessageMobilePushCall](#keyapis-exchange-v1-MessageMobilePushCall)
    - [MessageMobilePushCall.Message](#keyapis-exchange-v1-MessageMobilePushCall-Message)
    - [MessageMobilePushCall.PushCall](#keyapis-exchange-v1-MessageMobilePushCall-PushCall)
    - [MessagePushCall](#keyapis-exchange-v1-MessagePushCall)
    - [MessagePushCall.Message](#keyapis-exchange-v1-MessagePushCall-Message)
    - [MessagePushCall.PushCall](#keyapis-exchange-v1-MessagePushCall-PushCall)
    - [PostMessageFullDuplexRequest](#keyapis-exchange-v1-PostMessageFullDuplexRequest)
    - [PostMessageFullDuplexResponse](#keyapis-exchange-v1-PostMessageFullDuplexResponse)
    - [PostMessageMobilePushCallRequest](#keyapis-exchange-v1-PostMessageMobilePushCallRequest)
    - [PostMessageMobilePushCallResponse](#keyapis-exchange-v1-PostMessageMobilePushCallResponse)
    - [PostMessagePushCallRequest](#keyapis-exchange-v1-PostMessagePushCallRequest)
    - [PostMessagePushCallResponse](#keyapis-exchange-v1-PostMessagePushCallResponse)
  
    - [MessageMobilePushCall.PushCall.Type](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type)
    - [MessagePushCall.PushCall.Type](#keyapis-exchange-v1-MessagePushCall-PushCall-Type)
  


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




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

## [keyapis/exchange/v1/keyapis_exchange_message_v1.proto](/protos/key/keyapis/exchange/v1/keyapis_exchange_message_v1.proto)
Сервис реализует функционал передачи сообщений.
Это альтернативный путь передачии команд в реальном времени в exchange минуя NATS


<a name="keyapis-exchange-v1-MessageService"></a>

### MessageService
 Сервис передачи сообщений

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="keyapis-exchange-v1-PostMessageFullDuplex"></a> [PostMessageFullDuplex](#keyapis-exchange-v1-PostMessageFullDuplex) | Полнодуплексный метод отправки задач и получения их результатов выполнения. Метод доступен для: admin, service, application(exchange:edit) | [keyapis.exchange.v1.PostMessageFullDuplexRequest](#keyapis-exchange-v1-PostMessageFullDuplexRequest) stream | [keyapis.exchange.v1.PostMessageFullDuplexResponse](#keyapis-exchange-v1-PostMessageFullDuplexResponse) stream |
| <a id="keyapis-exchange-v1-PostMessagePushCall"></a> [PostMessagePushCall](#keyapis-exchange-v1-PostMessagePushCall) | Метод отправки задач и получения их результатов выполнения. Метод доступен для: admin, service, application(exchange:edit) | [keyapis.exchange.v1.PostMessagePushCallRequest](#keyapis-exchange-v1-PostMessagePushCallRequest) | [keyapis.exchange.v1.PostMessagePushCallResponse](#keyapis-exchange-v1-PostMessagePushCallResponse) |
| <a id="keyapis-exchange-v1-PostMessageMobilePushCall"></a> [PostMessageMobilePushCall](#keyapis-exchange-v1-PostMessageMobilePushCall) | Метод отправки задач и получения их результатов выполнения для мобильного приложения. Метод доступен для: admin, service | [keyapis.exchange.v1.PostMessageMobilePushCallRequest](#keyapis-exchange-v1-PostMessageMobilePushCallRequest) | [keyapis.exchange.v1.PostMessageMobilePushCallResponse](#keyapis-exchange-v1-PostMessageMobilePushCallResponse) |

 <!-- end services -->


<a name="keyapis-exchange-v1-MessageMobilePushCall"></a>


### [MessageMobilePushCall](#keyapis-exchange-v1-MessageMobilePushCall)
 Звонковое сообщение для мобильных приложений


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessageMobilePushCall-message"></a> [message](#keyapis-exchange-v1-MessageMobilePushCall-message) | Сообщение |    [keyapis.exchange.v1.MessageMobilePushCall.Message](#keyapis-exchange-v1-MessageMobilePushCall-Message) | REQUIRED|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-push_call"></a> [push_call](#keyapis-exchange-v1-MessageMobilePushCall-push_call) | Звонковый пуш |    [keyapis.exchange.v1.MessageMobilePushCall.PushCall](#keyapis-exchange-v1-MessageMobilePushCall-PushCall) | REQUIRED|






<a name="keyapis-exchange-v1-MessageMobilePushCall-Message"></a>


### [MessageMobilePushCall.Message](#keyapis-exchange-v1-MessageMobilePushCall-Message)
 Сообщение


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-title"></a> [title](#keyapis-exchange-v1-MessageMobilePushCall-Message-title) | Заголовок уведомления |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-device_id"></a> [device_id](#keyapis-exchange-v1-MessageMobilePushCall-Message-device_id) | Идентификатор устройства источника |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-device_title"></a> [device_title](#keyapis-exchange-v1-MessageMobilePushCall-Message-device_title) | Название устройства источника |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-device_camera_id"></a> [device_camera_id](#keyapis-exchange-v1-MessageMobilePushCall-Message-device_camera_id) | Идентификатор камеры устройства источника. Тип: Guid |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-sip_token"></a> [sip_token](#keyapis-exchange-v1-MessageMobilePushCall-Message-sip_token) | SIP-токен |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-sip_server_host"></a> [sip_server_host](#keyapis-exchange-v1-MessageMobilePushCall-Message-sip_server_host) | Адрес SIP сервера |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-sip_server_port"></a> [sip_server_port](#keyapis-exchange-v1-MessageMobilePushCall-Message-sip_server_port) | Порт SIP сервера |    [google.protobuf.Int32Value](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-sip_account_login"></a> [sip_account_login](#keyapis-exchange-v1-MessageMobilePushCall-Message-sip_account_login) | Логин SIP аккаунта |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-sip_account_password"></a> [sip_account_password](#keyapis-exchange-v1-MessageMobilePushCall-Message-sip_account_password) | Пароль SIP аккаунта |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-stun_server_host"></a> [stun_server_host](#keyapis-exchange-v1-MessageMobilePushCall-Message-stun_server_host) | Адрес STUN сервера |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-stun_server_port"></a> [stun_server_port](#keyapis-exchange-v1-MessageMobilePushCall-Message-stun_server_port) | Порт STUN сервера |    [google.protobuf.Int32Value](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-Message-call_created_at"></a> [call_created_at](#keyapis-exchange-v1-MessageMobilePushCall-Message-call_created_at) | Момент инициации звонка |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | REQUIRED|






<a name="keyapis-exchange-v1-MessageMobilePushCall-PushCall"></a>


### [MessageMobilePushCall.PushCall](#keyapis-exchange-v1-MessageMobilePushCall-PushCall)
 Звонковый пуш


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-token"></a> [token](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-token) | Пуш-токен адресата звонка |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-type"></a> [type](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-type) | Тип пуш-токена |    [keyapis.exchange.v1.MessageMobilePushCall.PushCall.Type](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type) | REQUIRED|






<a name="keyapis-exchange-v1-MessagePushCall"></a>


### [MessagePushCall](#keyapis-exchange-v1-MessagePushCall)
 Звонковое сообщение


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessagePushCall-message"></a> [message](#keyapis-exchange-v1-MessagePushCall-message) | Сообщение |    [keyapis.exchange.v1.MessagePushCall.Message](#keyapis-exchange-v1-MessagePushCall-Message) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-push_call"></a> [push_call](#keyapis-exchange-v1-MessagePushCall-push_call) | Звонковый пуш |    [keyapis.exchange.v1.MessagePushCall.PushCall](#keyapis-exchange-v1-MessagePushCall-PushCall) | REQUIRED|






<a name="keyapis-exchange-v1-MessagePushCall-Message"></a>


### [MessagePushCall.Message](#keyapis-exchange-v1-MessagePushCall-Message)
 Сообщение


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessagePushCall-Message-title"></a> [title](#keyapis-exchange-v1-MessagePushCall-Message-title) | Заголовок уведомления |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-device_id"></a> [device_id](#keyapis-exchange-v1-MessagePushCall-Message-device_id) | Идентификатор устройства источника |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-device_title"></a> [device_title](#keyapis-exchange-v1-MessagePushCall-Message-device_title) | Название устройства источника |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-device_camera_id"></a> [device_camera_id](#keyapis-exchange-v1-MessagePushCall-Message-device_camera_id) | Идентификатор камеры устройства источника. Тип: Guid |    [google.protobuf.StringValue](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | <nil>|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-sip_server_host"></a> [sip_server_host](#keyapis-exchange-v1-MessagePushCall-Message-sip_server_host) | Адрес SIP сервера |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-sip_server_port"></a> [sip_server_port](#keyapis-exchange-v1-MessagePushCall-Message-sip_server_port) | Порт SIP сервера |    [int32](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-sip_account_login"></a> [sip_account_login](#keyapis-exchange-v1-MessagePushCall-Message-sip_account_login) | Логин SIP аккаунта |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-sip_account_password"></a> [sip_account_password](#keyapis-exchange-v1-MessagePushCall-Message-sip_account_password) | Пароль SIP аккаунта |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-Message-call_created_at"></a> [call_created_at](#keyapis-exchange-v1-MessagePushCall-Message-call_created_at) | Момент инициации звонка |    [google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | REQUIRED|






<a name="keyapis-exchange-v1-MessagePushCall-PushCall"></a>


### [MessagePushCall.PushCall](#keyapis-exchange-v1-MessagePushCall-PushCall)
 Звонковый пуш


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-MessagePushCall-PushCall-token"></a> [token](#keyapis-exchange-v1-MessagePushCall-PushCall-token) | Пуш-токен адресата звонка |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-MessagePushCall-PushCall-type"></a> [type](#keyapis-exchange-v1-MessagePushCall-PushCall-type) | Тип пуш-токена |    [keyapis.exchange.v1.MessagePushCall.PushCall.Type](#keyapis-exchange-v1-MessagePushCall-PushCall-Type) | REQUIRED|






<a name="keyapis-exchange-v1-PostMessageFullDuplexRequest"></a>


### [PostMessageFullDuplexRequest](#keyapis-exchange-v1-PostMessageFullDuplexRequest)
 Поток отправляемых событий


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-PostMessageFullDuplexRequest-request_id"></a> [request_id](#keyapis-exchange-v1-PostMessageFullDuplexRequest-request_id) | Идентификатор запроса |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-PostMessageFullDuplexRequest-post_message_push_call"></a> [post_message_push_call](#keyapis-exchange-v1-PostMessageFullDuplexRequest-post_message_push_call) | Отправка звонкового сообщения |  optional  [keyapis.exchange.v1.PostMessagePushCallRequest](#keyapis-exchange-v1-PostMessagePushCallRequest) | <nil>|






<a name="keyapis-exchange-v1-PostMessageFullDuplexResponse"></a>


### [PostMessageFullDuplexResponse](#keyapis-exchange-v1-PostMessageFullDuplexResponse)
 Поток ответов на задачи


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-PostMessageFullDuplexResponse-request_id"></a> [request_id](#keyapis-exchange-v1-PostMessageFullDuplexResponse-request_id) | Идентификатор ответа |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-exchange-v1-PostMessageFullDuplexResponse-post_message_push_call"></a> [post_message_push_call](#keyapis-exchange-v1-PostMessageFullDuplexResponse-post_message_push_call) | Ответ на отправку звонкового сообщения |  optional  [keyapis.exchange.v1.PostMessagePushCallResponse](#keyapis-exchange-v1-PostMessagePushCallResponse) | <nil>|






<a name="keyapis-exchange-v1-PostMessageMobilePushCallRequest"></a>


### [PostMessageMobilePushCallRequest](#keyapis-exchange-v1-PostMessageMobilePushCallRequest)
 Запрос на отправку звонкового пуш сообщения для мобильного приложения


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-PostMessageMobilePushCallRequest-data"></a> [data](#keyapis-exchange-v1-PostMessageMobilePushCallRequest-data) | Звонковый пуш |    [keyapis.exchange.v1.MessageMobilePushCall](#keyapis-exchange-v1-MessageMobilePushCall) | REQUIRED|






<a name="keyapis-exchange-v1-PostMessageMobilePushCallResponse"></a>


### [PostMessageMobilePushCallResponse](#keyapis-exchange-v1-PostMessageMobilePushCallResponse)
 Ответ на запрос на отправку звонкового пуш сообщения для мобильного приложения






<a name="keyapis-exchange-v1-PostMessagePushCallRequest"></a>


### [PostMessagePushCallRequest](#keyapis-exchange-v1-PostMessagePushCallRequest)
 Запрос на отправку звонкового пуш сообщения


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-exchange-v1-PostMessagePushCallRequest-data"></a> [data](#keyapis-exchange-v1-PostMessagePushCallRequest-data) | Звонковый пуш |    [keyapis.exchange.v1.MessagePushCall](#keyapis-exchange-v1-MessagePushCall) | REQUIRED|






<a name="keyapis-exchange-v1-PostMessagePushCallResponse"></a>


### [PostMessagePushCallResponse](#keyapis-exchange-v1-PostMessagePushCallResponse)
 Ответ на запрос на отправку звонкового пуш сообщения





 <!-- end messages -->



<a name="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type"></a>

### [MessageMobilePushCall.PushCall.Type](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type)
 Тип пуш-токена

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-TYPE_UNKNOWN"></a> [TYPE_UNKNOWN](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-TYPE_UNKNOWN) | Не указан |
| 1 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_FCM"></a> [MOBILE_FCM](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_FCM) | Для Mobile Firebase Cloud Messaging |
| 2 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_HMS"></a> [MOBILE_HMS](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_HMS) | Для Mobile Huawei Messaging System |
| 3 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_APNS_TEXT"></a> [MOBILE_APNS_TEXT](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_APNS_TEXT) | Для Mobile Apple PushToken System для текста |
| 4 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_APNS_CALL"></a> [MOBILE_APNS_CALL](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_APNS_CALL) | Для Mobile Apple PushToken System для звонков |
| 5 | <a id="keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_RUSTORE"></a> [MOBILE_RUSTORE](#keyapis-exchange-v1-MessageMobilePushCall-PushCall-Type-MOBILE_RUSTORE) | Для Mobile RuStore |




<a name="keyapis-exchange-v1-MessagePushCall-PushCall-Type"></a>

### [MessagePushCall.PushCall.Type](#keyapis-exchange-v1-MessagePushCall-PushCall-Type)
 Тип пуш-токена

| Номер | Тип | Название |
| ----- | --- | -------- |
| 0 | <a id="keyapis-exchange-v1-MessagePushCall-PushCall-Type-TYPE_UNKNOWN"></a> [TYPE_UNKNOWN](#keyapis-exchange-v1-MessagePushCall-PushCall-Type-TYPE_UNKNOWN) | Не указан |
| 1 | <a id="keyapis-exchange-v1-MessagePushCall-PushCall-Type-PWA_FCM"></a> [PWA_FCM](#keyapis-exchange-v1-MessagePushCall-PushCall-Type-PWA_FCM) | Для PWA Firebase Cloud Messaging |
| 2 | <a id="keyapis-exchange-v1-MessagePushCall-PushCall-Type-PWA_APNS"></a> [PWA_APNS](#keyapis-exchange-v1-MessagePushCall-PushCall-Type-PWA_APNS) | Для PWA Apple Notification System |


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

