Протокол¶
Оглавление¶
-
keyapis/telemetry_alerting/v1/keyapis_telemetry_alerting_trigger_v1.proto
- DeleteTriggerAlertRequest
- DeleteTriggerAlertResponse
- DeleteTriggerRequest
- DeleteTriggerResponse
- GetTriggerAlertCountRequest
- GetTriggerAlertCountResponse
- GetTriggerAlertDeviceListRequest
- GetTriggerAlertDeviceListResponse
- GetTriggerAlertListRequest
- GetTriggerAlertListResponse
- GetTriggerCountRequest
- GetTriggerCountResponse
- GetTriggerListRequest
- GetTriggerListResponse
- GetTriggerRequest
- GetTriggerResponse
- PostTriggerAlertDisableRequest
- PostTriggerAlertDisableResponse
- PostTriggerRequest
- PostTriggerResponse
- Trigger
- Trigger.Alert
- Trigger.FixedDaysOfMonth
- TriggerAlertFilter
- TriggerAlertPaging
- TriggerFilter
- Trigger.DeviceType
- Trigger.MetricGroupingType
- Trigger.MetricType
- Trigger.PeriodType
- Trigger.SeverityType
- TriggerAlertPaging.DirectionType
- TriggerAlertPaging.OrderByType
- TriggerPaging.DirectionType
- TriggerPaging.OrderByType
Схема классов¶
keyapis/telemetry_alerting/v1/keyapis_telemetry_alerting_trigger_v1.proto¶
Сервис реализует функционал управления оповещениями о проблемах сбора показаний телеметрии (алертинга)
TriggerService¶
Сервис алертинга
| Название метода | Описание | Тип запроса | Тип ответа |
|---|---|---|---|
| PostTrigger | Метод сохранения триггера. Поддерживает создание и обновление. Метод доступен для: service, application(telemetry:edit) | keyapis.telemetry_alerting.v1.PostTriggerRequest | keyapis.telemetry_alerting.v1.PostTriggerResponse |
| GetTrigger | Чтение одного триггера. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerRequest | keyapis.telemetry_alerting.v1.GetTriggerResponse |
| GetTriggerList | Метод получения списка триггеров. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerListRequest | keyapis.telemetry_alerting.v1.GetTriggerListResponse stream |
| GetTriggerCount | Метод получения количества триггеров. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerCountRequest | keyapis.telemetry_alerting.v1.GetTriggerCountResponse |
| DeleteTrigger | Удаление триггера. Метод удаляет только отключенный триггер (is_disabled=true). Удаление неотключенного вызовет ошибку. При удалении триггера удаляются и все его алерты. Метод доступен для: service, application(telemetry:edit) | keyapis.telemetry_alerting.v1.DeleteTriggerRequest | keyapis.telemetry_alerting.v1.DeleteTriggerResponse |
| GetTriggerAlertList | Метод получения списка алертов. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerAlertListRequest | keyapis.telemetry_alerting.v1.GetTriggerAlertListResponse stream |
| GetTriggerAlertCount | Метод получения количества алертов. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerAlertCountRequest | keyapis.telemetry_alerting.v1.GetTriggerAlertCountResponse |
| DeleteTriggerAlert | Удаление алерта. Метод удаляет только погашенный алерт (is_disabled=true). Удаление непогашенного вызовет ошибку. Метод доступен для: service, application(telemetry:edit) | keyapis.telemetry_alerting.v1.DeleteTriggerAlertRequest | keyapis.telemetry_alerting.v1.DeleteTriggerAlertResponse |
| PostTriggerAlertDisable | Принудительное выключение алерта. Дата closed_at проставляется текущим временем. Флаг is_disabled проставляется true. Флаг is_manually_closed проставляется true. Можно принудительно выключать только алерты созданные по триггерам с атрибутом manually_unclosable=false. Метод доступен для: service, application(telemetry:edit) | keyapis.telemetry_alerting.v1.PostTriggerAlertDisableRequest | keyapis.telemetry_alerting.v1.PostTriggerAlertDisableResponse |
| GetTriggerAlertDeviceList | Список устройств, вызвавших появление алерта. Метод доступен для: service, application(telemetry:read или telemetry:edit) | keyapis.telemetry_alerting.v1.GetTriggerAlertDeviceListRequest | keyapis.telemetry_alerting.v1.GetTriggerAlertDeviceListResponse stream |
AlertDevice¶
Факты сработки алерта на устройствах
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| alert_id | Идентификатор алерта | int32 | REQUIRED |
| device_id | Идентификатор устройства | int32 | REQUIRED |
DeleteTriggerAlertRequest¶
Запрос на удаление алерта
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор алерта | int32 | REQUIRED |
DeleteTriggerAlertResponse¶
Ответ на запрос удаление алерта
DeleteTriggerRequest¶
Запрос на удаление триггера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор триггера | int32 | REQUIRED |
DeleteTriggerResponse¶
Ответ на запрос удаление триггера
GetTriggerAlertCountRequest¶
Запрос получения списка алертов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Параметры фильтрации | keyapis.telemetry_alerting.v1.TriggerAlertFilter |
GetTriggerAlertCountResponse¶
Ответ на запрос получения количества записей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Всего записей | optional int32 |
GetTriggerAlertDeviceListRequest¶
Запрос списка устройств, вызвавших появление алерта
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор алерта | int32 | REQUIRED |
| filter | Параметры фильтрации алерта | keyapis.telemetry_alerting.v1.TriggerAlertFilter | |
| paging | Параметры пагинации | optional keyapis.telemetry_alerting.v1.TriggerAlertPaging |
GetTriggerAlertDeviceListResponse¶
Ответ на запрос списка устройств, вызвавших появление алерта
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Факт сработки триггера | optional keyapis.telemetry_alerting.v1.AlertDevice |
GetTriggerAlertListRequest¶
Запрос получения списка алертов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Параметры фильтрации | keyapis.telemetry_alerting.v1.TriggerAlertFilter | |
| paging | Параметры пагинации | optional keyapis.telemetry_alerting.v1.TriggerAlertPaging |
GetTriggerAlertListResponse¶
Ответ на запрос получения списка записей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Алерт | optional keyapis.telemetry_alerting.v1.Trigger.Alert |
GetTriggerCountRequest¶
Запрос получения количества записей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Параметры фильтрации | keyapis.telemetry_alerting.v1.TriggerFilter |
GetTriggerCountResponse¶
Ответ на запрос получения количества записей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Всего записей | optional int32 |
GetTriggerListRequest¶
Запрос получения списка триггеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Параметры фильтрации | keyapis.telemetry_alerting.v1.TriggerFilter | |
| paging | Параметры пагинации | optional keyapis.telemetry_alerting.v1.TriggerPaging |
GetTriggerListResponse¶
Ответ на запрос получения списка записей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Триггер | optional keyapis.telemetry_alerting.v1.Trigger |
GetTriggerRequest¶
Запрос на чтение триггера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор триггера | int32 | REQUIRED |
GetTriggerResponse¶
Ответ на чтение триггера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Триггер | optional keyapis.telemetry_alerting.v1.Trigger |
PostTriggerAlertDisableRequest¶
Запрос на погашение алерта
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор алерта | int32 | REQUIRED |
| closing_reason | Причина принудительного закрытия, заполняется в момент принудительного закрытия | google.protobuf.StringValue |
PostTriggerAlertDisableResponse¶
Ответ на запрос погашение алерта
PostTriggerRequest¶
Запрос на создание триггера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Триггер, который хотим создать или обновить | keyapis.telemetry_alerting.v1.Trigger | REQUIRED |
PostTriggerResponse¶
Ответ на запрос сохранения триггера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Триггер, созданный или обновленный | optional keyapis.telemetry_alerting.v1.Trigger |
Trigger¶
Триггер
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор | int32 | |
| changed_at | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта | google.protobuf.Timestamp | OUTPUT_ONLY |
| title | Название триггера | string | REQUIRED |
| criteria_type | Тип критерия триггера | keyapis.telemetry_alerting.v1.Trigger.CriteriaType | REQUIRED |
| threshold | Пороговое значение триггера | float | REQUIRED |
| sliding_days | Скользящее окно относительно текущего момента. Начало окна это 00:00:00.000 UTC дня на sliding_days раньше текущего UTC дня. Конец окна - текущий момент | optional int32 | |
| fixed_days_range | Границы временного окна, в текущем или предыдущем месяце | optional keyapis.telemetry_alerting.v1.Trigger.FixedDaysOfMonth | |
| period_type | Тип периода контроля | keyapis.telemetry_alerting.v1.Trigger.PeriodType | REQUIRED |
| severity_type | Уровень критичности проблемы, которая описана критерием. Задает приоритет оповещения и реагирования | keyapis.telemetry_alerting.v1.Trigger.SeverityType | REQUIRED |
| is_disabled | Флаг активности триггера. При погашении триггера гасятся и все его алерты | bool | REQUIRED |
| instruction | Краткая инструкция по решению или эскалации проблемы | google.protobuf.StringValue | |
| metric_types | Фильтрация метрик по типам метрик. При нескольких элементах фильтрация срабатывает по значениям через ИЛИ | repeated keyapis.telemetry_alerting.v1.Trigger.MetricType | |
| device_models | Фильтрация метрик по значению моделей устройств. При нескольких элементах фильтрация срабатывает по значениям через ИЛИ | repeated string | |
| device_types | Фильтрация метрик по значению типов устройств. При нескольких элементах фильтрация срабатывает по значениям через ИЛИ | repeated keyapis.telemetry_alerting.v1.Trigger.DeviceType | |
| metric_grouping_type | Тип группировки метрик при вычислении критерия | keyapis.telemetry_alerting.v1.Trigger.MetricGroupingType | |
| success_threshold | Количество отрицательных проверок критерия, после которого сервис отключает | int32 | |
| tags | Произвольные теги для фильтрации и упорядочивания | repeated string | |
| is_manually_unclosable | Флаг невозможности погашения алертов этого триггера | bool | |
| is_range_metric_expected_freq | Признак контроля триггером временного окна выборки метрик на основе поля индикатора metric_expected_freq. При значении true: поля range.sliding_days, range.fixed_days_range игнорируются при работе триггера. При значении true: временное окно выборки метрик при работе триггера работает как sliding_days=indicator.metric_expected_freq. При значении true: Для случаев indicator.metric_expected_freq=null индикатор игнорируется при работе триггера, алерт по нему не создается. При значении true: Для случаев indicator.metric_expected_freq<=0 индикатор игнорируется при работе триггера, алерт по нему не создается | bool |
Trigger.Alert¶
Определение проблемы, сгенерированной по триггеру
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор | int32 | OUTPUT_ONLY |
| changed_at | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта | google.protobuf.Timestamp | OUTPUT_ONLY |
| trigger_id | Породивший триггер | int32 | REQUIRED |
| fias_id | ФИАС | string | REQUIRED |
| raised_at | Время возникновения алерта | google.protobuf.Timestamp | REQUIRED |
| is_disabled | Признак погашенного алерта. Проставляется сервисом при no_alarm_checks_count >= success_threshold | bool | REQUIRED |
| no_alarm_checks_count | Количество проверок триггера для атрибутов данного алерта, при которых не выполнился критерий триггера. Увеличивается у непогашенного алерта, если при очередной проверке нет срабатывания триггера с атрибутами данного алерта. При увеличении проставляется changed_at | int32 | REQUIRED |
| trigger_metric_types | Типы метрик, по которым были отфильтрованы метрики | repeated keyapis.telemetry_alerting.v1.Trigger.MetricType | |
| device_models | Модели устройств, по которым были отфильтрованы метрики | repeated string | |
| trigger_device_types | Типы устройств, по которым были отфильтрованы метрики | repeated keyapis.telemetry_alerting.v1.Trigger.DeviceType | |
| device_parent_id | Идентификаторы родительских устройств, по которому были сгруппированы метрики | google.protobuf.Int32Value | |
| closed_at | Время погашения алерта. Пустой или отсутствует у непогашенного активного алерта | google.protobuf.Timestamp | |
| is_manually_closed | Признак принудительного погашения алерта | bool | |
| closing_reason | Причина принудительного закрытия, заполняется в момент принудительного закрытия | google.protobuf.StringValue | |
| trigger_metric_grouping_type | Группировка метрик при вычислении критерия | keyapis.telemetry_alerting.v1.Trigger.MetricGroupingType |
Trigger.FixedDaysOfMonth¶
Границы временного окна, в текущем или предыдущем месяце. Если end_day текущего месяца не наступил, то берем прошлый месяц
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| start_day | Начало окна времени. Номер дня месяца, момент времени 00:00:00.000 UTC | int32 | |
| end_day | Конец окна времени. Номер дня месяца, момент времени 00:00:00.000 UTC | int32 |
TriggerAlertFilter¶
Параметры фильтрации алертов. При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ. При передаче нескольких разных параметров фильтра они работают в выборке через И
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| trigger_severity_types | По важности триггера | repeated keyapis.telemetry_alerting.v1.Trigger.SeverityType | |
| fias_ids | По ФИАСам | repeated string | |
| tags | По тэгам | repeated string | |
| metric_types | По типам метрик триггера | repeated keyapis.telemetry_alerting.v1.Trigger.MetricType | |
| device_models | По моделям устройств | repeated string | |
| device_types | По типам устройств | repeated keyapis.telemetry_alerting.v1.Trigger.DeviceType | |
| device_parent_ids | По идентификаторам родительских устройств | repeated int32 | |
| device_ids | По идентификаторам устройств | repeated int32 | |
| is_disabled | По признаку активности | google.protobuf.BoolValue | |
| after_raised_at | От даты возникновения включительно (>=) | google.protobuf.Timestamp | |
| before_raised_at | До даты возникновения (<) | google.protobuf.Timestamp | |
| metric_grouping_types | По типам группировки метрик | repeated keyapis.telemetry_alerting.v1.Trigger.MetricGroupingType | |
| trigger_ids | По идентификаторам триггеров | repeated int32 |
TriggerAlertPaging¶
Параметры пагинации алертов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| order_by_type | Тип значения сортировки. По умолчанию: ORDER_BY_TYPE_RAISED_AT | keyapis.telemetry_alerting.v1.TriggerAlertPaging.OrderByType | |
| direction_type | Тип направления сортировки. По умолчанию: DESC | keyapis.telemetry_alerting.v1.TriggerAlertPaging.DirectionType | |
| limit | Сколько элементов нужно получить за раз. Минимальное значение: 1. Максимальное значение: 100. По умолчанию: 20. Если значение 0 (не передано), то выставляем значение по умолчанию | int32 | |
| offset | Начальный сдвиг. По умолчанию: 0 | int32 |
TriggerFilter¶
Параметры фильтрации триггеров. При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ. При передаче нескольких разных параметров фильтра они работают в выборке через И
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| severity_types | По уровням критичности | repeated keyapis.telemetry_alerting.v1.Trigger.SeverityType | |
| tags | По тэгам | repeated string | |
| metric_types | По типам метрик триггеров | repeated keyapis.telemetry_alerting.v1.Trigger.MetricType | |
| device_models | По моделям устройств | repeated string | |
| device_types | По типам устройств | repeated keyapis.telemetry_alerting.v1.Trigger.DeviceType | |
| metric_grouping_types | По типам группировки метрик | repeated keyapis.telemetry_alerting.v1.Trigger.MetricGroupingType | |
| is_disabled | По признаку активности триггера | google.protobuf.BoolValue |
TriggerPaging¶
Параметры пагинации триггеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| order_by_type | Тип значения сортировки. По умолчанию: SEVERITY | keyapis.telemetry_alerting.v1.TriggerPaging.OrderByType | |
| direction_type | Тип направления сортировки. По умолчанию: ASC | keyapis.telemetry_alerting.v1.TriggerPaging.DirectionType | |
| limit | Сколько элементов нужно получить за раз. Минимальное значение: 1. Максимальное значение: 100. По умолчанию: 20. Если значение 0 (не передано), то выставляем значение по умолчанию | int32 | |
| offset | Начальный сдвиг. По умолчанию: 0 | int32 |
Trigger.CriteriaType¶
Справочник типов критерия триггера. Задает параметры критерия, правила поиска проблемы и генерации алерта
| Номер | Тип | Название |
|---|---|---|
| 0 | CRITERIA_TYPE_UNKNOWN | Значение не указано |
| 1 | METRICS_COUNT | Количество метрик меньше порога |
| 2 | DEVICE_PERCENT | Доля работающих устройств в группе меньше порога |
| 3 | METRICS_VALUE_DEVIATION | Превышение порога дисперсии значений показаний |
Trigger.DeviceType¶
Справочник типов ПУ
| Номер | Тип | Название |
|---|---|---|
| 0 | DEVICE_TYPE_UNKNOWN | Значение не указано |
| 1 | HUB | Коммуникационный модуль |
| 2 | PULSE_COUNTER_RECORDER | Счетчик импульсов - регистратор |
| 3 | PULSE_COUNTER_RECORDER_LR | Счетчик импульсов - регистратор LoRaWAN |
| 4 | METERING_DEVICE | Прибор учета расхода коммунальных услуг |
| 5 | INTERFACE_CONVERTER | Конвертер интерфейсов |
| 6 | M_BUS_HUB | M-BUS концентратор |
| 7 | COMMUNICATION_MODULE_LR | Модуль связи LoRaWAN |
| 8 | BASE_LR | Базовая станция LoRaWAN |
Trigger.MetricGroupingType¶
Типы группировок метрик при вычислении критерия
| Номер | Тип | Название |
|---|---|---|
| 0 | METRIC_GROUPING_TYPE_UNKNOWN | Значение не указано |
| 1 | PARENT_ID | Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета) |
| 2 | DEVICE_ID | Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика) |
Trigger.MetricType¶
Справочник типов энергоресурсов, собираемых ТУ
| Номер | Тип | Название |
|---|---|---|
| 0 | METRIC_TYPE_UNKNOWN | Значение не указано |
| 1 | HOT_WATER | Горячая вода |
| 2 | COLD_WATER | Холодная вода |
| 3 | HEAT | Теплоэнергия |
| 4 | GAS | Газ |
| 5 | ELECTRICITY | Электроэнергия |
Trigger.PeriodType¶
Справочник типов периодов контроля триггера
| Номер | Тип | Название |
|---|---|---|
| 0 | PERIOD_TYPE_UNKNOWN | Значение не указано |
| 1 | DAY | День |
| 2 | MONTH | Месяц |
Trigger.SeverityType¶
Справочник типов уровней критичности
| Номер | Тип | Название |
|---|---|---|
| 0 | SEVERITY_TYPE_UNKNOWN | Значение не указано |
| 1 | CRITICAL | Проблема высшего приоритета. Максимальное оповещение |
| 2 | WARNING | Проблема среднего приоритета. Оповещение по внутренним каналам |
| 3 | INFO | Проблема не влияет на бизнес-пользователя. Отражается во внутренних интерфейсах |
TriggerAlertPaging.DirectionType¶
Справочник типов направлений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | DIRECTION_TYPE_UNKNOWN | Значение не указано |
| 1 | DESC | От большего к меньшему |
| 2 | ASC | От меньшего к большему |
TriggerAlertPaging.OrderByType¶
Справочник типов значений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | ORDER_BY_TYPE_UNKNOWN | Значение не указано |
| 1 | RAISED_AT | По дате возникновения |
| 2 | TRIGGER_ID | По идентификатору триггера |
| 3 | TITLE | По заголовку триггера |
| 4 | DISABLED | По флагу активности триггера |
| 5 | SEVERITY | По триггеру |
TriggerPaging.DirectionType¶
Справочник типов направлений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | DIRECTION_TYPE_UNKNOWN | Значение не указано |
| 1 | DESC | От большего к меньшему |
| 2 | ASC | От меньшего к большему |
TriggerPaging.OrderByType¶
Справочник типов значений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | ORDER_BY_TYPE_UNKNOWN | Значение не указано |
| 1 | ID | По идентификатору |
| 2 | TITLE | По заголовку |
| 3 | DISABLED | По флагу активности |
| 4 | SEVERITY | По Severity |
Скалярные типы значений¶
| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
|---|---|---|---|---|---|---|---|---|
| double | float | float64 | Float | double | double | double | float | |
| float | float | float32 | Float | float | float | float | float | |
| int32 | 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 | 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 | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| uint64 | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| sint32 | 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 | 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 | 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 | 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 | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| sfixed64 | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| bool | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| bytes | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |