{
  "files": [
    {
      "name": "keyapis/telemetry_control/v1/keyapis_telemetry_control_building_v1.proto",
      "description": "Сервис реализует функционал управления объектами строительства телеметрии",
      "package": "keyapis.telemetry_control.v1",
      "hasEnums": false,
      "hasExtensions": false,
      "hasMessages": true,
      "hasServices": true,
      "enums": [
        {
          "name": "MrfType",
          "longName": "Building.MrfType",
          "fullName": "keyapis.telemetry_control.v1.Building.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": "RfType",
          "longName": "Building.RfType",
          "fullName": "keyapis.telemetry_control.v1.Building.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": "Новосибирский филиал"
            }
          ]
        },
        {
          "name": "StatusType",
          "longName": "Building.StatusType",
          "fullName": "keyapis.telemetry_control.v1.Building.StatusType",
          "description": "Статусы объектов строительства",
          "values": [
            {
              "name": "STATUS_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "BUILDING",
              "number": "1",
              "description": "СМР"
            },
            {
              "name": "ACCEPTANCE",
              "number": "2",
              "description": "Реализован"
            },
            {
              "name": "ACTIVE",
              "number": "3",
              "description": "Обслуживание"
            },
            {
              "name": "ARCHIVE",
              "number": "4",
              "description": "Снят с обслуживания"
            },
            {
              "name": "CANCELLED",
              "number": "5",
              "description": "Отказ от заключения договора"
            },
            {
              "name": "TEST_STATUS_TYPE",
              "number": "6",
              "description": "Тестовый"
            }
          ]
        },
        {
          "name": "DirectionType",
          "longName": "BuildingGroupPaging.DirectionType",
          "fullName": "keyapis.telemetry_control.v1.BuildingGroupPaging.DirectionType",
          "description": "Справочник типов направлений сортировки",
          "values": [
            {
              "name": "DIRECTION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DESC",
              "number": "1",
              "description": "От большего к меньшему"
            },
            {
              "name": "ASC",
              "number": "2",
              "description": "От меньшего к большему"
            }
          ]
        },
        {
          "name": "OrderByType",
          "longName": "BuildingGroupPaging.OrderByType",
          "fullName": "keyapis.telemetry_control.v1.BuildingGroupPaging.OrderByType",
          "description": "Справочник типов сортировки",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "GROUP_ID",
              "number": "1",
              "description": "По Идентификатору группы пользователя"
            },
            {
              "name": "BUILDING_ID",
              "number": "2",
              "description": "По Объекту строительства"
            }
          ]
        },
        {
          "name": "DirectionType",
          "longName": "BuildingPaging.DirectionType",
          "fullName": "keyapis.telemetry_control.v1.BuildingPaging.DirectionType",
          "description": "Справочник типов направлений сортировки",
          "values": [
            {
              "name": "DIRECTION_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "DESC",
              "number": "1",
              "description": "От большего к меньшему"
            },
            {
              "name": "ASC",
              "number": "2",
              "description": "От меньшего к большему"
            }
          ]
        },
        {
          "name": "OrderByType",
          "longName": "BuildingPaging.OrderByType",
          "fullName": "keyapis.telemetry_control.v1.BuildingPaging.OrderByType",
          "description": "Справочник типов сортировки",
          "values": [
            {
              "name": "ORDER_BY_TYPE_UNKNOWN",
              "number": "0",
              "description": "Значение не указано"
            },
            {
              "name": "ID",
              "number": "1",
              "description": "По уникальному ключу"
            },
            {
              "name": "TITLE",
              "number": "2",
              "description": "По наименованию"
            },
            {
              "name": "CREATED_AT",
              "number": "3",
              "description": "По дате создания"
            },
            {
              "name": "CHANGED_AT",
              "number": "4",
              "description": "По дате изменения"
            },
            {
              "name": "FIAS_ID",
              "number": "5",
              "description": "По ФИАС"
            }
          ]
        }
      ],
      "extensions": [],
      "messages": [
        {
          "name": "Building",
          "longName": "Building",
          "fullName": "keyapis.telemetry_control.v1.Building",
          "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": "title",
              "description": "Наименование объекта строительства",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "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": 3
            },
            {
              "name": "changed_at",
              "description": "Дата последнего изменения.\nЗаполняется и обновляется сервером.\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": 4
            },
            {
              "name": "utc_offset",
              "description": "Смещение временной зоны объекта строительства от UTC в минутах",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 5
            },
            {
              "name": "fias_id",
              "description": "ФИАС",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "mrf_type",
              "description": "Принадлежность объекта строительства к МРФ",
              "label": "",
              "type": "MrfType",
              "longType": "Building.MrfType",
              "fullType": "keyapis.telemetry_control.v1.Building.MrfType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 7
            },
            {
              "name": "rf_type",
              "description": "Принадлежность объекта строительства к РФ",
              "label": "",
              "type": "RfType",
              "longType": "Building.RfType",
              "fullType": "keyapis.telemetry_control.v1.Building.RfType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 8
            },
            {
              "name": "status_type",
              "description": "Статус объекта строительства",
              "label": "",
              "type": "StatusType",
              "longType": "Building.StatusType",
              "fullType": "keyapis.telemetry_control.v1.Building.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 9
            },
            {
              "name": "full_address",
              "description": "Адрес объекта строительства",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 10
            },
            {
              "name": "orpon",
              "description": "ОРПОН",
              "label": "",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 11
            }
          ]
        },
        {
          "name": "BuildingFilter",
          "longName": "BuildingFilter",
          "fullName": "keyapis.telemetry_control.v1.BuildingFilter",
          "description": "Фильтр для запроса объектов строительства.\nПри передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.\nПри передаче нескольких разных параметров фильтра они работают в выборке через И",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "fias_id",
              "description": "По ФИАС",
              "label": "repeated",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "title",
              "description": "По заголовку",
              "label": "",
              "type": "StringValue",
              "longType": "google.protobuf.StringValue",
              "fullType": "google.protobuf.StringValue",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "after_created_at",
              "description": "По нижней границе дате создания",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 3
            },
            {
              "name": "before_created_at",
              "description": "По верхней границе дате создания",
              "label": "",
              "type": "Timestamp",
              "longType": "google.protobuf.Timestamp",
              "fullType": "google.protobuf.Timestamp",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 4
            },
            {
              "name": "mrf_types",
              "description": "По МРФ (Макрорегион)",
              "label": "repeated",
              "type": "MrfType",
              "longType": "Building.MrfType",
              "fullType": "keyapis.telemetry_control.v1.Building.MrfType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 5
            },
            {
              "name": "rf_types",
              "description": "По РФ (Регион)",
              "label": "repeated",
              "type": "RfType",
              "longType": "Building.RfType",
              "fullType": "keyapis.telemetry_control.v1.Building.RfType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 6
            },
            {
              "name": "status_types",
              "description": "По статусам объекта строительства",
              "label": "repeated",
              "type": "StatusType",
              "longType": "Building.StatusType",
              "fullType": "keyapis.telemetry_control.v1.Building.StatusType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 7
            },
            {
              "name": "orpons",
              "description": "По ОРПОНам",
              "label": "repeated",
              "type": "int64",
              "longType": "int64",
              "fullType": "int64",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 8
            }
          ]
        },
        {
          "name": "BuildingGroup",
          "longName": "BuildingGroup",
          "fullName": "keyapis.telemetry_control.v1.BuildingGroup",
          "description": "Связка объекта строительства и группы пользователя.\nЗадает область ресурсов (resource scope), доступную пользователю.\nИспользуется для контроля доступа к объекту строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "group_id",
              "description": "Идентификатор группы.\n# Тип: Guid",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "building_id",
              "description": "Идентификатор объекта строительства.\n# Диапазон: 0..2147483647",
              "label": "",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 2
            }
          ]
        },
        {
          "name": "BuildingGroupFilter",
          "longName": "BuildingGroupFilter",
          "fullName": "keyapis.telemetry_control.v1.BuildingGroupFilter",
          "description": "Фильтр для запроса связей объектов строительства и группы пользователя.\nПри передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.\nПри передаче нескольких разных параметров фильтра они работают в выборке через И",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "group_ids",
              "description": "По Идентификатору группы пользователя",
              "label": "repeated",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "building_ids",
              "description": "По Объекту строительства",
              "label": "repeated",
              "type": "int32",
              "longType": "int32",
              "fullType": "int32",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "BuildingGroupPaging",
          "longName": "BuildingGroupPaging",
          "fullName": "keyapis.telemetry_control.v1.BuildingGroupPaging",
          "description": "Пагинация связей объектов строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nПо умолчанию: ID",
              "label": "",
              "type": "OrderByType",
              "longType": "BuildingGroupPaging.OrderByType",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroupPaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\nПо умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "BuildingGroupPaging.DirectionType",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroupPaging.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": "BuildingPaging",
          "longName": "BuildingPaging",
          "fullName": "keyapis.telemetry_control.v1.BuildingPaging",
          "description": "Пагинация объектов строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "order_by_type",
              "description": "Тип значения сортировки.\nПо умолчанию: ID",
              "label": "",
              "type": "OrderByType",
              "longType": "BuildingPaging.OrderByType",
              "fullType": "keyapis.telemetry_control.v1.BuildingPaging.OrderByType",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "direction_type",
              "description": "Тип направления сортировки.\nПо умолчанию: DESC",
              "label": "",
              "type": "DirectionType",
              "longType": "BuildingPaging.DirectionType",
              "fullType": "keyapis.telemetry_control.v1.BuildingPaging.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": "DeleteBuildingRequest",
          "longName": "DeleteBuildingRequest",
          "fullName": "keyapis.telemetry_control.v1.DeleteBuildingRequest",
          "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": "DeleteBuildingResponse",
          "longName": "DeleteBuildingResponse",
          "fullName": "keyapis.telemetry_control.v1.DeleteBuildingResponse",
          "description": "Ответ на запрос удаления объекта строительства",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "GetBuildingCountRequest",
          "longName": "GetBuildingCountRequest",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingCountRequest",
          "description": "Запрос получения количества объектов строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр по индикаторам",
              "label": "",
              "type": "BuildingFilter",
              "longType": "BuildingFilter",
              "fullType": "keyapis.telemetry_control.v1.BuildingFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetBuildingCountResponse",
          "longName": "GetBuildingCountResponse",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingCountResponse",
          "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": "GetBuildingGroupCountRequest",
          "longName": "GetBuildingGroupCountRequest",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingGroupCountRequest",
          "description": "Запрос получения количества связей объектов строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр связей объектов строительства и группы пользователя",
              "label": "",
              "type": "BuildingGroupFilter",
              "longType": "BuildingGroupFilter",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroupFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetBuildingGroupCountResponse",
          "longName": "GetBuildingGroupCountResponse",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingGroupCountResponse",
          "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": "GetBuildingGroupListRequest",
          "longName": "GetBuildingGroupListRequest",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingGroupListRequest",
          "description": "Запрос получения списка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр связей объектов строительства и группы пользователя",
              "label": "",
              "type": "BuildingGroupFilter",
              "longType": "BuildingGroupFilter",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroupFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Пагинация",
              "label": "",
              "type": "BuildingGroupPaging",
              "longType": "BuildingGroupPaging",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroupPaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetBuildingGroupListResponse",
          "longName": "GetBuildingGroupListResponse",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingGroupListResponse",
          "description": "Ответ на запрос получения списка связей объектов строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Связь объекта строительства и группы пользователя",
              "label": "",
              "type": "BuildingGroup",
              "longType": "BuildingGroup",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroup",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetBuildingListRequest",
          "longName": "GetBuildingListRequest",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingListRequest",
          "description": "Запрос получения списка",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "filter",
              "description": "Фильтр индикаторов",
              "label": "",
              "type": "BuildingFilter",
              "longType": "BuildingFilter",
              "fullType": "keyapis.telemetry_control.v1.BuildingFilter",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "number": 1
            },
            {
              "name": "paging",
              "description": "Пагинация по индикаторам",
              "label": "",
              "type": "BuildingPaging",
              "longType": "BuildingPaging",
              "fullType": "keyapis.telemetry_control.v1.BuildingPaging",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "pagination",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "GetBuildingListResponse",
          "longName": "GetBuildingListResponse",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingListResponse",
          "description": "Ответ на запрос получения списка объектов строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Индикатор",
              "label": "",
              "type": "Building",
              "longType": "Building",
              "fullType": "keyapis.telemetry_control.v1.Building",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "GetBuildingRequest",
          "longName": "GetBuildingRequest",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingRequest",
          "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": "GetBuildingResponse",
          "longName": "GetBuildingResponse",
          "fullName": "keyapis.telemetry_control.v1.GetBuildingResponse",
          "description": "Ответ на запрос получения объекта строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Объект строительства",
              "label": "",
              "type": "Building",
              "longType": "Building",
              "fullType": "keyapis.telemetry_control.v1.Building",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PostBuildingFullDuplexRequest",
          "longName": "PostBuildingFullDuplexRequest",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest",
          "description": "Запрос создания задачи с клиента на сервере",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "request_id",
              "description": "Идентификатор запроса",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "building_async_status",
              "description": "Результат обработки объекта строительства на клиенте",
              "label": "",
              "type": "BuildingAsyncStatus",
              "longType": "PostBuildingFullDuplexRequest.BuildingAsyncStatus",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "task",
              "defaultValue": "",
              "number": 2
            }
          ]
        },
        {
          "name": "BuildingAsyncStatus",
          "longName": "PostBuildingFullDuplexRequest.BuildingAsyncStatus",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus",
          "description": "Результат обработки объекта строительства на клиенте",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "building_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": "data",
              "description": "Успех",
              "label": "",
              "type": "Success",
              "longType": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Success",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Success",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "error",
              "description": "Ошибка",
              "label": "",
              "type": "Error",
              "longType": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 3
            }
          ]
        },
        {
          "name": "Error",
          "longName": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error",
          "description": "Ошибки обработки объекта строительства на клиенте",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "unknown",
              "description": "Неизвестная ошибка",
              "label": "",
              "type": "UnknownError",
              "longType": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error.UnknownError",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error.UnknownError",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "reason",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "UnknownError",
          "longName": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error.UnknownError",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Error.UnknownError",
          "description": "Неизвестная ошибка на стороне клиента",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "message",
              "description": "Произвольный текст ошибки на стороне клиента.\nОтправляется в случае если в спецификации нет подходящей ошибки.\nПосле анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "Success",
          "longName": "PostBuildingFullDuplexRequest.BuildingAsyncStatus.Success",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest.BuildingAsyncStatus.Success",
          "description": "Команда принята",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "PostBuildingFullDuplexResponse",
          "longName": "PostBuildingFullDuplexResponse",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse",
          "description": "Событие создания/изменения объекта строительства на сервера",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "request_id",
              "description": "Идентификатор запроса",
              "label": "",
              "type": "string",
              "longType": "string",
              "fullType": "string",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            },
            {
              "name": "upsert_building_event",
              "description": "Событие создания/обновления объекта строительства",
              "label": "",
              "type": "UpsertBuildingEvent",
              "longType": "PostBuildingFullDuplexResponse.UpsertBuildingEvent",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse.UpsertBuildingEvent",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "event",
              "defaultValue": "",
              "number": 2
            },
            {
              "name": "remove_building_event",
              "description": "Событие удаления объекта строительства",
              "label": "",
              "type": "RemoveBuildingEvent",
              "longType": "PostBuildingFullDuplexResponse.RemoveBuildingEvent",
              "fullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse.RemoveBuildingEvent",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "event",
              "defaultValue": "",
              "number": 3
            }
          ]
        },
        {
          "name": "RemoveBuildingEvent",
          "longName": "PostBuildingFullDuplexResponse.RemoveBuildingEvent",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse.RemoveBuildingEvent",
          "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": "UpsertBuildingEvent",
          "longName": "PostBuildingFullDuplexResponse.UpsertBuildingEvent",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse.UpsertBuildingEvent",
          "description": "Событие создания/обновления объекта строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Объект строительства",
              "label": "",
              "type": "Building",
              "longType": "Building",
              "fullType": "keyapis.telemetry_control.v1.Building",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostBuildingRequest",
          "longName": "PostBuildingRequest",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingRequest",
          "description": "Запрос сохранения объекта строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Объект строительства",
              "label": "",
              "type": "Building",
              "longType": "Building",
              "fullType": "keyapis.telemetry_control.v1.Building",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PostBuildingResponse",
          "longName": "PostBuildingResponse",
          "fullName": "keyapis.telemetry_control.v1.PostBuildingResponse",
          "description": "Ответ на запрос сохранения объекта строительства",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": true,
          "extensions": [],
          "fields": [
            {
              "name": "data",
              "description": "Объект строительства",
              "label": "",
              "type": "Building",
              "longType": "Building",
              "fullType": "keyapis.telemetry_control.v1.Building",
              "ismap": false,
              "isoneof": true,
              "oneofdecl": "type",
              "defaultValue": "",
              "number": 1
            }
          ]
        },
        {
          "name": "PutBuildingGroupAttachRequest",
          "longName": "PutBuildingGroupAttachRequest",
          "fullName": "keyapis.telemetry_control.v1.PutBuildingGroupAttachRequest",
          "description": "Запрос сохранения связей объектов строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "building_group",
              "description": "Связь объекта строительства и группы пользователя",
              "label": "",
              "type": "BuildingGroup",
              "longType": "BuildingGroup",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroup",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PutBuildingGroupAttachResponse",
          "longName": "PutBuildingGroupAttachResponse",
          "fullName": "keyapis.telemetry_control.v1.PutBuildingGroupAttachResponse",
          "description": "Ответ на запрос сохранения связи объекта строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        },
        {
          "name": "PutBuildingGroupDetachRequest",
          "longName": "PutBuildingGroupDetachRequest",
          "fullName": "keyapis.telemetry_control.v1.PutBuildingGroupDetachRequest",
          "description": "Запрос удаления связей объектов строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": true,
          "hasOneofs": false,
          "extensions": [],
          "fields": [
            {
              "name": "building_group",
              "description": "Связь объекта строительства и группы пользователя",
              "label": "",
              "type": "BuildingGroup",
              "longType": "BuildingGroup",
              "fullType": "keyapis.telemetry_control.v1.BuildingGroup",
              "ismap": false,
              "isoneof": false,
              "oneofdecl": "",
              "defaultValue": "",
              "options": {
                "google.api.field_behavior": {
                  "options": [
                    "REQUIRED"
                  ]
                }
              },
              "number": 1
            }
          ]
        },
        {
          "name": "PutBuildingGroupDetachResponse",
          "longName": "PutBuildingGroupDetachResponse",
          "fullName": "keyapis.telemetry_control.v1.PutBuildingGroupDetachResponse",
          "description": "Ответ на запрос удаления связи объекта строительства и группы пользователя",
          "hasExtensions": false,
          "hasFields": false,
          "hasOneofs": false,
          "extensions": [],
          "fields": []
        }
      ],
      "services": [
        {
          "name": "BuildingService",
          "longName": "BuildingService",
          "fullName": "keyapis.telemetry_control.v1.BuildingService",
          "description": "Сервис управления объектами строительства телеметрии.\nАвторизация:\n  - Authorization: Bearer token.\n  - X-Api-Key: apiKey",
          "methods": [
            {
              "name": "GetBuilding",
              "description": "Метод получения объекта строительства.\nРазрешения: telemetry_control:building:card, telemetry_control:building:card:own.\nМетод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.\nМетод доступен для: ApiKey: При наличии разрешений",
              "requestType": "GetBuildingRequest",
              "requestLongType": "GetBuildingRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetBuildingRequest",
              "requestStreaming": false,
              "responseType": "GetBuildingResponse",
              "responseLongType": "GetBuildingResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetBuildingResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/building/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetBuildingList",
              "description": "Метод получения списка объектов строительства.\nРазрешения: telemetry_control:building:list, telemetry_control:building:list:own.\nМетод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.\nМетод доступен для: ApiKey: При наличии разрешений",
              "requestType": "GetBuildingListRequest",
              "requestLongType": "GetBuildingListRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetBuildingListRequest",
              "requestStreaming": false,
              "responseType": "GetBuildingListResponse",
              "responseLongType": "GetBuildingListResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetBuildingListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/building/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetBuildingCount",
              "description": "Метод получения количества объектов строительства.\nРазрешения: telemetry_control:building:list, telemetry_control:building:list:own.\nМетод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.\nМетод доступен для: ApiKey: При наличии разрешений",
              "requestType": "GetBuildingCountRequest",
              "requestLongType": "GetBuildingCountRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetBuildingCountRequest",
              "requestStreaming": false,
              "responseType": "GetBuildingCountResponse",
              "responseLongType": "GetBuildingCountResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetBuildingCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/building/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostBuilding",
              "description": "Метод сохранения объекта строительства.\nПоддерживает создание и обновление.\nРазрешения: telemetry_control:building:save, telemetry_control:building:save:own.\nМетод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений",
              "requestType": "PostBuildingRequest",
              "requestLongType": "PostBuildingRequest",
              "requestFullType": "keyapis.telemetry_control.v1.PostBuildingRequest",
              "requestStreaming": false,
              "responseType": "PostBuildingResponse",
              "responseLongType": "PostBuildingResponse",
              "responseFullType": "keyapis.telemetry_control.v1.PostBuildingResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "POST",
                      "pattern": "/telemetry_control/api/v1/building",
                      "body": "*"
                    }
                  ]
                }
              }
            },
            {
              "name": "PostBuildingFullDuplex",
              "description": "Полнодуплексный метод отправки статусов на сервер и получения изменения со стороны сервера.\nРазрешения: telemetry_control:building:list, telemetry_control:building:list:own.\nМетод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.\nМетод доступен для: ApiKey: Без учета разрешений",
              "requestType": "PostBuildingFullDuplexRequest",
              "requestLongType": "PostBuildingFullDuplexRequest",
              "requestFullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexRequest",
              "requestStreaming": true,
              "responseType": "PostBuildingFullDuplexResponse",
              "responseLongType": "PostBuildingFullDuplexResponse",
              "responseFullType": "keyapis.telemetry_control.v1.PostBuildingFullDuplexResponse",
              "responseStreaming": true
            },
            {
              "name": "DeleteBuilding",
              "description": "Метод удаления объекта строительства.\nРазрешения: telemetry_control:building:remove, telemetry_control:building:remove:own.\nМетод доступен для: admin, service, bti, seller, application, owner, employee. При наличии разрешений",
              "requestType": "DeleteBuildingRequest",
              "requestLongType": "DeleteBuildingRequest",
              "requestFullType": "keyapis.telemetry_control.v1.DeleteBuildingRequest",
              "requestStreaming": false,
              "responseType": "DeleteBuildingResponse",
              "responseLongType": "DeleteBuildingResponse",
              "responseFullType": "keyapis.telemetry_control.v1.DeleteBuildingResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "DELETE",
                      "pattern": "/telemetry_control/api/v1/building/{id}"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetBuildingGroupList",
              "description": "Метод получения списка связей объектов строительства и группы пользователя.\nМетод доступен для: Token: admin, service, bti, seller. Без учета разрешений",
              "requestType": "GetBuildingGroupListRequest",
              "requestLongType": "GetBuildingGroupListRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetBuildingGroupListRequest",
              "requestStreaming": false,
              "responseType": "GetBuildingGroupListResponse",
              "responseLongType": "GetBuildingGroupListResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetBuildingGroupListResponse",
              "responseStreaming": true,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/building/group/list"
                    }
                  ]
                }
              }
            },
            {
              "name": "GetBuildingGroupCount",
              "description": "Метод получения количества связей объектов строительства и группы пользователя.\nМетод доступен для: Token: admin, service, bti, seller. Без учета разрешений",
              "requestType": "GetBuildingGroupCountRequest",
              "requestLongType": "GetBuildingGroupCountRequest",
              "requestFullType": "keyapis.telemetry_control.v1.GetBuildingGroupCountRequest",
              "requestStreaming": false,
              "responseType": "GetBuildingGroupCountResponse",
              "responseLongType": "GetBuildingGroupCountResponse",
              "responseFullType": "keyapis.telemetry_control.v1.GetBuildingGroupCountResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "GET",
                      "pattern": "/telemetry_control/api/v1/building/group/count"
                    }
                  ]
                }
              }
            },
            {
              "name": "PutBuildingGroupAttach",
              "description": "Метод сохранения связей объектов строительства и группы пользователя.\nПоддерживает только создание.\nМетод доступен для: Token: admin, service, bti, seller. Без учета разрешений",
              "requestType": "PutBuildingGroupAttachRequest",
              "requestLongType": "PutBuildingGroupAttachRequest",
              "requestFullType": "keyapis.telemetry_control.v1.PutBuildingGroupAttachRequest",
              "requestStreaming": false,
              "responseType": "PutBuildingGroupAttachResponse",
              "responseLongType": "PutBuildingGroupAttachResponse",
              "responseFullType": "keyapis.telemetry_control.v1.PutBuildingGroupAttachResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "PUT",
                      "pattern": "/telemetry_control/api/v1/building/{building_group.building_id}/group/{building_group.group_id}/attach"
                    }
                  ]
                }
              }
            },
            {
              "name": "PutBuildingGroupDetach",
              "description": "Метод удаления связей объектов строительства и группы пользователя.\nМетод доступен для: Token: admin, service, bti, seller. Без учета разрешений",
              "requestType": "PutBuildingGroupDetachRequest",
              "requestLongType": "PutBuildingGroupDetachRequest",
              "requestFullType": "keyapis.telemetry_control.v1.PutBuildingGroupDetachRequest",
              "requestStreaming": false,
              "responseType": "PutBuildingGroupDetachResponse",
              "responseLongType": "PutBuildingGroupDetachResponse",
              "responseFullType": "keyapis.telemetry_control.v1.PutBuildingGroupDetachResponse",
              "responseStreaming": false,
              "options": {
                "google.api.http": {
                  "rules": [
                    {
                      "method": "PUT",
                      "pattern": "/telemetry_control/api/v1/building/{building_group.building_id}/group/{building_group.group_id}/detach"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "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)"
    }
  ]
}