{
  "files": [
    {
      "name": "keyapis/bell/v1/keyapis_bell_notification_v1.proto",
      "description": "Сервис реализует функционал управления уведомлениями",
      "package": "keyapis.bell.v1",
      "hasEnums": false,
      "hasExtensions": false,
      "hasMessages": true,
      "hasServices": true,
      "enums": [
        {
          "name": "StatusType",
          "longName": "Notification.StatusType",
          "fullName": "keyapis.bell.v1.Notification.StatusType",
          "description": "Статус",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "NEW",
              "number": "1",
              "description": "Новый.\nУстанавливается по умолчанию"
            },
            {
              "name": "DELIVERED",
              "number": "2",
              "description": "Доставлен"
            },
            {
              "name": "VIEWED",
              "number": "3",
              "description": "Просмотрен"
            }
          ]
        },
        {
          "name": "DirectionType",
          "longName": "NotificationPaging.DirectionType",
          "fullName": "keyapis.bell.v1.NotificationPaging.DirectionType",
          "description": "Справочник типов направлений сортировки.\n# Тип: byte",
          "values": [
            {
              "name": "DIRECTION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DESC",
              "number": "1",
              "description": "От большего к меньшему"
            },
            {
              "name": "ASC",
              "number": "2",
              "description": "От меньшего к большему"
            }
          ]
        },
        {
          "name": "OrderByType",
          "longName": "NotificationPaging.OrderByType",
          "fullName": "keyapis.bell.v1.NotificationPaging.OrderByType",
          "description": "Справочник типов значений сортировки.\n# Тип: byte",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "CREATED_AT",
              "number": "1",
              "description": "По дате создания"
            },
            {
              "name": "STATUS_CHANGED_AT",
              "number": "2",
              "description": "По дате последнего изменения статуса"
            }
          ]
        }
      ],
      "extensions": [],
      "messages": [
        {
          "name": "GetNotificationCountRequest",
          "longName": "GetNotificationCountRequest",
          "fullName": "keyapis.bell.v1.GetNotificationCountRequest",
          "description": "Запрос получения количества уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "NotificationFilter",
              "longType": "NotificationFilter",
              "fullType": "keyapis.bell.v1.NotificationFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetNotificationCountResponse",
          "longName": "GetNotificationCountResponse",
          "fullName": "keyapis.bell.v1.GetNotificationCountResponse",
          "description": "Ответ на запрос на получение количества уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Количество уведомлений",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetNotificationCountResponse.Error",
              "fullType": "keyapis.bell.v1.GetNotificationCountResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetNotificationCountResponse.Error",
          "fullName": "keyapis.bell.v1.GetNotificationCountResponse.Error",
          "description": "Ошибка запроса на получение количества уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetNotificationListRequest",
          "longName": "GetNotificationListRequest",
          "fullName": "keyapis.bell.v1.GetNotificationListRequest",
          "description": "Запрос получения списка уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "NotificationFilter",
              "longType": "NotificationFilter",
              "fullType": "keyapis.bell.v1.NotificationFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Стандартный постраничный вывод",
              "label": "",
              "type": "NotificationPaging",
              "longType": "NotificationPaging",
              "fullType": "keyapis.bell.v1.NotificationPaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetNotificationListResponse",
          "longName": "GetNotificationListResponse",
          "fullName": "keyapis.bell.v1.GetNotificationListResponse",
          "description": "Ответ на запрос на получение списка уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Уведомление",
              "label": "",
              "type": "Notification",
              "longType": "Notification",
              "fullType": "keyapis.bell.v1.Notification",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetNotificationListResponse.Error",
              "fullType": "keyapis.bell.v1.GetNotificationListResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetNotificationListResponse.Error",
          "fullName": "keyapis.bell.v1.GetNotificationListResponse.Error",
          "description": "Ошибка запроса на получение списка уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetNotificationRequest",
          "longName": "GetNotificationRequest",
          "fullName": "keyapis.bell.v1.GetNotificationRequest",
          "description": "Запрос получения уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор уведомления.\n# Тип: Guid",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "GetNotificationResponse",
          "longName": "GetNotificationResponse",
          "fullName": "keyapis.bell.v1.GetNotificationResponse",
          "description": "Ответ на запрос на получение уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Уведомление",
              "label": "",
              "type": "Notification",
              "longType": "Notification",
              "fullType": "keyapis.bell.v1.Notification",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetNotificationResponse.Error",
              "fullType": "keyapis.bell.v1.GetNotificationResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetNotificationResponse.Error",
          "fullName": "keyapis.bell.v1.GetNotificationResponse.Error",
          "description": "Ошибка запроса на получение уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Notification",
          "longName": "Notification",
          "fullName": "keyapis.bell.v1.Notification",
          "description": "Уведомление.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор.\nСоздаётся сервером.\n# Тип: Guid",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "orpon",
              "description": "ОРПОН.\n# Диапазон 1..9223372036854775807",
              "label": "",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "app_title",
              "description": "Наименование приложения-отправителя.\n# Диапазон: 3..256",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "room_number",
              "description": "Номер квартиры.\n# Диапазон: 1..4",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "header",
              "description": "Заголовок.\n# Диапазон: 3..128",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 5
            },
            {
              "name": "text",
              "description": "Тело.\n# Диапазон: 3..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 6
            },
            {
              "name": "status_type",
              "description": "Статус",
              "label": "",
              "type": "StatusType",
              "longType": "Notification.StatusType",
              "fullType": "keyapis.bell.v1.Notification.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 7
            },
            {
              "name": "created_at",
              "description": "Дата создания.\n# Тип: DateTime",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 8
            },
            {
              "name": "status_changed_at",
              "description": "Дата последнего изменения статуса.\nЗаполняется и обновляется сервером.\n# Тип: DateTime",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 9
            },
            {
              "name": "payload",
              "description": "Полезная нагрузка",
              "label": "repeated",
              "type": "PayloadEntry",
              "longType": "Notification.PayloadEntry",
              "fullType": "keyapis.bell.v1.Notification.PayloadEntry",
              "ismap": true,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 10
            }
          ]
        },
        {
          "name": "PayloadEntry",
          "longName": "Notification.PayloadEntry",
          "fullName": "keyapis.bell.v1.Notification.PayloadEntry",
          "description": "",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "key",
              "description": "",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "value",
              "description": "",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "NotificationFilter",
          "longName": "NotificationFilter",
          "fullName": "keyapis.bell.v1.NotificationFilter",
          "description": "Фильтр уведомлений",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "orpons",
              "description": "По ОРПОН",
              "label": "repeated",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "room_numbers",
              "description": "По номерам квартир",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "status_types",
              "description": "По статусам",
              "label": "repeated",
              "type": "StatusType",
              "longType": "Notification.StatusType",
              "fullType": "keyapis.bell.v1.Notification.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            }
          ]
        },
        {
          "name": "NotificationPaging",
          "longName": "NotificationPaging",
          "fullName": "keyapis.bell.v1.NotificationPaging",
          "description": "Постраничный вывод",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nЕсли значение не передано, то будет взято значение по умолчанию.\n# По умолчанию: CREATED_AT",
              "label": "",
              "type": "OrderByType",
              "longType": "NotificationPaging.OrderByType",
              "fullType": "keyapis.bell.v1.NotificationPaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\n# По умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "NotificationPaging.DirectionType",
              "fullType": "keyapis.bell.v1.NotificationPaging.DirectionType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "limit",
              "description": "Количество записей на страницу.\nЕсли значение 0 (не передано), то будет взято значение по умолчанию.\n# Диапазон: 0..100.\n# По умолчанию: 20",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "offset",
              "description": "Сдвиг.\n# Диапазон: 0..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            }
          ]
        },
        {
          "name": "PostNotificationRequest",
          "longName": "PostNotificationRequest",
          "fullName": "keyapis.bell.v1.PostNotificationRequest",
          "description": "Запрос сохранения уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Уведомление",
              "label": "",
              "type": "Notification",
              "longType": "Notification",
              "fullType": "keyapis.bell.v1.Notification",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostNotificationResponse",
          "longName": "PostNotificationResponse",
          "fullName": "keyapis.bell.v1.PostNotificationResponse",
          "description": "Ответ на запрос сохранения уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Уведомление",
              "label": "",
              "type": "Notification",
              "longType": "Notification",
              "fullType": "keyapis.bell.v1.Notification",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostNotificationResponse.Error",
              "fullType": "keyapis.bell.v1.PostNotificationResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostNotificationResponse.Error",
          "fullName": "keyapis.bell.v1.PostNotificationResponse.Error",
          "description": "Ошибка сохранения уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostNotificationViewOrponRoomNumberRequest",
          "longName": "PostNotificationViewOrponRoomNumberRequest",
          "fullName": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberRequest",
          "description": "Запрос на изменение статуса уведомлений на \"Просмотрено\" по ОРПОНу и номеру квартиры",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "orpon",
              "description": "ОРПОН.\n# Диапазон: 1..9223372036854775807",
              "label": "",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "room_number",
              "description": "Номер квартиры.\n# Диапазон: 1..4",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "PostNotificationViewOrponRoomNumberResponse",
          "longName": "PostNotificationViewOrponRoomNumberResponse",
          "fullName": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberResponse",
          "description": "Ответ на изменение статуса уведомлений на \"Просмотрено\" по ОРПОНу и номеру квартиры",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Количество изменённых уведомлений",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostNotificationViewOrponRoomNumberResponse.Error",
              "fullType": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostNotificationViewOrponRoomNumberResponse.Error",
          "fullName": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberResponse.Error",
          "description": "Ошибка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostNotificationViewRequest",
          "longName": "PostNotificationViewRequest",
          "fullName": "keyapis.bell.v1.PostNotificationViewRequest",
          "description": "Запрос на изменение статуса уведомления на \"Просмотрено\" уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор уведомления.\n# Тип: Guid",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostNotificationViewResponse",
          "longName": "PostNotificationViewResponse",
          "fullName": "keyapis.bell.v1.PostNotificationViewResponse",
          "description": "Ответ на изменение статуса уведомления на \"Просмотрено\" уведомления",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostNotificationViewResponse.Error",
              "fullType": "keyapis.bell.v1.PostNotificationViewResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostNotificationViewResponse.Error",
          "fullName": "keyapis.bell.v1.PostNotificationViewResponse.Error",
          "description": "Ошибка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.bell.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        }
      ],
      "services": [
        {
          "name": "NotificationService",
          "longName": "NotificationService",
          "fullName": "keyapis.bell.v1.NotificationService",
          "description": "Сервис уведомлений",
          "methods": [
            {
              "name": "PostNotification",
              "description": "Метод сохранения уведомления.\nПоддерживает только создание.\nМетод доступен для: service",
              "requestType": "PostNotificationRequest",
              "requestLongType": "PostNotificationRequest",
              "requestFullType": "keyapis.bell.v1.PostNotificationRequest",
              "requestStreaming": false,
              "responseType": "PostNotificationResponse",
              "responseLongType": "PostNotificationResponse",
              "responseFullType": "keyapis.bell.v1.PostNotificationResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/bell/api/v1/notification",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetNotification",
              "description": "Метод получения уведомления.\nМетод доступен для: admin, manager, master, slave, service",
              "requestType": "GetNotificationRequest",
              "requestLongType": "GetNotificationRequest",
              "requestFullType": "keyapis.bell.v1.GetNotificationRequest",
              "requestStreaming": false,
              "responseType": "GetNotificationResponse",
              "responseLongType": "GetNotificationResponse",
              "responseFullType": "keyapis.bell.v1.GetNotificationResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/bell/api/v1/notification/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetNotificationList",
              "description": "Метод получения списка уведомлений.\nМетод доступен для: admin, manager, master, slave, service",
              "requestType": "GetNotificationListRequest",
              "requestLongType": "GetNotificationListRequest",
              "requestFullType": "keyapis.bell.v1.GetNotificationListRequest",
              "requestStreaming": false,
              "responseType": "GetNotificationListResponse",
              "responseLongType": "GetNotificationListResponse",
              "responseFullType": "keyapis.bell.v1.GetNotificationListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/bell/api/v1/notification/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetNotificationCount",
              "description": "Метод получения количества уведомлений.\nМетод доступен для: admin, manager, master, slave, service",
              "requestType": "GetNotificationCountRequest",
              "requestLongType": "GetNotificationCountRequest",
              "requestFullType": "keyapis.bell.v1.GetNotificationCountRequest",
              "requestStreaming": false,
              "responseType": "GetNotificationCountResponse",
              "responseLongType": "GetNotificationCountResponse",
              "responseFullType": "keyapis.bell.v1.GetNotificationCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/bell/api/v1/notification/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostNotificationView",
              "description": "Метод изменения статуса уведомления на \"Просмотрено\".\nМетод доступен для: master, slave, service",
              "requestType": "PostNotificationViewRequest",
              "requestLongType": "PostNotificationViewRequest",
              "requestFullType": "keyapis.bell.v1.PostNotificationViewRequest",
              "requestStreaming": false,
              "responseType": "PostNotificationViewResponse",
              "responseLongType": "PostNotificationViewResponse",
              "responseFullType": "keyapis.bell.v1.PostNotificationViewResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/bell/api/v1/notification/{id}/view"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostNotificationViewOrponRoomNumber",
              "description": "Метод изменения статуса уведомлений на \"Просмотрено\" по ОРПОНу и номеру квартиры.\nМетод доступен для: master, slave, service",
              "requestType": "PostNotificationViewOrponRoomNumberRequest",
              "requestLongType": "PostNotificationViewOrponRoomNumberRequest",
              "requestFullType": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberRequest",
              "requestStreaming": false,
              "responseType": "PostNotificationViewOrponRoomNumberResponse",
              "responseLongType": "PostNotificationViewOrponRoomNumberResponse",
              "responseFullType": "keyapis.bell.v1.PostNotificationViewOrponRoomNumberResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/bell/api/v1/notification/view/orpon/{orpon}/room_number/{room_number}"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "syntax": "proto3"
    }
  ],
  "scalarValueTypes": [
    {
      "protoType": "double",
      "notes": "",
      "cppType": "double",
      "csType": "double",
      "goType": "float64",
      "javaType": "double",
      "phpType": "float",
      "pythonType": "float",
      "rubyType": "Float"
    },
    {
      "protoType": "float",
      "notes": "",
      "cppType": "float",
      "csType": "float",
      "goType": "float32",
      "javaType": "float",
      "phpType": "float",
      "pythonType": "float",
      "rubyType": "Float"
    },
    {
      "protoType": "int32",
      "notes": "Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.",
      "cppType": "int32",
      "csType": "int",
      "goType": "int32",
      "javaType": "int",
      "phpType": "integer",
      "pythonType": "int",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "int64",
      "notes": "Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.",
      "cppType": "int64",
      "csType": "long",
      "goType": "int64",
      "javaType": "long",
      "phpType": "integer/string",
      "pythonType": "int/long",
      "rubyType": "Bignum"
    },
    {
      "protoType": "uint32",
      "notes": "Uses variable-length encoding.",
      "cppType": "uint32",
      "csType": "uint",
      "goType": "uint32",
      "javaType": "int",
      "phpType": "integer",
      "pythonType": "int/long",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "uint64",
      "notes": "Uses variable-length encoding.",
      "cppType": "uint64",
      "csType": "ulong",
      "goType": "uint64",
      "javaType": "long",
      "phpType": "integer/string",
      "pythonType": "int/long",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "sint32",
      "notes": "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.",
      "cppType": "int32",
      "csType": "int",
      "goType": "int32",
      "javaType": "int",
      "phpType": "integer",
      "pythonType": "int",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "sint64",
      "notes": "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.",
      "cppType": "int64",
      "csType": "long",
      "goType": "int64",
      "javaType": "long",
      "phpType": "integer/string",
      "pythonType": "int/long",
      "rubyType": "Bignum"
    },
    {
      "protoType": "fixed32",
      "notes": "Always four bytes. More efficient than uint32 if values are often greater than 2^28.",
      "cppType": "uint32",
      "csType": "uint",
      "goType": "uint32",
      "javaType": "int",
      "phpType": "integer",
      "pythonType": "int",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "fixed64",
      "notes": "Always eight bytes. More efficient than uint64 if values are often greater than 2^56.",
      "cppType": "uint64",
      "csType": "ulong",
      "goType": "uint64",
      "javaType": "long",
      "phpType": "integer/string",
      "pythonType": "int/long",
      "rubyType": "Bignum"
    },
    {
      "protoType": "sfixed32",
      "notes": "Always four bytes.",
      "cppType": "int32",
      "csType": "int",
      "goType": "int32",
      "javaType": "int",
      "phpType": "integer",
      "pythonType": "int",
      "rubyType": "Bignum or Fixnum (as required)"
    },
    {
      "protoType": "sfixed64",
      "notes": "Always eight bytes.",
      "cppType": "int64",
      "csType": "long",
      "goType": "int64",
      "javaType": "long",
      "phpType": "integer/string",
      "pythonType": "int/long",
      "rubyType": "Bignum"
    },
    {
      "protoType": "bool",
      "notes": "",
      "cppType": "bool",
      "csType": "bool",
      "goType": "bool",
      "javaType": "boolean",
      "phpType": "boolean",
      "pythonType": "boolean",
      "rubyType": "TrueClass/FalseClass"
    },
    {
      "protoType": "string",
      "notes": "A string must always contain UTF-8 encoded or 7-bit ASCII text.",
      "cppType": "string",
      "csType": "string",
      "goType": "string",
      "javaType": "String",
      "phpType": "string",
      "pythonType": "str/unicode",
      "rubyType": "String (UTF-8)"
    },
    {
      "protoType": "bytes",
      "notes": "May contain any arbitrary sequence of bytes.",
      "cppType": "string",
      "csType": "ByteString",
      "goType": "[]byte",
      "javaType": "ByteString",
      "phpType": "string",
      "pythonType": "str",
      "rubyType": "String (ASCII-8BIT)"
    }
  ]
}