{
  "files": [
    {
      "name": "keyapis/device/v1/keyapis_device_device_v1.proto",
      "description": "Сервис реализует функционал управления устройствами",
      "package": "keyapis.device.v1",
      "hasEnums": false,
      "hasExtensions": false,
      "hasMessages": true,
      "hasServices": true,
      "enums": [
        {
          "name": "StatusType",
          "longName": "CameraStatus.StatusType",
          "fullName": "keyapis.device.v1.CameraStatus.StatusType",
          "description": "Статус камеры.\n# Тип: byte",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "PROCESSING",
              "number": "1",
              "description": "В процессе регистрации"
            },
            {
              "name": "PROCESSING_ERROR",
              "number": "2",
              "description": "Ошибка регистрации"
            },
            {
              "name": "ACTIVE",
              "number": "3",
              "description": "Активна"
            }
          ]
        },
        {
          "name": "UserAccessType",
          "longName": "Device.Credentials.UserAccessType",
          "fullName": "keyapis.device.v1.Device.Credentials.UserAccessType",
          "description": "Тип доступа пользователя.\n# Тип: byte",
          "values": [
            {
              "name": "USER_ACCESS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "API",
              "number": "1",
              "description": "Доступ к api"
            },
            {
              "name": "WEB",
              "number": "2",
              "description": "Доступ к web-интерфейсу"
            },
            {
              "name": "RTSP",
              "number": "3",
              "description": "Доступ к rtsp-потоку"
            },
            {
              "name": "SU",
              "number": "4",
              "description": "Полный доступ"
            }
          ]
        },
        {
          "name": "ModelType",
          "longName": "Device.ModelType",
          "fullName": "keyapis.device.v1.Device.ModelType",
          "description": "Модель устройства.\n# Тип: byte",
          "values": [
            {
              "name": "MODEL_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "RODOS8",
              "number": "1",
              "description": "Модель RODOS-8"
            },
            {
              "name": "BEWARD",
              "number": "2",
              "description": "Модель Beward"
            },
            {
              "name": "QTECH",
              "number": "3",
              "description": "Модель QTECH"
            },
            {
              "name": "NATEKS",
              "number": "4",
              "description": "Модель Натекс"
            },
            {
              "name": "TNB",
              "number": "5",
              "description": "Модель ТНБ"
            },
            {
              "name": "MAXETLINE",
              "number": "6",
              "description": "Модель Maxet Line"
            },
            {
              "name": "TNB_DO2",
              "number": "7",
              "description": "Модель Двойная открывашка"
            },
            {
              "name": "BEWARD_DS86017CP",
              "number": "8",
              "description": "Модель Beward DS86017CP"
            },
            {
              "name": "BEWARD_DS85006MP",
              "number": "9",
              "description": "Модель Beward DS85006MP"
            },
            {
              "name": "DAHUA_VTO2101E_P",
              "number": "10",
              "description": "Модель Dahua DHI-VTO2101E-P"
            },
            {
              "name": "HIKVISION_DS_KV8155_IM",
              "number": "11",
              "description": "Модель Hikvision DS-KV8155-IM"
            },
            {
              "name": "RODOS8_2",
              "number": "12",
              "description": "Модель RODOS-8-2"
            },
            {
              "name": "AKUVOX_R29C",
              "number": "13",
              "description": "Модель Akuvox R29C"
            },
            {
              "name": "SAFE_LOGIC",
              "number": "14",
              "description": "Модель Safe-logic"
            },
            {
              "name": "BEWARD_DS86006AP",
              "number": "15",
              "description": "Модель Beward DS86006AP"
            },
            {
              "name": "SPUTNIK_IO",
              "number": "16",
              "description": "Модель Спутник Ио"
            },
            {
              "name": "BEWARD_FR",
              "number": "17",
              "description": "Модель Beward c FR"
            },
            {
              "name": "QTECH_FR",
              "number": "18",
              "description": "Модель QTECH с FR"
            },
            {
              "name": "ELTEX_IPA_ER_010",
              "number": "19",
              "description": "Модель Eltex IPA-ER-10"
            },
            {
              "name": "BEWARD_MIFARE",
              "number": "20",
              "description": "Модель Beward с новым API ключей"
            },
            {
              "name": "BAS_IP_AA_12FB",
              "number": "21",
              "description": "Модель BAS-IP AA-12FB"
            },
            {
              "name": "AKUVOX_X915S",
              "number": "22",
              "description": "Модель Akuvox X915S"
            },
            {
              "name": "RUBETEK_RV_3434",
              "number": "23",
              "description": "Модель Rubetek RV-3434"
            },
            {
              "name": "SOKOL_PLUS",
              "number": "24",
              "description": "Модель Сокол плюс"
            },
            {
              "name": "BEWARD_LOW_COST",
              "number": "25",
              "description": "Модель Beward Эконом"
            }
          ]
        },
        {
          "name": "PresetStatusType",
          "longName": "Device.PresetStatusType",
          "fullName": "keyapis.device.v1.Device.PresetStatusType",
          "description": "Справочник статусов установки пресета.\n# Тип: byte",
          "values": [
            {
              "name": "PRESET_STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано",
              "options": {
                "deprecated": true
              }
            },
            {
              "name": "PROCESSING",
              "number": "1",
              "description": "Устанавливается",
              "options": {
                "deprecated": true
              }
            },
            {
              "name": "SUCCESS",
              "number": "2",
              "description": "Установлен",
              "options": {
                "deprecated": true
              }
            },
            {
              "name": "ERROR",
              "number": "3",
              "description": "Ошибка",
              "options": {
                "deprecated": true
              }
            }
          ],
          "options": {
            "deprecated": true
          }
        },
        {
          "name": "SipType",
          "longName": "Device.SipTrunk.SipType",
          "fullName": "keyapis.device.v1.Device.SipTrunk.SipType",
          "description": "Тип сети связи.\n# Тип: byte",
          "values": [
            {
              "name": "SIP_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "VIMS",
              "number": "1",
              "description": "Тип Viprtual IP Multimedia Subsystem"
            },
            {
              "name": "NGN",
              "number": "2",
              "description": "Тип Next Generation Networks"
            }
          ]
        },
        {
          "name": "StatusType",
          "longName": "Device.StatusType",
          "fullName": "keyapis.device.v1.Device.StatusType",
          "description": "Справочник статусов устройства.\n# Тип: byte",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "OFFLINE",
              "number": "1",
              "description": "Не в сети"
            },
            {
              "name": "ONLINE",
              "number": "2",
              "description": "В сети"
            }
          ]
        },
        {
          "name": "Type",
          "longName": "Device.Type",
          "fullName": "keyapis.device.v1.Device.Type",
          "description": "Справочник назначений типов устройств (в качестве чего выступает устройство).\n# Тип: byte",
          "values": [
            {
              "name": "TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "INTERCOM",
              "number": "1",
              "description": "Домофон"
            },
            {
              "name": "VIDEOCAMERA",
              "number": "2",
              "description": "Видеокамера",
              "options": {
                "deprecated": true
              }
            },
            {
              "name": "BARRIER",
              "number": "3",
              "description": "Шлагбаум"
            },
            {
              "name": "GATE",
              "number": "4",
              "description": "Калитка"
            },
            {
              "name": "ACCESS_CONTROL_PANEL",
              "number": "5",
              "description": "СКУД",
              "options": {
                "deprecated": true
              }
            },
            {
              "name": "OUTDOOR_CAMERA",
              "number": "6",
              "description": "Наружняя видеокамера",
              "options": {
                "deprecated": true
              }
            }
          ]
        },
        {
          "name": "ConfigurationType",
          "longName": "DeviceConfigurationStatus.ConfigurationType",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType",
          "description": "Тип конфигурации.\n# Тип: byte",
          "values": [
            {
              "name": "CONFIGURATION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "PRESET",
              "number": "1",
              "description": "Пресет"
            },
            {
              "name": "SIP_ACCOUNT",
              "number": "2",
              "description": "Сип-аккаунт"
            },
            {
              "name": "SIP_ROOMS",
              "number": "3",
              "description": "сип-номера в помещениях"
            },
            {
              "name": "GATE",
              "number": "4",
              "description": "Калитка"
            },
            {
              "name": "RFIDS",
              "number": "5",
              "description": "Ключи"
            },
            {
              "name": "CODES",
              "number": "6",
              "description": "Коды"
            },
            {
              "name": "FACE_RECOGNITION",
              "number": "7",
              "description": "Распознование лиц"
            },
            {
              "name": "CONCIERGE",
              "number": "8",
              "description": "Консьерж"
            },
            {
              "name": "AUTOCOLLECT",
              "number": "9",
              "description": "Автосбор"
            },
            {
              "name": "SL3",
              "number": "10",
              "description": "Режим Sl3"
            },
            {
              "name": "EMERGENCY_CALL",
              "number": "11",
              "description": "Вызов экстренной службы"
            }
          ]
        },
        {
          "name": "StatusType",
          "longName": "DeviceConfigurationStatus.StatusType",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatus.StatusType",
          "description": "Справочник статусов конфигурации настройки устройства.\n# Тип: byte",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "SUCCESS",
              "number": "1",
              "description": "Настроен"
            },
            {
              "name": "ERROR",
              "number": "2",
              "description": "Ошибка"
            },
            {
              "name": "PENDING",
              "number": "3",
              "description": "В ожидании обработки"
            },
            {
              "name": "PROCESSING",
              "number": "4",
              "description": "В процессе обработки"
            }
          ]
        },
        {
          "name": "DirectionType",
          "longName": "DeviceConfigurationStatusGroupedPaging.DirectionType",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.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": "DeviceConfigurationStatusGroupedPaging.OrderByType",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.OrderByType",
          "description": "Справочник типов значений сортировки.\n# Тип: byte",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DEVICE_ID",
              "number": "1",
              "description": "По идентификатору устройства"
            }
          ]
        },
        {
          "name": "DirectionType",
          "longName": "DevicePaging.DirectionType",
          "fullName": "keyapis.device.v1.DevicePaging.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": "DevicePaging.OrderByType",
          "fullName": "keyapis.device.v1.DevicePaging.OrderByType",
          "description": "Справочник типов значений сортировки.\n# Тип: byte",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "ID",
              "number": "1",
              "description": "По идентификатору"
            },
            {
              "name": "TITLE",
              "number": "2",
              "description": "По наименованию"
            },
            {
              "name": "SYNC_AT",
              "number": "3",
              "description": "По дате последней попытки синхронизации"
            }
          ]
        },
        {
          "name": "ConfigurationType",
          "longName": "Preset.FaceRecognition.ConfigurationType",
          "fullName": "keyapis.device.v1.Preset.FaceRecognition.ConfigurationType",
          "description": "Тип конфигурации.\n# Тип: byte",
          "values": [
            {
              "name": "CONFIGURATION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DEFAULT",
              "number": "1",
              "description": "По умолчанию"
            }
          ]
        },
        {
          "name": "StatusType",
          "longName": "Preset.StatusType",
          "fullName": "keyapis.device.v1.Preset.StatusType",
          "description": "Справочник статусов.\n# Тип: byte",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "ACTIVE",
              "number": "1",
              "description": "Активный"
            },
            {
              "name": "ARCHIVE",
              "number": "2",
              "description": "Архивный"
            }
          ]
        },
        {
          "name": "ProtocolType",
          "longName": "Preset.Syslog.ProtocolType",
          "fullName": "keyapis.device.v1.Preset.Syslog.ProtocolType",
          "description": "Тип протокола.\n# Тип: byte",
          "values": [
            {
              "name": "PROTOCOL_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "UDP",
              "number": "1",
              "description": "Протокол UDP"
            },
            {
              "name": "TCP",
              "number": "2",
              "description": "Протокол TCP"
            }
          ]
        },
        {
          "name": "QualityType",
          "longName": "Preset.VideoConfig.QualityType",
          "fullName": "keyapis.device.v1.Preset.VideoConfig.QualityType",
          "description": "Справочник качеств.\n# Тип: byte",
          "values": [
            {
              "name": "QUALITY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "HIGH",
              "number": "1",
              "description": "Высокое качество"
            },
            {
              "name": "MEDIUM",
              "number": "2",
              "description": "Среднее качество"
            }
          ]
        },
        {
          "name": "StatusType",
          "longName": "SyncStatus.StatusType",
          "fullName": "keyapis.device.v1.SyncStatus.StatusType",
          "description": "Статус синхронизации.\n# Тип: byte",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "NEW",
              "number": "1",
              "description": "Новый"
            },
            {
              "name": "PENDING",
              "number": "2",
              "description": "В процессе"
            },
            {
              "name": "ERROR",
              "number": "3",
              "description": "Ошибка"
            },
            {
              "name": "SUCCESS",
              "number": "4",
              "description": "Успешно"
            },
            {
              "name": "DISABLED",
              "number": "5",
              "description": "Выключено"
            }
          ]
        }
      ],
      "extensions": [],
      "messages": [
        {
          "name": "CameraStatus",
          "longName": "CameraStatus",
          "fullName": "keyapis.device.v1.CameraStatus",
          "description": "Статус камеры.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор камеры uid.\n# Тип: Guid",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "status_type",
              "description": "Статус камеры",
              "label": "",
              "type": "StatusType",
              "longType": "CameraStatus.StatusType",
              "fullType": "keyapis.device.v1.CameraStatus.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "error_message",
              "description": "Сообщение об ошибке",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 3
            }
          ]
        },
        {
          "name": "DeleteDeviceRequest",
          "longName": "DeleteDeviceRequest",
          "fullName": "keyapis.device.v1.DeleteDeviceRequest",
          "description": "Запрос удаления устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "DeleteDeviceResponse",
          "longName": "DeleteDeviceResponse",
          "fullName": "keyapis.device.v1.DeleteDeviceResponse",
          "description": "Ответ на запрос удаления устройства",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "Device",
          "longName": "Device",
          "fullName": "keyapis.device.v1.Device",
          "description": "Устройство.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор.\n# Диапазон: 0..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "preset_id",
              "description": "Идентификатор пресета.\n# Диапазон: 1..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "preset_status_type",
              "description": "Статус установки пресета.\n# Поле вычисляется в коде приложения",
              "label": "",
              "type": "PresetStatusType",
              "longType": "Device.PresetStatusType",
              "fullType": "keyapis.device.v1.Device.PresetStatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "deprecated": true,
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "preset_configured_at",
              "description": "Дата установки пресета на устройство.\n# Тип: DateTime",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "deprecated": true,
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "is_sl3_mode_enabled",
              "description": "Настройка режима SL3",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "deprecated": true,
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 5
            },
            {
              "name": "type",
              "description": "Тип назначения устройства",
              "label": "",
              "type": "Type",
              "longType": "Device.Type",
              "fullType": "keyapis.device.v1.Device.Type",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 6
            },
            {
              "name": "mac_address",
              "description": "MAC-адрес.\n# Диапазон: 17..17.\n# Паттерн: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 7
            },
            {
              "name": "title",
              "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": 8
            },
            {
              "name": "model_type",
              "description": "Модель устройства",
              "label": "",
              "type": "ModelType",
              "longType": "Device.ModelType",
              "fullType": "keyapis.device.v1.Device.ModelType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 9
            },
            {
              "name": "owner_company_id",
              "description": "Идентификатор компании владельца.\n# Диапазон: 1..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 10
            },
            {
              "name": "serial_number",
              "description": "Серийный номер.\n# Диапазон: 1..16",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 11
            },
            {
              "name": "flatgramm_id",
              "description": "Идентификатор квартирограммы.\n# Диапазон: 1..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 12
            },
            {
              "name": "utc_offset",
              "description": "Смещение таймзоны в минутах.\n# Диапазон: -720..840",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 13
            },
            {
              "name": "status_type",
              "description": "Статус устройства",
              "label": "",
              "type": "StatusType",
              "longType": "Device.StatusType",
              "fullType": "keyapis.device.v1.Device.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 14
            },
            {
              "name": "ip_address",
              "description": "Сетевой адрес.\n# Диапазон: 0..250",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 15
            },
            {
              "name": "port",
              "description": "Сетевой порт.\n# Диапазон: 0..65535",
              "label": "",
              "type": "Int32Value",
              "longType": "google.protobuf.Int32Value",
              "fullType": "google.protobuf.Int32Value",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 16
            },
            {
              "name": "sputnik_credentials",
              "description": "Учетные данные.\nИспользуется для устройств с типом модели SPUTNIK_IO",
              "label": "",
              "type": "SputnikCredentials",
              "longType": "Device.SputnikCredentials",
              "fullType": "keyapis.device.v1.Device.SputnikCredentials",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 17
            },
            {
              "name": "location",
              "description": "Координаты",
              "label": "",
              "type": "Location",
              "longType": "Device.Location",
              "fullType": "keyapis.device.v1.Device.Location",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 18
            },
            {
              "name": "camera_id",
              "description": "Идентификатор камеры uid.\n# Тип: Guid",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 19
            },
            {
              "name": "tags",
              "description": "Список тегов устройства.\n# Диапазон: 1..50",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 20
            },
            {
              "name": "settings",
              "description": "Настройки устройства",
              "label": "",
              "type": "Settings",
              "longType": "Device.Settings",
              "fullType": "keyapis.device.v1.Device.Settings",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 21
            },
            {
              "name": "hardware_version",
              "description": "Версия аппаратного обеспенения",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 22
            },
            {
              "name": "software_version",
              "description": "Версия программного обеспенения",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 23
            },
            {
              "name": "dispatching",
              "description": "Диспетчеризации",
              "label": "",
              "type": "Dispatching",
              "longType": "Device.Dispatching",
              "fullType": "keyapis.device.v1.Device.Dispatching",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 24
            },
            {
              "name": "sip_trunk",
              "description": "Транк",
              "label": "",
              "type": "SipTrunk",
              "longType": "Device.SipTrunk",
              "fullType": "keyapis.device.v1.Device.SipTrunk",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 25
            },
            {
              "name": "redirect",
              "description": "Переадресация",
              "label": "",
              "type": "Redirect",
              "longType": "Device.Redirect",
              "fullType": "keyapis.device.v1.Device.Redirect",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 26
            },
            {
              "name": "autochange_password_settings",
              "description": "Настройки автозамены пароля",
              "label": "",
              "type": "AutochangePasswordSettings",
              "longType": "Device.AutochangePasswordSettings",
              "fullType": "keyapis.device.v1.Device.AutochangePasswordSettings",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 27
            },
            {
              "name": "credentials",
              "description": "Учетные данные пользователей",
              "label": "repeated",
              "type": "Credentials",
              "longType": "Device.Credentials",
              "fullType": "keyapis.device.v1.Device.Credentials",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 28
            },
            {
              "name": "sip_account",
              "description": "Сип-аккаунт",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 29
            },
            {
              "name": "sync_status",
              "description": "Статус синхронизации",
              "label": "",
              "type": "SyncStatus",
              "longType": "SyncStatus",
              "fullType": "keyapis.device.v1.SyncStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 30
            }
          ]
        },
        {
          "name": "AutochangePasswordSettings",
          "longName": "Device.AutochangePasswordSettings",
          "fullName": "keyapis.device.v1.Device.AutochangePasswordSettings",
          "description": "Настройки автозамены пароля",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки автозамены пароля",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "Credentials",
          "longName": "Device.Credentials",
          "fullName": "keyapis.device.v1.Device.Credentials",
          "description": "Учетные данные пользователей",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "login",
              "description": "Логин.\n# Диапазон: 0..100",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "password",
              "description": "Пароль.\n# Диапазон: 0..100",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "user_access_type",
              "description": "Тип доступа пользователя",
              "label": "",
              "type": "UserAccessType",
              "longType": "Device.Credentials.UserAccessType",
              "fullType": "keyapis.device.v1.Device.Credentials.UserAccessType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            }
          ]
        },
        {
          "name": "Dispatching",
          "longName": "Device.Dispatching",
          "fullName": "keyapis.device.v1.Device.Dispatching",
          "description": "Диспетчеризации",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки диспетчеризации",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "public_identity",
              "description": "Публичный номер.\n# Паттерн: /^[1-9]\\d{3,7}$/",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Location",
          "longName": "Device.Location",
          "fullName": "keyapis.device.v1.Device.Location",
          "description": "Координаты",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "latitude",
              "description": "Широта",
              "label": "",
              "type": "float",
              "longType": "float",
              "fullType": "float",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "longitude",
              "description": "Долгота",
              "label": "",
              "type": "float",
              "longType": "float",
              "fullType": "float",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "Redirect",
          "longName": "Device.Redirect",
          "fullName": "keyapis.device.v1.Device.Redirect",
          "description": "Переадресация.\nТребуется капабилити SIP_CALLS",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled_sip",
              "description": "Переадресация на SIP",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "is_enabled_phone",
              "description": "Переадресация на телефон",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "SavingError",
          "longName": "Device.SavingError",
          "fullName": "keyapis.device.v1.Device.SavingError",
          "description": "Ошибка сохранения.\nЭти проверки выполняются при работе с базой данных и сторонними сервисами",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "mac_address_invalid",
              "description": "Переданный мак-адрес не валидный",
              "label": "",
              "type": "MacAddressInvalid",
              "longType": "Device.SavingError.MacAddressInvalid",
              "fullType": "keyapis.device.v1.Device.SavingError.MacAddressInvalid",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "options": {
                "deprecated": true
              },
              "number": 1
            },
            {
              "name": "serial_number_invalid",
              "description": "Переданный серийный номер не валидный",
              "label": "",
              "type": "SerialNumberInvalid",
              "longType": "Device.SavingError.SerialNumberInvalid",
              "fullType": "keyapis.device.v1.Device.SavingError.SerialNumberInvalid",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "options": {
                "deprecated": true
              },
              "number": 2
            },
            {
              "name": "not_allowed_for_type",
              "description": "Нельзя изменить тип назначения девайса",
              "label": "",
              "type": "NotAllowedForType",
              "longType": "Device.SavingError.NotAllowedForType",
              "fullType": "keyapis.device.v1.Device.SavingError.NotAllowedForType",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "not_allowed_for_model",
              "description": "Нельзя изменить модель девайса",
              "label": "",
              "type": "NotAllowedForModel",
              "longType": "Device.SavingError.NotAllowedForModel",
              "fullType": "keyapis.device.v1.Device.SavingError.NotAllowedForModel",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "serial_number_for_model_is_exist",
              "description": "Серийный номер для данной модели уже существует на платформе",
              "label": "",
              "type": "SerialNumberForModelIsExist",
              "longType": "Device.SavingError.SerialNumberForModelIsExist",
              "fullType": "keyapis.device.v1.Device.SavingError.SerialNumberForModelIsExist",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "mac_address_is_exist",
              "description": "MAC-адрес уже существует на платформе",
              "label": "",
              "type": "MacAddressIsExist",
              "longType": "Device.SavingError.MacAddressIsExist",
              "fullType": "keyapis.device.v1.Device.SavingError.MacAddressIsExist",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "capability_is_not_supported",
              "description": "Настройка не поддерживается",
              "label": "",
              "type": "CapabilityIsNotSupported",
              "longType": "Device.SavingError.CapabilityIsNotSupported",
              "fullType": "keyapis.device.v1.Device.SavingError.CapabilityIsNotSupported",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 7
            },
            {
              "name": "abc_number_is_exist_on_another_device",
              "description": "ABC-номер присвоен другому устройству",
              "label": "",
              "type": "AbcNumberIsExistOnAnotherDevice",
              "longType": "Device.SavingError.AbcNumberIsExistOnAnotherDevice",
              "fullType": "keyapis.device.v1.Device.SavingError.AbcNumberIsExistOnAnotherDevice",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 8
            },
            {
              "name": "public_identity_is_exist",
              "description": "Публичный номер уже существует на платформе",
              "label": "",
              "type": "PublicIdentityIsExist",
              "longType": "Device.SavingError.PublicIdentityIsExist",
              "fullType": "keyapis.device.v1.Device.SavingError.PublicIdentityIsExist",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 9
            },
            {
              "name": "concierge_room_not_found",
              "description": "Не найдена квартира для консьержа",
              "label": "",
              "type": "ConciergeRoomNotFound",
              "longType": "Device.SavingError.ConciergeRoomNotFound",
              "fullType": "keyapis.device.v1.Device.SavingError.ConciergeRoomNotFound",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 10
            },
            {
              "name": "login_is_exist",
              "description": "Логин уже существует на платформе",
              "label": "",
              "type": "LoginIsExist",
              "longType": "Device.SavingError.LoginIsExist",
              "fullType": "keyapis.device.v1.Device.SavingError.LoginIsExist",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 11
            },
            {
              "name": "credentials_are_required",
              "description": "Отсутствуют реквизиты для модели \"Спутник\"",
              "label": "",
              "type": "CredentialsAreRequired",
              "longType": "Device.SavingError.CredentialsAreRequired",
              "fullType": "keyapis.device.v1.Device.SavingError.CredentialsAreRequired",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 12
            },
            {
              "name": "field_is_not_supported",
              "description": "Переданное поле не поддерживается",
              "label": "",
              "type": "FieldIsNotSupported",
              "longType": "Device.SavingError.FieldIsNotSupported",
              "fullType": "keyapis.device.v1.Device.SavingError.FieldIsNotSupported",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 13
            }
          ]
        },
        {
          "name": "AbcNumberIsExistOnAnotherDevice",
          "longName": "Device.SavingError.AbcNumberIsExistOnAnotherDevice",
          "fullName": "keyapis.device.v1.Device.SavingError.AbcNumberIsExistOnAnotherDevice",
          "description": "ABC-номер присвоен другому устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "device_id",
              "description": "Идентификатор устройства на котором находится ABC-номер",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "CapabilityIsNotSupported",
          "longName": "Device.SavingError.CapabilityIsNotSupported",
          "fullName": "keyapis.device.v1.Device.SavingError.CapabilityIsNotSupported",
          "description": "Функциональность не поддерживается моделью устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "model_capability_type",
              "description": "Возможность",
              "label": "",
              "type": "CapabilityType",
              "longType": "Model.CapabilityType",
              "fullType": "keyapis.device.v1.Model.CapabilityType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "ConciergeRoomNotFound",
          "longName": "Device.SavingError.ConciergeRoomNotFound",
          "fullName": "keyapis.device.v1.Device.SavingError.ConciergeRoomNotFound",
          "description": "Не найдена квартира для консьержа",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "CredentialsAreRequired",
          "longName": "Device.SavingError.CredentialsAreRequired",
          "fullName": "keyapis.device.v1.Device.SavingError.CredentialsAreRequired",
          "description": "Отсутствуют реквизиты для модели \"Спутник\"",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "FieldIsNotSupported",
          "longName": "Device.SavingError.FieldIsNotSupported",
          "fullName": "keyapis.device.v1.Device.SavingError.FieldIsNotSupported",
          "description": "Переданное поле не поддерживается",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "LoginIsExist",
          "longName": "Device.SavingError.LoginIsExist",
          "fullName": "keyapis.device.v1.Device.SavingError.LoginIsExist",
          "description": "Логин уже существует на платформе",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "MacAddressInvalid",
          "longName": "Device.SavingError.MacAddressInvalid",
          "fullName": "keyapis.device.v1.Device.SavingError.MacAddressInvalid",
          "description": "Переданный мак-адрес не валидный",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "MacAddressIsExist",
          "longName": "Device.SavingError.MacAddressIsExist",
          "fullName": "keyapis.device.v1.Device.SavingError.MacAddressIsExist",
          "description": "MAC-адрес уже существует на платформе",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "NotAllowedForModel",
          "longName": "Device.SavingError.NotAllowedForModel",
          "fullName": "keyapis.device.v1.Device.SavingError.NotAllowedForModel",
          "description": "Нельзя изменить модель девайса",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "NotAllowedForType",
          "longName": "Device.SavingError.NotAllowedForType",
          "fullName": "keyapis.device.v1.Device.SavingError.NotAllowedForType",
          "description": "Нельзя изменить тип назначения девайса",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "PublicIdentityIsExist",
          "longName": "Device.SavingError.PublicIdentityIsExist",
          "fullName": "keyapis.device.v1.Device.SavingError.PublicIdentityIsExist",
          "description": "Публичный номер уже существует на платформе",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "SerialNumberForModelIsExist",
          "longName": "Device.SavingError.SerialNumberForModelIsExist",
          "fullName": "keyapis.device.v1.Device.SavingError.SerialNumberForModelIsExist",
          "description": "Серийный номер для данной модели уже существует на платформе",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "SerialNumberInvalid",
          "longName": "Device.SavingError.SerialNumberInvalid",
          "fullName": "keyapis.device.v1.Device.SavingError.SerialNumberInvalid",
          "description": "Переданный серийный номер не валидный",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "Settings",
          "longName": "Device.Settings",
          "fullName": "keyapis.device.v1.Device.Settings",
          "description": "Настройки устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "coordinate_matrix_switch",
              "description": "Настройки ККМ",
              "label": "",
              "type": "CoordinateMatrixSwitch",
              "longType": "Device.Settings.CoordinateMatrixSwitch",
              "fullType": "keyapis.device.v1.Device.Settings.CoordinateMatrixSwitch",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "concierge_call",
              "description": "Настройки вызова консьержа.\nТребуется капабилити CONCIERGE_CALL",
              "label": "",
              "type": "ConciergeCall",
              "longType": "Device.Settings.ConciergeCall",
              "fullType": "keyapis.device.v1.Device.Settings.ConciergeCall",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "autocollect",
              "description": "Настройки автосбора",
              "label": "",
              "type": "Autocollect",
              "longType": "Device.Settings.Autocollect",
              "fullType": "keyapis.device.v1.Device.Settings.Autocollect",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "face_recognition",
              "description": "Настройки распознования лиц",
              "label": "",
              "type": "FaceRecognition",
              "longType": "Device.Settings.FaceRecognition",
              "fullType": "keyapis.device.v1.Device.Settings.FaceRecognition",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "sl3_mode",
              "description": "Настройки режима SL3",
              "label": "",
              "type": "Sl3Mode",
              "longType": "Device.Settings.Sl3Mode",
              "fullType": "keyapis.device.v1.Device.Settings.Sl3Mode",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "emergency_call",
              "description": "Настройки вызова экстренной службы.\nТолько для устройств с CapabilityType=EMERGENCY_CALL",
              "label": "",
              "type": "EmergencyCall",
              "longType": "Device.Settings.EmergencyCall",
              "fullType": "keyapis.device.v1.Device.Settings.EmergencyCall",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            }
          ]
        },
        {
          "name": "Autocollect",
          "longName": "Device.Settings.Autocollect",
          "fullName": "keyapis.device.v1.Device.Settings.Autocollect",
          "description": "Настройки автосбора",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки автосбора",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "ConciergeCall",
          "longName": "Device.Settings.ConciergeCall",
          "fullName": "keyapis.device.v1.Device.Settings.ConciergeCall",
          "description": "Настройки вызова консьержа",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки вызова консьержа",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "orpon",
              "description": "Идентификатор ОРПОН",
              "label": "",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "room_number",
              "description": "Номер квартиры.\n# Диапазон: 1..5",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "sip_number",
              "description": "Номер сип-трубки",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 4
            }
          ]
        },
        {
          "name": "CoordinateMatrixSwitch",
          "longName": "Device.Settings.CoordinateMatrixSwitch",
          "fullName": "keyapis.device.v1.Device.Settings.CoordinateMatrixSwitch",
          "description": "Настройки ККМ.\nКоммутатор координатно-матричный (устройство для подключения аналоговых трубок к домофону)",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Состояние",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "EmergencyCall",
          "longName": "Device.Settings.EmergencyCall",
          "fullName": "keyapis.device.v1.Device.Settings.EmergencyCall",
          "description": "Настройки вызова экстренной службы.\nТолько для устройств с CapabilityType=EMERGENCY_CALL",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_call_available",
              "description": "Возможность вызова экстренной службы",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "emergency_number",
              "description": "АБС-номер экстренной службы.\n# Паттерн: /^\\+[1-9][0-9]{10}$/",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "FaceRecognition",
          "longName": "Device.Settings.FaceRecognition",
          "fullName": "keyapis.device.v1.Device.Settings.FaceRecognition",
          "description": "Настройки распознования лиц",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "Sl3Mode",
          "longName": "Device.Settings.Sl3Mode",
          "fullName": "keyapis.device.v1.Device.Settings.Sl3Mode",
          "description": "Настройки режима SL3",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "is_enabled",
              "description": "Статус настройки",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "encryption_profile_id",
              "description": "Идентификатор профиля шифрования",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "SipTrunk",
          "longName": "Device.SipTrunk",
          "fullName": "keyapis.device.v1.Device.SipTrunk",
          "description": "Транк.\nПараметры для соединения между устрйоством и телефонной сетью общего пользования.\nТребуется капабилити SIP_CALLS",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "abc_number",
              "description": "ABC-номер.\n# Паттерн: /^(\\+7)(\\d{10})$/",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "host",
              "description": "Хост.\n# Диапазон: 0..250",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "port",
              "description": "Порт.\n# Диапазон: 0..65535",
              "label": "",
              "type": "Int32Value",
              "longType": "google.protobuf.Int32Value",
              "fullType": "google.protobuf.Int32Value",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "sip_type",
              "description": "Тип сети связи",
              "label": "",
              "type": "SipType",
              "longType": "Device.SipTrunk.SipType",
              "fullType": "keyapis.device.v1.Device.SipTrunk.SipType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            }
          ]
        },
        {
          "name": "SputnikCredentials",
          "longName": "Device.SputnikCredentials",
          "fullName": "keyapis.device.v1.Device.SputnikCredentials",
          "description": "Учетные данные.\nИспользуется для устройств с типом модели SPUTNIK_IO",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "login",
              "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": "password",
              "description": "Пароль.\nНа чтение выводится только для пользователя с типом service",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "DeviceConfigurationStatus",
          "longName": "DeviceConfigurationStatus",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatus",
          "description": "Статус конфигурации устройства.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "device_id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "configuration_type",
              "description": "Тип конфигурации",
              "label": "",
              "type": "ConfigurationType",
              "longType": "DeviceConfigurationStatus.ConfigurationType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "status_type",
              "description": "Статус конфигурации настройки устройства",
              "label": "",
              "type": "StatusType",
              "longType": "DeviceConfigurationStatus.StatusType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "configured_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": 5
            },
            {
              "name": "error_message",
              "description": "Текст ошибки",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "retry_count",
              "description": "Количество попыток",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 7
            },
            {
              "name": "payload",
              "description": "Дополнительная полезная нагрузка",
              "label": "",
              "type": "Payload",
              "longType": "DeviceConfigurationStatus.Payload",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.Payload",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 8
            },
            {
              "name": "next_retry_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": 9
            }
          ]
        },
        {
          "name": "Payload",
          "longName": "DeviceConfigurationStatus.Payload",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatus.Payload",
          "description": "Дополнительная полезная нагрузка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "autocollect",
              "description": "Автоколлект",
              "label": "",
              "type": "Autocollect",
              "longType": "DeviceConfigurationStatus.Payload.Autocollect",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "attribute",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Autocollect",
          "longName": "DeviceConfigurationStatus.Payload.Autocollect",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect",
          "description": "Автоколлект",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "enabled_at",
              "description": "Дата включения автосбора.\n# Тип: DateTime",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "to_be_disabled_at",
              "description": "Дата отключения автосбора.\n# Тип: DateTime",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "DeviceConfigurationStatusGrouped",
          "longName": "DeviceConfigurationStatusGrouped",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatusGrouped",
          "description": "Сгруппированный по устройству список конфигураций",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "device_id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "statuses",
              "description": "Список конфигураций",
              "label": "repeated",
              "type": "DeviceConfigurationStatus",
              "longType": "DeviceConfigurationStatus",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "DeviceConfigurationStatusGroupedFilter",
          "longName": "DeviceConfigurationStatusGroupedFilter",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatusGroupedFilter",
          "description": "Фильтр конфигураций сгруппированных по устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "device_ids",
              "description": "По идентификаторам устройства",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "configuration_types",
              "description": "По типам конфигурации",
              "label": "repeated",
              "type": "ConfigurationType",
              "longType": "DeviceConfigurationStatus.ConfigurationType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "status_types",
              "description": "По статусам конфигурации настройки",
              "label": "repeated",
              "type": "StatusType",
              "longType": "DeviceConfigurationStatus.StatusType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "is_ready_for_retry",
              "description": "Флаг, указывающий на готовность настройки к конфигурированию.\nЗначение next_retry_at меньше текущей даты",
              "label": "",
              "type": "BoolValue",
              "longType": "google.protobuf.BoolValue",
              "fullType": "google.protobuf.BoolValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "retry_count_less_then",
              "description": "Пороговое значение количества попыток.\nВозвращает записи, у которых retry_count меньше этого значения",
              "label": "",
              "type": "Int32Value",
              "longType": "google.protobuf.Int32Value",
              "fullType": "google.protobuf.Int32Value",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            }
          ]
        },
        {
          "name": "DeviceConfigurationStatusGroupedPaging",
          "longName": "DeviceConfigurationStatusGroupedPaging",
          "fullName": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging",
          "description": "Постраничный вывод конфигураций сгруппированных по устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nЕсли значение не передано, то будет взято значение по умолчанию.\n# По умолчанию: DEVICE_ID",
              "label": "",
              "type": "OrderByType",
              "longType": "DeviceConfigurationStatusGroupedPaging.OrderByType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\n# По умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "DeviceConfigurationStatusGroupedPaging.DirectionType",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.DirectionType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "limit",
              "description": "Количество записей на страницу.\nЕсли значение 0 (не передано), то будет взято значение по умолчанию.\n# Диапазон: 0..1000.\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": "DeviceFilter",
          "longName": "DeviceFilter",
          "fullName": "keyapis.device.v1.DeviceFilter",
          "description": "Фильтр устройств",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "owner_company_ids",
              "description": "По идентификаторам компании владельца",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "text",
              "description": "Поиск по тексту.\nЕсли значение не передано то поиск по нему не производится.\n# Диапазон: 3..64.\n# Поиск производится по полям:\n# - Наименование;\n# - MAC-адрес;\n# - Список тегов устройства;\n# - Сетевой адрес;\n# - Серийный номер",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "flatgramm_ids",
              "description": "Идентификатор квартирограммы",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "serial_numbers",
              "description": "Серийный номер",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "device_status_types",
              "description": "Статус устройства",
              "label": "repeated",
              "type": "StatusType",
              "longType": "Device.StatusType",
              "fullType": "keyapis.device.v1.Device.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "device_types",
              "description": "Тип назначения устройства",
              "label": "repeated",
              "type": "Type",
              "longType": "Device.Type",
              "fullType": "keyapis.device.v1.Device.Type",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "device_model_types",
              "description": "Модель устройства",
              "label": "repeated",
              "type": "ModelType",
              "longType": "Device.ModelType",
              "fullType": "keyapis.device.v1.Device.ModelType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 7
            },
            {
              "name": "is_concierge_enabled",
              "description": "Переадресация на консъержа",
              "label": "",
              "type": "BoolValue",
              "longType": "google.protobuf.BoolValue",
              "fullType": "google.protobuf.BoolValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 8
            },
            {
              "name": "is_dispatching_enabled",
              "description": "Диспетчеризация",
              "label": "",
              "type": "BoolValue",
              "longType": "google.protobuf.BoolValue",
              "fullType": "google.protobuf.BoolValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 9
            },
            {
              "name": "dispatching_public_number",
              "description": "Поиск по публичному номеру диспетчеризации.\nЕсли значение не передано то поиск по нему не производится.\n# Диапазон: 3..64",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 10
            },
            {
              "name": "hardware_version",
              "description": "Версия аппаратного обеспенения.\n# Диапазон: 3..64",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 11
            },
            {
              "name": "software_version",
              "description": "Версия программного обеспенения.\n# Диапазон: 3..64",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 12
            },
            {
              "name": "is_autochange_password_enabled",
              "description": "Автозамена пароля",
              "label": "",
              "type": "BoolValue",
              "longType": "google.protobuf.BoolValue",
              "fullType": "google.protobuf.BoolValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 13
            },
            {
              "name": "abc_number",
              "description": "ABC-номер",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 14
            },
            {
              "name": "camera_ids",
              "description": "Идентификаторы камер",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 15
            },
            {
              "name": "sync_status_status_types",
              "description": "Фильтр по статусу синхронизации (SyncStatus.status_type)",
              "label": "repeated",
              "type": "StatusType",
              "longType": "SyncStatus.StatusType",
              "fullType": "keyapis.device.v1.SyncStatus.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 16
            },
            {
              "name": "sync_retry_count_less_then",
              "description": "Пороговое значение количества попыток синхронизации.\nВозвращает записи, у которых sync_retry_count меньше этого значения",
              "label": "",
              "type": "Int32Value",
              "longType": "google.protobuf.Int32Value",
              "fullType": "google.protobuf.Int32Value",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 17
            },
            {
              "name": "begin_sync_successful_at",
              "description": "От даты успешной синхронизации включительно (\u003e=)",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 18
            },
            {
              "name": "end_sync_successful_at",
              "description": "До даты успешной синхронизации (\u003c)",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 19
            },
            {
              "name": "begin_sync_at",
              "description": "От даты синхронизации включительно (\u003e=)",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 20
            },
            {
              "name": "end_sync_at",
              "description": "До даты синхронизации (\u003c)",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 21
            }
          ]
        },
        {
          "name": "DeviceLite",
          "longName": "DeviceLite",
          "fullName": "keyapis.device.v1.DeviceLite",
          "description": "Облегчённое устройство.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор.\n# Диапазон: 0..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "type",
              "description": "Тип назначения устройства",
              "label": "",
              "type": "Type",
              "longType": "Device.Type",
              "fullType": "keyapis.device.v1.Device.Type",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "title",
              "description": "# Диапазон: 3..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "location",
              "description": "Координаты",
              "label": "",
              "type": "Location",
              "longType": "Device.Location",
              "fullType": "keyapis.device.v1.Device.Location",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "status_type",
              "description": "Статус устройства",
              "label": "",
              "type": "StatusType",
              "longType": "Device.StatusType",
              "fullType": "keyapis.device.v1.Device.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            }
          ]
        },
        {
          "name": "DevicePaging",
          "longName": "DevicePaging",
          "fullName": "keyapis.device.v1.DevicePaging",
          "description": "Постраничный вывод",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nЕсли значение не передано, то будет взято значение по умолчанию.\n# По умолчанию: ID",
              "label": "",
              "type": "OrderByType",
              "longType": "DevicePaging.OrderByType",
              "fullType": "keyapis.device.v1.DevicePaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\n# По умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "DevicePaging.DirectionType",
              "fullType": "keyapis.device.v1.DevicePaging.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": "GetDeviceConfigurationStatusGroupedCountRequest",
          "longName": "GetDeviceConfigurationStatusGroupedCountRequest",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountRequest",
          "description": "Запрос получения количества конфигураций сгруппированных по устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "DeviceConfigurationStatusGroupedFilter",
              "longType": "DeviceConfigurationStatusGroupedFilter",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGroupedFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceConfigurationStatusGroupedCountResponse",
          "longName": "GetDeviceConfigurationStatusGroupedCountResponse",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountResponse",
          "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": "GetDeviceConfigurationStatusGroupedListRequest",
          "longName": "GetDeviceConfigurationStatusGroupedListRequest",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest",
          "description": "Запрос получения списка конфигураций сгруппированных по устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "DeviceConfigurationStatusGroupedFilter",
              "longType": "DeviceConfigurationStatusGroupedFilter",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGroupedFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Стандартный постраничный вывод",
              "label": "",
              "type": "DeviceConfigurationStatusGroupedPaging",
              "longType": "DeviceConfigurationStatusGroupedPaging",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGroupedPaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetDeviceConfigurationStatusGroupedListResponse",
          "longName": "GetDeviceConfigurationStatusGroupedListResponse",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse",
          "description": "Ответ на запрос получения списка конфигураций сгруппированных по устройству",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Конфигурации устройства",
              "label": "",
              "type": "DeviceConfigurationStatusGrouped",
              "longType": "DeviceConfigurationStatusGrouped",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatusGrouped",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetDeviceConfigurationStatusGroupedListResponse.Error",
              "fullType": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetDeviceConfigurationStatusGroupedListResponse.Error",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.Error",
          "description": "Ошибка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceConfigurationStatusesRequest",
          "longName": "GetDeviceConfigurationStatusesRequest",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusesRequest",
          "description": "Запрос получения статусов конфигурации устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceConfigurationStatusesResponse",
          "longName": "GetDeviceConfigurationStatusesResponse",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse",
          "description": "Ответ на запрос получения статусов конфигурации устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Statuses",
              "longType": "GetDeviceConfigurationStatusesResponse.Statuses",
              "fullType": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetDeviceConfigurationStatusesResponse.Error",
              "fullType": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetDeviceConfigurationStatusesResponse.Error",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Error",
          "description": "Ошибка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation_error",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Statuses",
          "longName": "GetDeviceConfigurationStatusesResponse.Statuses",
          "fullName": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses",
          "description": "Статусы",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "device_configuration_statuses",
              "description": "Статусы конфигурации устройства",
              "label": "repeated",
              "type": "DeviceConfigurationStatus",
              "longType": "DeviceConfigurationStatus",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "camera_status",
              "description": "Статус камеры",
              "label": "",
              "type": "CameraStatus",
              "longType": "CameraStatus",
              "fullType": "keyapis.device.v1.CameraStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "sync_status",
              "description": "Статус синхронизации",
              "label": "",
              "type": "SyncStatus",
              "longType": "SyncStatus",
              "fullType": "keyapis.device.v1.SyncStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "device_status_type",
              "description": "Статус устройства",
              "label": "",
              "type": "StatusType",
              "longType": "Device.StatusType",
              "fullType": "keyapis.device.v1.Device.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            }
          ]
        },
        {
          "name": "GetDeviceCountRequest",
          "longName": "GetDeviceCountRequest",
          "fullName": "keyapis.device.v1.GetDeviceCountRequest",
          "description": "Запрос получения количества устройств",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "DeviceFilter",
              "longType": "DeviceFilter",
              "fullType": "keyapis.device.v1.DeviceFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceCountResponse",
          "longName": "GetDeviceCountResponse",
          "fullName": "keyapis.device.v1.GetDeviceCountResponse",
          "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": "GetDeviceCountResponse.Error",
              "fullType": "keyapis.device.v1.GetDeviceCountResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetDeviceCountResponse.Error",
          "fullName": "keyapis.device.v1.GetDeviceCountResponse.Error",
          "description": "Ошибка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceListRequest",
          "longName": "GetDeviceListRequest",
          "fullName": "keyapis.device.v1.GetDeviceListRequest",
          "description": "Запрос получения списка устройств",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "DeviceFilter",
              "longType": "DeviceFilter",
              "fullType": "keyapis.device.v1.DeviceFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Пагинация",
              "label": "",
              "type": "DevicePaging",
              "longType": "DevicePaging",
              "fullType": "keyapis.device.v1.DevicePaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetDeviceListResponse",
          "longName": "GetDeviceListResponse",
          "fullName": "keyapis.device.v1.GetDeviceListResponse",
          "description": "Ответ на запрос получения списка устройств",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Device",
              "longType": "Device",
              "fullType": "keyapis.device.v1.Device",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "GetDeviceListResponse.Error",
              "fullType": "keyapis.device.v1.GetDeviceListResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "GetDeviceListResponse.Error",
          "fullName": "keyapis.device.v1.GetDeviceListResponse.Error",
          "description": "Ошибка запроса на получение списка устройств",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceLiteRequest",
          "longName": "GetDeviceLiteRequest",
          "fullName": "keyapis.device.v1.GetDeviceLiteRequest",
          "description": "Запрос получения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceLiteResponse",
          "longName": "GetDeviceLiteResponse",
          "fullName": "keyapis.device.v1.GetDeviceLiteResponse",
          "description": "Ответ на запрос получения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "DeviceLite",
              "longType": "DeviceLite",
              "fullType": "keyapis.device.v1.DeviceLite",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceRequest",
          "longName": "GetDeviceRequest",
          "fullName": "keyapis.device.v1.GetDeviceRequest",
          "description": "Запрос получения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "GetDeviceResponse",
          "longName": "GetDeviceResponse",
          "fullName": "keyapis.device.v1.GetDeviceResponse",
          "description": "Ответ на запрос получения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Device",
              "longType": "Device",
              "fullType": "keyapis.device.v1.Device",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceConfigurationStatusRequest",
          "longName": "PostDeviceConfigurationStatusRequest",
          "fullName": "keyapis.device.v1.PostDeviceConfigurationStatusRequest",
          "description": "Запрос на изменение статуса конфигурации устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Статус конфигурации устройства",
              "label": "",
              "type": "DeviceConfigurationStatus",
              "longType": "DeviceConfigurationStatus",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceConfigurationStatusResponse",
          "longName": "PostDeviceConfigurationStatusResponse",
          "fullName": "keyapis.device.v1.PostDeviceConfigurationStatusResponse",
          "description": "Ответ на запрос на изменение статуса конфигурации устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Статус конфигурации устройства",
              "label": "",
              "type": "DeviceConfigurationStatus",
              "longType": "DeviceConfigurationStatus",
              "fullType": "keyapis.device.v1.DeviceConfigurationStatus",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostDeviceConfigurationStatusResponse.Error",
              "fullType": "keyapis.device.v1.PostDeviceConfigurationStatusResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostDeviceConfigurationStatusResponse.Error",
          "fullName": "keyapis.device.v1.PostDeviceConfigurationStatusResponse.Error",
          "description": "Ошибка запроса сохранения статуса конфигурации устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceInstallPresetRequest",
          "longName": "PostDeviceInstallPresetRequest",
          "fullName": "keyapis.device.v1.PostDeviceInstallPresetRequest",
          "description": "Запрос установки пресета на устройство",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceInstallPresetResponse",
          "longName": "PostDeviceInstallPresetResponse",
          "fullName": "keyapis.device.v1.PostDeviceInstallPresetResponse",
          "description": "Ответ на запрос установки пресета на устройство",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "error",
              "description": "Ошибка при установке пресета",
              "label": "",
              "type": "Error",
              "longType": "PostDeviceInstallPresetResponse.Error",
              "fullType": "keyapis.device.v1.PostDeviceInstallPresetResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostDeviceInstallPresetResponse.Error",
          "fullName": "keyapis.device.v1.PostDeviceInstallPresetResponse.Error",
          "description": "Ошибка при установке пресета",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "preset_status_is_processing",
              "description": "Пресет в процессе установки",
              "label": "",
              "type": "PresetStatusIsProcessing",
              "longType": "PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing",
              "fullType": "keyapis.device.v1.PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PresetStatusIsProcessing",
          "longName": "PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing",
          "fullName": "keyapis.device.v1.PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing",
          "description": "Пресет в процессе установки",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "PostDeviceReconfigureRequest",
          "longName": "PostDeviceReconfigureRequest",
          "fullName": "keyapis.device.v1.PostDeviceReconfigureRequest",
          "description": "Запрос на переконфигурирование устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceReconfigureResponse",
          "longName": "PostDeviceReconfigureResponse",
          "fullName": "keyapis.device.v1.PostDeviceReconfigureResponse",
          "description": "Ответ на запрос на переконфигурирование устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "error",
              "description": "Ошибка переконфигурирования устройства",
              "label": "",
              "type": "Error",
              "longType": "PostDeviceReconfigureResponse.Error",
              "fullType": "keyapis.device.v1.PostDeviceReconfigureResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostDeviceReconfigureResponse.Error",
          "fullName": "keyapis.device.v1.PostDeviceReconfigureResponse.Error",
          "description": "Ошибка переконфигурирования устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation_error",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "reinstall_error",
              "description": "Ошибка реинстала",
              "label": "",
              "type": "ReinstallError",
              "longType": "ReinstallError",
              "fullType": "keyapis.device.v1.ReinstallError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "PostDeviceReplaceRequest",
          "longName": "PostDeviceReplaceRequest",
          "fullName": "keyapis.device.v1.PostDeviceReplaceRequest",
          "description": "Запрос на замену устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "host",
              "description": "Хост",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "mac_address",
              "description": "MAC-адрес.\n# Диапазон: 17..17.\n# Паттерн: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "serial_number",
              "description": "Серийный номер",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "login",
              "description": "Логин (для модели спутник)",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            }
          ]
        },
        {
          "name": "PostDeviceReplaceResponse",
          "longName": "PostDeviceReplaceResponse",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse",
          "description": "Ответ на запрос на замену устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "error",
              "description": "Ошибка замены устройства",
              "label": "",
              "type": "Error",
              "longType": "PostDeviceReplaceResponse.Error",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostDeviceReplaceResponse.Error",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error",
          "description": "Ошибка замены устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation_error",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "host_exists",
              "description": "На платформе уже существует устройство с таким хостом",
              "label": "",
              "type": "HostExists",
              "longType": "PostDeviceReplaceResponse.Error.HostExists",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error.HostExists",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "mac_address_exists",
              "description": "На платформе уже существует устройство с таким MAC-адресом",
              "label": "",
              "type": "MacAddressExists",
              "longType": "PostDeviceReplaceResponse.Error.MacAddressExists",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error.MacAddressExists",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "serial_number_exists",
              "description": "На платформе уже существует устройство с таким серийным номером",
              "label": "",
              "type": "SerialNumberExists",
              "longType": "PostDeviceReplaceResponse.Error.SerialNumberExists",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error.SerialNumberExists",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "login_exists",
              "description": "На платформе уже существует устройство с таким логином (для устройст модели \"Спутник\")",
              "label": "",
              "type": "LoginExists",
              "longType": "PostDeviceReplaceResponse.Error.LoginExists",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginExists",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "login_is_required",
              "description": "Отсутствует поле Login для модели \"Спутник\"",
              "label": "",
              "type": "LoginIsRequired",
              "longType": "PostDeviceReplaceResponse.Error.LoginIsRequired",
              "fullType": "keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginIsRequired",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "reinstall_error",
              "description": "Ошибка реинстала",
              "label": "",
              "type": "ReinstallError",
              "longType": "ReinstallError",
              "fullType": "keyapis.device.v1.ReinstallError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 7
            }
          ]
        },
        {
          "name": "HostExists",
          "longName": "PostDeviceReplaceResponse.Error.HostExists",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error.HostExists",
          "description": "На платформе уже существует устройство с таким хостом",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "LoginExists",
          "longName": "PostDeviceReplaceResponse.Error.LoginExists",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginExists",
          "description": "На платформе уже существует устройство с таким логином (для устройст модели \"Спутник\")",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "LoginIsRequired",
          "longName": "PostDeviceReplaceResponse.Error.LoginIsRequired",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginIsRequired",
          "description": "Отсутствует поле Login для модели \"Спутник\"",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "MacAddressExists",
          "longName": "PostDeviceReplaceResponse.Error.MacAddressExists",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error.MacAddressExists",
          "description": "На платформе уже существует устройство с таким MAC-адресом",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "SerialNumberExists",
          "longName": "PostDeviceReplaceResponse.Error.SerialNumberExists",
          "fullName": "keyapis.device.v1.PostDeviceReplaceResponse.Error.SerialNumberExists",
          "description": "На платформе уже существует устройство с таким серийным номером",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "PostDeviceRequest",
          "longName": "PostDeviceRequest",
          "fullName": "keyapis.device.v1.PostDeviceRequest",
          "description": "Запрос на создание/изменение устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Device",
              "longType": "Device",
              "fullType": "keyapis.device.v1.Device",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostDeviceResponse",
          "longName": "PostDeviceResponse",
          "fullName": "keyapis.device.v1.PostDeviceResponse",
          "description": "Ответ на запрос на создание/изменение устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Device",
              "longType": "Device",
              "fullType": "keyapis.device.v1.Device",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostDeviceResponse.Error",
              "fullType": "keyapis.device.v1.PostDeviceResponse.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostDeviceResponse.Error",
          "fullName": "keyapis.device.v1.PostDeviceResponse.Error",
          "description": "Ошибка запроса сохранения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "validation",
              "description": "Ошибка валидации",
              "label": "",
              "type": "ValidationError",
              "longType": "ValidationError",
              "fullType": "keyapis.device.v1.ValidationError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "saving",
              "description": "Ошибка сохранения",
              "label": "",
              "type": "SavingError",
              "longType": "Device.SavingError",
              "fullType": "keyapis.device.v1.Device.SavingError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Preset",
          "longName": "Preset",
          "fullName": "keyapis.device.v1.Preset",
          "description": "Пресет.\nПресет с id=1 устанавливается при создании устройства по умолчанию",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор.\n# Диапазон: 1..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "title",
              "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": 2
            },
            {
              "name": "mrf_ids",
              "description": "Идентификатор МРФ.\n# Диапазон: 0..10",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "rf_ids",
              "description": "Идентификатор РФ.\n# Диапазон: 0..100",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "description",
              "description": "Описание.\n# Диапазон: 3..1024",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OPTIONAL"
                  ]
                }
              },
              "number": 5
            },
            {
              "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": 6
            },
            {
              "name": "changed_at",
              "description": "Дата последнего изменения.\nЗаполняется и обновляется сервером.\nЗаполняется при создании и изменении.\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": 7
            },
            {
              "name": "status_type",
              "description": "Статус",
              "label": "",
              "type": "StatusType",
              "longType": "Preset.StatusType",
              "fullType": "keyapis.device.v1.Preset.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 8
            },
            {
              "name": "sip",
              "description": "Параметр SIP",
              "label": "",
              "type": "Sip",
              "longType": "Preset.Sip",
              "fullType": "keyapis.device.v1.Preset.Sip",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 9
            },
            {
              "name": "ntp",
              "description": "Параметр NTP",
              "label": "",
              "type": "Ntp",
              "longType": "Preset.Ntp",
              "fullType": "keyapis.device.v1.Preset.Ntp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 10
            },
            {
              "name": "syslog",
              "description": "Параметр Syslog",
              "label": "",
              "type": "Syslog",
              "longType": "Preset.Syslog",
              "fullType": "keyapis.device.v1.Preset.Syslog",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 11
            },
            {
              "name": "rooms",
              "description": "Помещения.\n# Диапазон: 0..10000",
              "label": "repeated",
              "type": "Room",
              "longType": "Preset.Room",
              "fullType": "keyapis.device.v1.Preset.Room",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 12
            },
            {
              "name": "video_config",
              "description": "Параметры конфигурации видео",
              "label": "",
              "type": "VideoConfig",
              "longType": "Preset.VideoConfig",
              "fullType": "keyapis.device.v1.Preset.VideoConfig",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 13
            },
            {
              "name": "dtmf",
              "description": "Параметр DTMF.\n# Диапазон: 0..64",
              "label": "repeated",
              "type": "Dtmf",
              "longType": "Preset.Dtmf",
              "fullType": "keyapis.device.v1.Preset.Dtmf",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 14
            },
            {
              "name": "face_recognition",
              "description": "Распознование лиц",
              "label": "",
              "type": "FaceRecognition",
              "longType": "Preset.FaceRecognition",
              "fullType": "keyapis.device.v1.Preset.FaceRecognition",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 15
            }
          ]
        },
        {
          "name": "Dtmf",
          "longName": "Preset.Dtmf",
          "fullName": "keyapis.device.v1.Preset.Dtmf",
          "description": "Параметр DTMF",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "code",
              "description": "Код.\n# Диапазон: 1..1",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "relay_index",
              "description": "Индекс реле.\n# Диапазон: 0..64",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "FaceRecognition",
          "longName": "Preset.FaceRecognition",
          "fullName": "keyapis.device.v1.Preset.FaceRecognition",
          "description": "Распознование лиц",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "host",
              "description": "Адрес",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "alt_host",
              "description": "Альтернативный адрес",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "endpoint",
              "description": "Путь запроса к серверу",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "auth_token",
              "description": "Токен",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "configuration_type",
              "description": "Тип конфигурации",
              "label": "",
              "type": "ConfigurationType",
              "longType": "Preset.FaceRecognition.ConfigurationType",
              "fullType": "keyapis.device.v1.Preset.FaceRecognition.ConfigurationType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 5
            },
            {
              "name": "origin_id",
              "description": "Идентификатор источника в identix",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 6
            },
            {
              "name": "group_ids",
              "description": "Идентификаторы групп профилей в identix",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 7
            }
          ]
        },
        {
          "name": "Ntp",
          "longName": "Preset.Ntp",
          "fullName": "keyapis.device.v1.Preset.Ntp",
          "description": "Параметр NTP",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "host",
              "description": "Хост.\n# Диапазон: 5..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "port",
              "description": "Порт.\n# Диапазон: 1..65536",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "Room",
          "longName": "Preset.Room",
          "fullName": "keyapis.device.v1.Preset.Room",
          "description": "Помещение",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "phone",
              "description": "Номер телефона.\n# Диапазон: 5..14",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "num",
              "description": "Номер помещения.\n# Диапазон: 1..10000",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "SavingError",
          "longName": "Preset.SavingError",
          "fullName": "keyapis.device.v1.Preset.SavingError",
          "description": "Ошибка сохранения.\nЭти проверки выполняются при работе с базой данных и сторонними сервисами",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "conflict",
              "description": "Конфликт версий",
              "label": "",
              "type": "Conflict",
              "longType": "Preset.SavingError.Conflict",
              "fullType": "keyapis.device.v1.Preset.SavingError.Conflict",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "not_allowed_for_default",
              "description": "Запрещено для дефолтного пресета",
              "label": "",
              "type": "NotAllowedForDefault",
              "longType": "Preset.SavingError.NotAllowedForDefault",
              "fullType": "keyapis.device.v1.Preset.SavingError.NotAllowedForDefault",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "Conflict",
          "longName": "Preset.SavingError.Conflict",
          "fullName": "keyapis.device.v1.Preset.SavingError.Conflict",
          "description": "Конфликт версий.\nПричины:\n- В базе хранится другая версия строки, значения changed_at отличаются",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "NotAllowedForDefault",
          "longName": "Preset.SavingError.NotAllowedForDefault",
          "fullName": "keyapis.device.v1.Preset.SavingError.NotAllowedForDefault",
          "description": "Недоступно для дефолтного пресета.\nПричины:\n- Смена статуса на Архивный",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "Sip",
          "longName": "Preset.Sip",
          "fullName": "keyapis.device.v1.Preset.Sip",
          "description": "Параметр SIP",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "host",
              "description": "Хост.\n# Диапазон: 5..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "port",
              "description": "Порт.\n# Диапазон: 1..65536",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "reg_host",
              "description": "Хост reg.\n# Диапазон: 5..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "reg_port",
              "description": "Порт reg.\n# Диапазон: 1..65536",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 4
            },
            {
              "name": "proxy_host",
              "description": "Хост proxy.\n# Диапазон: 5..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 5
            },
            {
              "name": "proxy_port",
              "description": "Порт proxy.\n# Диапазон: 1..65536",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 6
            }
          ]
        },
        {
          "name": "Syslog",
          "longName": "Preset.Syslog",
          "fullName": "keyapis.device.v1.Preset.Syslog",
          "description": "Параметр Syslog",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "host",
              "description": "Хост.\n# Диапазон: 5..256",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "port",
              "description": "Порт.\n# Диапазон: 1..65536",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "protocol_type",
              "description": "Протокол",
              "label": "",
              "type": "ProtocolType",
              "longType": "Preset.Syslog.ProtocolType",
              "fullType": "keyapis.device.v1.Preset.Syslog.ProtocolType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 3
            }
          ]
        },
        {
          "name": "VideoConfig",
          "longName": "Preset.VideoConfig",
          "fullName": "keyapis.device.v1.Preset.VideoConfig",
          "description": "Параметры конфигурации видео",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "quality_type",
              "description": "Тип пресета",
              "label": "",
              "type": "QualityType",
              "longType": "Preset.VideoConfig.QualityType",
              "fullType": "keyapis.device.v1.Preset.VideoConfig.QualityType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "rtsp_user",
              "description": "Пользователь",
              "label": "",
              "type": "RtspUser",
              "longType": "Preset.VideoConfig.RtspUser",
              "fullType": "keyapis.device.v1.Preset.VideoConfig.RtspUser",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "RtspUser",
          "longName": "Preset.VideoConfig.RtspUser",
          "fullName": "keyapis.device.v1.Preset.VideoConfig.RtspUser",
          "description": "Пользователь",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "username",
              "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": 1
            },
            {
              "name": "password",
              "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": 2
            }
          ]
        },
        {
          "name": "PutDeviceRequest",
          "longName": "PutDeviceRequest",
          "fullName": "keyapis.device.v1.PutDeviceRequest",
          "description": "Запрос изменения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "id",
              "description": "Идентификатор устройства",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "preset_id",
              "description": "Идентификатор пресета",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OPTIONAL"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "is_sl3_mode_enabled",
              "description": "Настройка режима SL3",
              "label": "",
              "type": "bool",
              "longType": "bool",
              "fullType": "bool",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OPTIONAL"
                  ]
                }
              },
              "number": 3
            }
          ]
        },
        {
          "name": "PutDeviceResponse",
          "longName": "PutDeviceResponse",
          "fullName": "keyapis.device.v1.PutDeviceResponse",
          "description": "ответ на завпрос изменения устройства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Устройство",
              "label": "",
              "type": "Device",
              "longType": "Device",
              "fullType": "keyapis.device.v1.Device",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "ReinstallError",
          "longName": "ReinstallError",
          "fullName": "keyapis.device.v1.ReinstallError",
          "description": "Ошибки реинстала",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "sip_login_is_missing",
              "description": "Сип-логин отсутствует на устройстве",
              "label": "",
              "type": "SipLoginIsMissing",
              "longType": "ReinstallError.SipLoginIsMissing",
              "fullType": "keyapis.device.v1.ReinstallError.SipLoginIsMissing",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "SipLoginIsMissing",
          "longName": "ReinstallError.SipLoginIsMissing",
          "fullName": "keyapis.device.v1.ReinstallError.SipLoginIsMissing",
          "description": "Сип-логин отсутствует на устройстве",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "SyncStatus",
          "longName": "SyncStatus",
          "fullName": "keyapis.device.v1.SyncStatus",
          "description": "Статус синхронизации.\n# Описание модели",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "status_type",
              "description": "Статус синхронизации",
              "label": "",
              "type": "StatusType",
              "longType": "SyncStatus.StatusType",
              "fullType": "keyapis.device.v1.SyncStatus.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "error_message",
              "description": "Сообщение об ошибке",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 2
            },
            {
              "name": "retry_count",
              "description": "Количество попыток",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 3
            },
            {
              "name": "successful_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": 4
            },
            {
              "name": "sync_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": 5
            }
          ]
        },
        {
          "name": "ValidationError",
          "longName": "ValidationError",
          "fullName": "keyapis.device.v1.ValidationError",
          "description": "Ошибки валидации.\nЭти проверки выполняются до обращения в базу данных",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "path",
              "description": "Путь к полю в формате наименования прото",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "message",
              "description": "Валидационное сообщение",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        }
      ],
      "services": [
        {
          "name": "DeviceService",
          "longName": "DeviceService",
          "fullName": "keyapis.device.v1.DeviceService",
          "description": "Сервис устройств",
          "methods": [
            {
              "name": "GetDevice",
              "description": "Метод получаения устройства.\nМетод доступен для: admin, service, owner, employee, bti, ltp_first",
              "requestType": "GetDeviceRequest",
              "requestLongType": "GetDeviceRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceResponse",
              "responseLongType": "GetDeviceResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceList",
              "description": "Метод получения списка устройств.\nМетод доступен для: admin, service, owner, employee, bti, ltp_first",
              "requestType": "GetDeviceListRequest",
              "requestLongType": "GetDeviceListRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceListRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceListResponse",
              "responseLongType": "GetDeviceListResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceCount",
              "description": "Метод получения количества устройств.\nМетод доступен для: admin, service, owner, employee, bti, ltp_first",
              "requestType": "GetDeviceCountRequest",
              "requestLongType": "GetDeviceCountRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceCountRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceCountResponse",
              "responseLongType": "GetDeviceCountResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDevice",
              "description": "Метод создания устройства.\nМетод доступен для: admin, bti, service, owner, employee.\nДля owner, employee доступно создание и редактирование только в КВГ, привязанных к компании пользователя",
              "requestType": "PostDeviceRequest",
              "requestLongType": "PostDeviceRequest",
              "requestFullType": "keyapis.device.v1.PostDeviceRequest",
              "requestStreaming": false,
              "responseType": "PostDeviceResponse",
              "responseLongType": "PostDeviceResponse",
              "responseFullType": "keyapis.device.v1.PostDeviceResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/device/api/v1/device",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "PutDevice",
              "description": "Метод изменения устройства.\nМетод доступен для: admin, bti, service",
              "requestType": "PutDeviceRequest",
              "requestLongType": "PutDeviceRequest",
              "requestFullType": "keyapis.device.v1.PutDeviceRequest",
              "requestStreaming": false,
              "responseType": "PutDeviceResponse",
              "responseLongType": "PutDeviceResponse",
              "responseFullType": "keyapis.device.v1.PutDeviceResponse",
              "responseStreaming": false,
              "options": {
                "deprecated": true,
                "google.api.http": {
                  "rules": [
                    {
                      "method": "PUT",
                      "pattern": "/device/api/v1/device",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDeviceInstallPreset",
              "description": "Метод установки пресета на устройство.\nМетод доступен для: admin, service",
              "requestType": "PostDeviceInstallPresetRequest",
              "requestLongType": "PostDeviceInstallPresetRequest",
              "requestFullType": "keyapis.device.v1.PostDeviceInstallPresetRequest",
              "requestStreaming": false,
              "responseType": "PostDeviceInstallPresetResponse",
              "responseLongType": "PostDeviceInstallPresetResponse",
              "responseFullType": "keyapis.device.v1.PostDeviceInstallPresetResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/device/api/v1/device/{id}/install_preset"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDeviceReplace",
              "description": "Метод замены устройста.\nЛогика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=655256574.\nМетод доступен для: admin, bti, service",
              "requestType": "PostDeviceReplaceRequest",
              "requestLongType": "PostDeviceReplaceRequest",
              "requestFullType": "keyapis.device.v1.PostDeviceReplaceRequest",
              "requestStreaming": false,
              "responseType": "PostDeviceReplaceResponse",
              "responseLongType": "PostDeviceReplaceResponse",
              "responseFullType": "keyapis.device.v1.PostDeviceReplaceResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/device/api/v1/device/{id}/replace",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDeviceReconfigure",
              "description": "Метод переконфигурирования устройста.\nЛогика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=630337555.\nМетод доступен для: admin, bti, service",
              "requestType": "PostDeviceReconfigureRequest",
              "requestLongType": "PostDeviceReconfigureRequest",
              "requestFullType": "keyapis.device.v1.PostDeviceReconfigureRequest",
              "requestStreaming": false,
              "responseType": "PostDeviceReconfigureResponse",
              "responseLongType": "PostDeviceReconfigureResponse",
              "responseFullType": "keyapis.device.v1.PostDeviceReconfigureResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/device/api/v1/device/{id}/reconfigure"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceConfigurationStatuses",
              "description": "Метод получения статусов конфигурации устройства.\nМетод доступен для: admin, service, bti, ltp_first",
              "requestType": "GetDeviceConfigurationStatusesRequest",
              "requestLongType": "GetDeviceConfigurationStatusesRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceConfigurationStatusesRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceConfigurationStatusesResponse",
              "responseLongType": "GetDeviceConfigurationStatusesResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceConfigurationStatusesResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/{id}/configuration_statuses"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDeviceConfigurationStatus",
              "description": "Метод изменения статуса конфигурации устройства.\nМетод доступен для: admin, service",
              "requestType": "PostDeviceConfigurationStatusRequest",
              "requestLongType": "PostDeviceConfigurationStatusRequest",
              "requestFullType": "keyapis.device.v1.PostDeviceConfigurationStatusRequest",
              "requestStreaming": false,
              "responseType": "PostDeviceConfigurationStatusResponse",
              "responseLongType": "PostDeviceConfigurationStatusResponse",
              "responseFullType": "keyapis.device.v1.PostDeviceConfigurationStatusResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/device/api/v1/device/configuration_status",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceConfigurationStatusGroupedList",
              "description": "Метод получения списка конфигураций сгруппированных по устройствам.\nМетод доступен для: admin, service",
              "requestType": "GetDeviceConfigurationStatusGroupedListRequest",
              "requestLongType": "GetDeviceConfigurationStatusGroupedListRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceConfigurationStatusGroupedListResponse",
              "responseLongType": "GetDeviceConfigurationStatusGroupedListResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/configuration_status/grouped/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceConfigurationStatusGroupedCount",
              "description": "Метод получения количества конфигураций сгруппированных по устройствам.\nМетод доступен для: admin, service",
              "requestType": "GetDeviceConfigurationStatusGroupedCountRequest",
              "requestLongType": "GetDeviceConfigurationStatusGroupedCountRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceConfigurationStatusGroupedCountResponse",
              "responseLongType": "GetDeviceConfigurationStatusGroupedCountResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device/configuration_status/grouped/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "DeleteDevice",
              "description": "Метод удаления устройства.\nМетод доступен для: admin, service",
              "requestType": "DeleteDeviceRequest",
              "requestLongType": "DeleteDeviceRequest",
              "requestFullType": "keyapis.device.v1.DeleteDeviceRequest",
              "requestStreaming": false,
              "responseType": "DeleteDeviceResponse",
              "responseLongType": "DeleteDeviceResponse",
              "responseFullType": "keyapis.device.v1.DeleteDeviceResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "DELETE",
                      "pattern": "/device/api/v1/device/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDeviceLite",
              "description": "Метод получаения упрощенного устройства.\nМетод доступен для: admin, service, owner, employee, bti, ltp_first.\nМетод доступен для: ApiKey",
              "requestType": "GetDeviceLiteRequest",
              "requestLongType": "GetDeviceLiteRequest",
              "requestFullType": "keyapis.device.v1.GetDeviceLiteRequest",
              "requestStreaming": false,
              "responseType": "GetDeviceLiteResponse",
              "responseLongType": "GetDeviceLiteResponse",
              "responseFullType": "keyapis.device.v1.GetDeviceLiteResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/device/api/v1/device_lite/{id}"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "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)"
    }
  ]
}