{
  "files": [
    {
      "name": "keyapis/telemetry_control/v1/keyapis_telemetry_control_dictionary_v1.proto",
      "description": "Сервис предоставляет возможность управлять справочниками телеметрии",
      "package": "keyapis.telemetry_control.v1",
      "hasEnums": false,
      "hasExtensions": false,
      "hasMessages": true,
      "hasServices": true,
      "enums": [
        {
          "name": "DirectionType",
          "longName": "DictionaryDeviceModelPaging.DirectionType",
          "fullName": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging.DirectionType",
          "description": "Справочник типов направлений сортировки.\nПо умолчанию: ASC",
          "values": [
            {
              "name": "DIRECTION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DESC",
              "number": "1",
              "description": "От большего к меньшему"
            },
            {
              "name": "ASC",
              "number": "2",
              "description": "От меньшего к большему"
            }
          ]
        },
        {
          "name": "OrderByType",
          "longName": "DictionaryDeviceModelPaging.OrderByType",
          "fullName": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging.OrderByType",
          "description": "Справочник типов значений сортировки",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "ID",
              "number": "1",
              "description": "По идентификатору"
            },
            {
              "name": "TITLE",
              "number": "2",
              "description": "По заголовку элемента"
            }
          ]
        },
        {
          "name": "MrfType",
          "longName": "DictionaryMrf.MrfType",
          "fullName": "keyapis.telemetry_control.v1.DictionaryMrf.MrfType",
          "description": "Справочник Макрорегионы (МРФ)",
          "values": [
            {
              "name": "MRF_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "TSENTR",
              "number": "1",
              "description": "Центр"
            },
            {
              "name": "YUG",
              "number": "2",
              "description": "Юг"
            },
            {
              "name": "URAL",
              "number": "3",
              "description": "Урал"
            },
            {
              "name": "SIBIR",
              "number": "4",
              "description": "Сибирь"
            },
            {
              "name": "SEVERO_ZAPAD",
              "number": "5",
              "description": "Северо-Запад"
            },
            {
              "name": "DALNIY_VOSTOK",
              "number": "6",
              "description": "Дальний Восток"
            },
            {
              "name": "VOLGA",
              "number": "7",
              "description": "Волга"
            }
          ]
        },
        {
          "name": "PermissionType",
          "longName": "DictionaryPermission.PermissionType",
          "fullName": "keyapis.telemetry_control.v1.DictionaryPermission.PermissionType",
          "description": "Справочник Разрешения Телеметрии",
          "values": [
            {
              "name": "PERMISSION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            }
          ]
        },
        {
          "name": "RfType",
          "longName": "DictionaryRf.RfType",
          "fullName": "keyapis.telemetry_control.v1.DictionaryRf.RfType",
          "description": "Справочник Регионы (РФ)",
          "values": [
            {
              "name": "RF_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "UFA",
              "number": "1",
              "description": "Республика Башкортостан"
            },
            {
              "name": "KIROV",
              "number": "2",
              "description": "Кировская область"
            },
            {
              "name": "IVANOVO",
              "number": "3",
              "description": "Ивановский филиал"
            },
            {
              "name": "KALUGA",
              "number": "4",
              "description": "Калужский филиал"
            },
            {
              "name": "KOSTROMA",
              "number": "5",
              "description": "Костромской филиал"
            },
            {
              "name": "KURSK",
              "number": "6",
              "description": "Курский филиал"
            },
            {
              "name": "LIPETSK",
              "number": "7",
              "description": "Липецкий филиал"
            },
            {
              "name": "MOSOBLAST",
              "number": "8",
              "description": "Московская область"
            },
            {
              "name": "OREL",
              "number": "9",
              "description": "Орловский филиал"
            },
            {
              "name": "RYAZAN",
              "number": "10",
              "description": "Рязанский филиал"
            },
            {
              "name": "TAMBOV",
              "number": "11",
              "description": "Тамбовский филиал"
            },
            {
              "name": "TVER",
              "number": "12",
              "description": "Тверской филиал"
            },
            {
              "name": "YAROSLAVL",
              "number": "13",
              "description": "Ярославский филиал"
            },
            {
              "name": "SMOLENSK",
              "number": "14",
              "description": "Смоленский филиал"
            },
            {
              "name": "TULA",
              "number": "15",
              "description": "Тульский филиал"
            },
            {
              "name": "MOSCOW",
              "number": "16",
              "description": "Москва"
            },
            {
              "name": "EAO",
              "number": "17",
              "description": "ЕАО"
            },
            {
              "name": "KURGAN",
              "number": "18",
              "description": "Филиал в Тюменской и Курганской областях"
            },
            {
              "name": "TUMEN",
              "number": "19",
              "description": "Филиал в Тюменской и Курганской областях"
            },
            {
              "name": "HANTY",
              "number": "20",
              "description": "Ханты-Мансийский филиал"
            },
            {
              "name": "AMUR",
              "number": "21",
              "description": "Амурская область"
            },
            {
              "name": "KAMCHATKA",
              "number": "22",
              "description": "Камчатский край"
            },
            {
              "name": "MAGADAN",
              "number": "23",
              "description": "Магаданская область"
            },
            {
              "name": "PRIMORYE",
              "number": "24",
              "description": "Приморский край"
            },
            {
              "name": "SAKHALIN",
              "number": "25",
              "description": "Сахалинская область"
            },
            {
              "name": "KHABAROVSK",
              "number": "26",
              "description": "Хабаровский край"
            },
            {
              "name": "CHITA",
              "number": "27",
              "description": "Забайкальский край"
            },
            {
              "name": "CHUKOTKA",
              "number": "28",
              "description": "ЧАО"
            },
            {
              "name": "ARCHANGELSK",
              "number": "29",
              "description": "Архангельск"
            },
            {
              "name": "VOLOGDA",
              "number": "30",
              "description": "Вологда"
            },
            {
              "name": "KALININGRAD",
              "number": "31",
              "description": "Калининград"
            },
            {
              "name": "KARELIA",
              "number": "32",
              "description": "Карелия"
            },
            {
              "name": "KOMI",
              "number": "33",
              "description": "Коми"
            },
            {
              "name": "LENOBLAST",
              "number": "34",
              "description": "Лен область"
            },
            {
              "name": "MURMANSK",
              "number": "35",
              "description": "Мурманск"
            },
            {
              "name": "NOVGOROD",
              "number": "36",
              "description": "Новгород"
            },
            {
              "name": "PSKOV",
              "number": "37",
              "description": "Псков"
            },
            {
              "name": "SPB",
              "number": "38",
              "description": "СПб"
            },
            {
              "name": "ALTAI",
              "number": "39",
              "description": "Алтайский филиал"
            },
            {
              "name": "BURYATIYA",
              "number": "40",
              "description": "Бурятский филиал"
            },
            {
              "name": "IRKUTSK",
              "number": "41",
              "description": "Иркутский филиал"
            },
            {
              "name": "KEMEROVO",
              "number": "42",
              "description": "Кемеровский филиал"
            },
            {
              "name": "KRASNOYARSK",
              "number": "43",
              "description": "Красноярский филиал"
            },
            {
              "name": "OMSK",
              "number": "44",
              "description": "Омский филиал"
            },
            {
              "name": "HAKASIYA",
              "number": "45",
              "description": "Республика Хакасия"
            },
            {
              "name": "RALTAY",
              "number": "46",
              "description": "Республика Алтай"
            },
            {
              "name": "TUVA",
              "number": "47",
              "description": "Республика Тыва"
            },
            {
              "name": "TOMSK",
              "number": "48",
              "description": "Томский филиал"
            },
            {
              "name": "ORENBURG",
              "number": "49",
              "description": "Оренбургская область"
            },
            {
              "name": "BELGOROD",
              "number": "50",
              "description": "Белгородский филиал"
            },
            {
              "name": "SAKHA",
              "number": "51",
              "description": "Саха"
            },
            {
              "name": "EKT",
              "number": "52",
              "description": "Екатеринбургский филиал"
            },
            {
              "name": "VOLGOGRAD",
              "number": "53",
              "description": "Волгоградский филиал"
            },
            {
              "name": "YAMAL",
              "number": "54",
              "description": "Ямало-Ненецкий филиал"
            },
            {
              "name": "CHELYABINSK",
              "number": "55",
              "description": "Челябинский филиал"
            },
            {
              "name": "PERM",
              "number": "56",
              "description": "Пермский филиал ПАО \"Ростелеком\""
            },
            {
              "name": "MARYEL",
              "number": "57",
              "description": "Республика Марий Эл"
            },
            {
              "name": "PENZA",
              "number": "58",
              "description": "Пензенская область"
            },
            {
              "name": "INGUSHETIA",
              "number": "59",
              "description": "Ингушский филиал"
            },
            {
              "name": "NALCHIK",
              "number": "60",
              "description": "Кабардино-Балкарский филиал"
            },
            {
              "name": "ELISTA",
              "number": "61",
              "description": "Калмыцкий филиал"
            },
            {
              "name": "ROSTOV",
              "number": "62",
              "description": "Ростовский филиал"
            },
            {
              "name": "MAHACHKALA",
              "number": "63",
              "description": "Дагестанский филиал"
            },
            {
              "name": "MORDOVIYA",
              "number": "64",
              "description": "Республика Мордовия"
            },
            {
              "name": "KAZAN",
              "number": "65",
              "description": "Республика Татарстан (Татарстан)"
            },
            {
              "name": "SAMARA",
              "number": "66",
              "description": "Самарская область"
            },
            {
              "name": "SARATOV",
              "number": "67",
              "description": "Саратовская область"
            },
            {
              "name": "UDMURTIYA",
              "number": "68",
              "description": "Удмуртская Республика"
            },
            {
              "name": "ULYANOVSK",
              "number": "69",
              "description": "Ульяновская область"
            },
            {
              "name": "CHUVASHIYA",
              "number": "70",
              "description": "Чувашская Республика - Чувашия"
            },
            {
              "name": "NNOVGOROD",
              "number": "71",
              "description": "Нижегородская область"
            },
            {
              "name": "BRYANSK",
              "number": "72",
              "description": "Брянский филиал"
            },
            {
              "name": "VLADIMIR",
              "number": "73",
              "description": "Владимирский филиал"
            },
            {
              "name": "VORONEZH",
              "number": "74",
              "description": "Воронежский филиал"
            },
            {
              "name": "VLADIKAVKAZ",
              "number": "75",
              "description": "Северо-Осетинский филиал"
            },
            {
              "name": "STAVROPOL",
              "number": "76",
              "description": "Ставропольский филиал"
            },
            {
              "name": "CHERKESSK",
              "number": "77",
              "description": "Республика Карачаево-Черкесская"
            },
            {
              "name": "MAYKOP",
              "number": "78",
              "description": "Республика Адыгея"
            },
            {
              "name": "ASTRAKHAN",
              "number": "79",
              "description": "Астраханский филиал"
            },
            {
              "name": "KRASNODAR",
              "number": "80",
              "description": "Краснодарский филиал"
            },
            {
              "name": "TEST",
              "number": "81",
              "description": "Тестовый"
            },
            {
              "name": "NOVOSIBIRSK",
              "number": "82",
              "description": "Новосибирский филиал"
            }
          ]
        }
      ],
      "extensions": [],
      "messages": [
        {
          "name": "DeleteDictionaryDeviceModelRequest",
          "longName": "DeleteDictionaryDeviceModelRequest",
          "fullName": "keyapis.telemetry_control.v1.DeleteDictionaryDeviceModelRequest",
          "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": "DeleteDictionaryDeviceModelResponse",
          "longName": "DeleteDictionaryDeviceModelResponse",
          "fullName": "keyapis.telemetry_control.v1.DeleteDictionaryDeviceModelResponse",
          "description": "Ответ на запрос удаления модели ПУ",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "DictionaryDeviceModel",
          "longName": "DictionaryDeviceModel",
          "fullName": "keyapis.telemetry_control.v1.DictionaryDeviceModel",
          "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": "",
              "number": 1
            },
            {
              "name": "created_at",
              "description": "Дата создания",
              "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": 2
            },
            {
              "name": "changed_at",
              "description": "Дата последнего изменения.\nЗаполняется и обновляется сервером.\nЗаполняется при создании и изменении",
              "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": 3
            },
            {
              "name": "title",
              "description": "Модель счетчика",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "protocol",
              "description": "Протокол счетчика",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "model_kind",
              "description": "Тип модели",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            }
          ]
        },
        {
          "name": "DictionaryDeviceModelFilter",
          "longName": "DictionaryDeviceModelFilter",
          "fullName": "keyapis.telemetry_control.v1.DictionaryDeviceModelFilter",
          "description": "Фильтр для запроса моделей приборов учета.\nПри передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.\nПри передаче нескольких разных параметров фильтра они работают в выборке через И",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "titles",
              "description": "По заголовку элемента",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "model_kinds",
              "description": "По типам модели",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "DictionaryDeviceModelPaging",
          "longName": "DictionaryDeviceModelPaging",
          "fullName": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging",
          "description": "Пагинация",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nПо умолчанию: ID",
              "label": "",
              "type": "OrderByType",
              "longType": "DictionaryDeviceModelPaging.OrderByType",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\nПо умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "DictionaryDeviceModelPaging.DirectionType",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging.DirectionType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "limit",
              "description": "Количество.\nМинимальное значение: 1.\nМаксимальное значение: 100.\nПо умолчанию: 20.\nЕсли значение 0 (не передано) то выставляем значение по умолчанию",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "offset",
              "description": "Сдвиг.\nПо умолчанию: 0",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            }
          ]
        },
        {
          "name": "DictionaryMrf",
          "longName": "DictionaryMrf",
          "fullName": "keyapis.telemetry_control.v1.DictionaryMrf",
          "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": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "created_at",
              "description": "Дата создания",
              "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": 2
            },
            {
              "name": "changed_at",
              "description": "Дата последнего изменения.\nЗаполняется и обновляется сервером.\nЗаполняется при создании и изменении",
              "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": 3
            },
            {
              "name": "title",
              "description": "Локализованный заголовок элемента",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "code",
              "description": "Техническое наименование элемента",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            }
          ]
        },
        {
          "name": "DictionaryPermission",
          "longName": "DictionaryPermission",
          "fullName": "keyapis.telemetry_control.v1.DictionaryPermission",
          "description": "Элемент справочника Разрешения Телеметрии",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "permission_type",
              "description": "Элемент справочника Разрешения Телеметрии",
              "label": "",
              "type": "PermissionType",
              "longType": "DictionaryPermission.PermissionType",
              "fullType": "keyapis.telemetry_control.v1.DictionaryPermission.PermissionType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "DictionaryRf",
          "longName": "DictionaryRf",
          "fullName": "keyapis.telemetry_control.v1.DictionaryRf",
          "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": [
                    "OUTPUT_ONLY"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "created_at",
              "description": "Дата создания",
              "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": 2
            },
            {
              "name": "changed_at",
              "description": "Дата последнего изменения.\nЗаполняется и обновляется сервером.\nЗаполняется при создании и изменении",
              "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": 3
            },
            {
              "name": "title",
              "description": "Локализованный заголовок элемента",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "code",
              "description": "Техническое наименование элемента",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "mrf_id",
              "description": "Принадлежность региона к Макрорегиону (МРФ)",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 6
            }
          ]
        },
        {
          "name": "GetDictionaryDeviceModelCountRequest",
          "longName": "GetDictionaryDeviceModelCountRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelCountRequest",
          "description": "Запрос получения количества моделей приборов учета",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр по моделям приборов учета",
              "label": "",
              "type": "DictionaryDeviceModelFilter",
              "longType": "DictionaryDeviceModelFilter",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModelFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDictionaryDeviceModelCountResponse",
          "longName": "GetDictionaryDeviceModelCountResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelCountResponse",
          "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": "GetDictionaryDeviceModelListRequest",
          "longName": "GetDictionaryDeviceModelListRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelListRequest",
          "description": "Запрос получения списка моделей ПУ",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр",
              "label": "",
              "type": "DictionaryDeviceModelFilter",
              "longType": "DictionaryDeviceModelFilter",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModelFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Пагинация",
              "label": "",
              "type": "DictionaryDeviceModelPaging",
              "longType": "DictionaryDeviceModelPaging",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModelPaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetDictionaryDeviceModelListResponse",
          "longName": "GetDictionaryDeviceModelListResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelListResponse",
          "description": "Ответ на запрос получения списка моделей приборов учета",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Элемент справочника моделей ПУ",
              "label": "",
              "type": "DictionaryDeviceModel",
              "longType": "DictionaryDeviceModel",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModel",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDictionaryDeviceModelRequest",
          "longName": "GetDictionaryDeviceModelRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelRequest",
          "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": "GetDictionaryDeviceModelResponse",
          "longName": "GetDictionaryDeviceModelResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelResponse",
          "description": "Ответ на запрос получения модели ПУ",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Элемент справочника моделей",
              "label": "",
              "type": "DictionaryDeviceModel",
              "longType": "DictionaryDeviceModel",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModel",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDictionaryMrfCountRequest",
          "longName": "GetDictionaryMrfCountRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryMrfCountRequest",
          "description": "Запрос получения количества элементов справочника Макрорегионы (МРФ)",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "GetDictionaryMrfCountResponse",
          "longName": "GetDictionaryMrfCountResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryMrfCountResponse",
          "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": "GetDictionaryMrfListRequest",
          "longName": "GetDictionaryMrfListRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryMrfListRequest",
          "description": "Запрос получения элементов справочника Макрорегионы (МРФ)",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "GetDictionaryMrfListResponse",
          "longName": "GetDictionaryMrfListResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryMrfListResponse",
          "description": "Ответ на запрос получения элементов справочника Макрорегионы (МРФ)",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Элемент справочника Макрорегионы (МРФ)",
              "label": "",
              "type": "DictionaryMrf",
              "longType": "DictionaryMrf",
              "fullType": "keyapis.telemetry_control.v1.DictionaryMrf",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetDictionaryRfCountRequest",
          "longName": "GetDictionaryRfCountRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryRfCountRequest",
          "description": "Запрос получения количества элементов справочника Регионы (РФ)",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "GetDictionaryRfCountResponse",
          "longName": "GetDictionaryRfCountResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryRfCountResponse",
          "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": "GetDictionaryRfListRequest",
          "longName": "GetDictionaryRfListRequest",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryRfListRequest",
          "description": "Запрос получения элементов справочника Регионы (РФ)",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "GetDictionaryRfListResponse",
          "longName": "GetDictionaryRfListResponse",
          "fullName": "keyapis.telemetry_control.v1.GetDictionaryRfListResponse",
          "description": "Ответ на запрос получения элементов справочника Регионы (РФ)",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Элемент справочника Регионы (РФ)",
              "label": "",
              "type": "DictionaryRf",
              "longType": "DictionaryRf",
              "fullType": "keyapis.telemetry_control.v1.DictionaryRf",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostDictionaryDeviceModelRequest",
          "longName": "PostDictionaryDeviceModelRequest",
          "fullName": "keyapis.telemetry_control.v1.PostDictionaryDeviceModelRequest",
          "description": "Запрос сохранения модели ПУ",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Шаблон ПУ",
              "label": "",
              "type": "DictionaryDeviceModel",
              "longType": "DictionaryDeviceModel",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModel",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostDictionaryDeviceModelResponse",
          "longName": "PostDictionaryDeviceModelResponse",
          "fullName": "keyapis.telemetry_control.v1.PostDictionaryDeviceModelResponse",
          "description": "Ответ на запрос сохранения модели ПУ",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Шаблон ПУ",
              "label": "",
              "type": "DictionaryDeviceModel",
              "longType": "DictionaryDeviceModel",
              "fullType": "keyapis.telemetry_control.v1.DictionaryDeviceModel",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        }
      ],
      "services": [
        {
          "name": "DictionaryService",
          "longName": "DictionaryService",
          "fullName": "keyapis.telemetry_control.v1.DictionaryService",
          "description": "Сервис управления справочниками телеметрии.\nАвторизация:\n  - Authorization: Bearer token",
          "methods": [
            {
              "name": "GetDictionaryDeviceModelList",
              "description": "Метод получения списка моделей ПУ.\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryDeviceModelListRequest",
              "requestLongType": "GetDictionaryDeviceModelListRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelListRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryDeviceModelListResponse",
              "responseLongType": "GetDictionaryDeviceModelListResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/device_model/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDictionaryDeviceModelCount",
              "description": "Метод получения количества моделей ПУ.\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryDeviceModelCountRequest",
              "requestLongType": "GetDictionaryDeviceModelCountRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelCountRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryDeviceModelCountResponse",
              "responseLongType": "GetDictionaryDeviceModelCountResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryDeviceModelCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/device_model/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostDictionaryDeviceModel",
              "description": "Метод сохранения модели ПУ.\nПоддерживает создание и обновление.\nМетод доступен для: Token: admin, service, application. Без учета разрешений",
              "requestType": "PostDictionaryDeviceModelRequest",
              "requestLongType": "PostDictionaryDeviceModelRequest",
              "requestFullType": "keyapis.telemetry_control.v1.PostDictionaryDeviceModelRequest",
              "requestStreaming": false,
              "responseType": "PostDictionaryDeviceModelResponse",
              "responseLongType": "PostDictionaryDeviceModelResponse",
              "responseFullType": "keyapis.telemetry_control.v1.PostDictionaryDeviceModelResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/telemetry_control/api/v1/dictionary/device_model",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "DeleteDictionaryDeviceModel",
              "description": "Метод удаления модели ПУ.\nМетод доступен для: Token: admin, service, application. Без учета разрешений",
              "requestType": "DeleteDictionaryDeviceModelRequest",
              "requestLongType": "DeleteDictionaryDeviceModelRequest",
              "requestFullType": "keyapis.telemetry_control.v1.DeleteDictionaryDeviceModelRequest",
              "requestStreaming": false,
              "responseType": "DeleteDictionaryDeviceModelResponse",
              "responseLongType": "DeleteDictionaryDeviceModelResponse",
              "responseFullType": "keyapis.telemetry_control.v1.DeleteDictionaryDeviceModelResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "DELETE",
                      "pattern": "/telemetry_control/api/v1/dictionary/device_model/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDictionaryMrfList",
              "description": "Метод получения списка элементов справочника Макрорегионы (МРФ).\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryMrfListRequest",
              "requestLongType": "GetDictionaryMrfListRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryMrfListRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryMrfListResponse",
              "responseLongType": "GetDictionaryMrfListResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryMrfListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/mrf/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDictionaryMrfCount",
              "description": "Метод получения количества элементов справочника Макрорегионы (МРФ).\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryMrfCountRequest",
              "requestLongType": "GetDictionaryMrfCountRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryMrfCountRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryMrfCountResponse",
              "responseLongType": "GetDictionaryMrfCountResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryMrfCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/mrf/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDictionaryRfList",
              "description": "Метод получения списка элементов справочника Регионы (РФ).\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryRfListRequest",
              "requestLongType": "GetDictionaryRfListRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryRfListRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryRfListResponse",
              "responseLongType": "GetDictionaryRfListResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryRfListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/rf/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetDictionaryRfCount",
              "description": "Метод получения количества элементов справочника Регионы (РФ).\nМетод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений",
              "requestType": "GetDictionaryRfCountRequest",
              "requestLongType": "GetDictionaryRfCountRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetDictionaryRfCountRequest",
              "requestStreaming": false,
              "responseType": "GetDictionaryRfCountResponse",
              "responseLongType": "GetDictionaryRfCountResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetDictionaryRfCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/dictionary/rf/count"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "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)"
    }
  ]
}