openapi: 3.0.3
info:
  title: telemetry_control
  version: 1.0.1782385706467
  description: Сервис telemetry_control
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: building(auth)
    description: Методы building. Требуют авторизацию. Доступны из интернета
  - name: device(auth)
    description: Методы device. Требуют авторизацию. Доступны из интернета
  - name: dictionary(auth)
    description: Методы dictionary. Требуют авторизацию. Доступны из интернета
  - name: metric_point(auth)
    description: Методы metric_point. Требуют авторизацию. Доступны из интернета
  - name: template(auth)
    description: Методы template. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
paths:
  /telemetry_control/api/v1/building:
    post:
      summary: >-
        Метод сохранения объекта строительства.

        Поддерживает создание и обновление.

        Разрешения: telemetry_control:building:save, telemetry_control:building:save:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений
      operationId: BuildingService_PostBuilding
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBuildingResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostBuildingRequest"
        required: true
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/building/count:
    get:
      summary: >-
        Метод получения количества объектов строительства.

        Разрешения: telemetry_control:building:list, telemetry_control:building:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: BuildingService_GetBuildingCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.fiasId
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.title
          description: По заголовку
          in: query
          required: false
          schema:
            type: string
        - name: filter.afterCreatedAt
          description: По нижней границе дате создания
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.beforeCreatedAt
          description: По верхней границе дате создания
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.mrfTypes
          description: |-
            По МРФ (Макрорегион)

             - MRF_TYPE_UNKNOWN: Значение не указано
             - TSENTR: Центр
             - YUG: Юг
             - URAL: Урал
             - SIBIR: Сибирь
             - SEVERO_ZAPAD: Северо-Запад
             - DALNIY_VOSTOK: Дальний Восток
             - VOLGA: Волга
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - TSENTR
                - YUG
                - URAL
                - SIBIR
                - SEVERO_ZAPAD
                - DALNIY_VOSTOK
                - VOLGA
        - name: filter.rfTypes
          description: |-
            По РФ (Регион)

             - RF_TYPE_UNKNOWN: Значение не указано
             - UFA: Республика Башкортостан
             - KIROV: Кировская область
             - IVANOVO: Ивановский филиал
             - KALUGA: Калужский филиал
             - KOSTROMA: Костромской филиал
             - KURSK: Курский филиал
             - LIPETSK: Липецкий филиал
             - MOSOBLAST: Московская область
             - OREL: Орловский филиал
             - RYAZAN: Рязанский филиал
             - TAMBOV: Тамбовский филиал
             - TVER: Тверской филиал
             - YAROSLAVL: Ярославский филиал
             - SMOLENSK: Смоленский филиал
             - TULA: Тульский филиал
             - MOSCOW: Москва
             - EAO: ЕАО
             - KURGAN: Филиал в Тюменской и Курганской областях
             - TUMEN: Филиал в Тюменской и Курганской областях
             - HANTY: Ханты-Мансийский филиал
             - AMUR: Амурская область
             - KAMCHATKA: Камчатский край
             - MAGADAN: Магаданская область
             - PRIMORYE: Приморский край
             - SAKHALIN: Сахалинская область
             - KHABAROVSK: Хабаровский край
             - CHITA: Забайкальский край
             - CHUKOTKA: ЧАО
             - ARCHANGELSK: Архангельск
             - VOLOGDA: Вологда
             - KALININGRAD: Калининград
             - KARELIA: Карелия
             - KOMI: Коми
             - LENOBLAST: Лен область
             - MURMANSK: Мурманск
             - NOVGOROD: Новгород
             - PSKOV: Псков
             - SPB: СПб
             - ALTAI: Алтайский филиал
             - BURYATIYA: Бурятский филиал
             - IRKUTSK: Иркутский филиал
             - KEMEROVO: Кемеровский филиал
             - KRASNOYARSK: Красноярский филиал
             - OMSK: Омский филиал
             - HAKASIYA: Республика Хакасия
             - RALTAY: Республика Алтай
             - TUVA: Республика Тыва
             - TOMSK: Томский филиал
             - ORENBURG: Оренбургская область
             - BELGOROD: Белгородский филиал
             - SAKHA: Саха
             - EKT: Екатеринбургский филиал
             - VOLGOGRAD: Волгоградский филиал
             - YAMAL: Ямало-Ненецкий филиал
             - CHELYABINSK: Челябинский филиал
             - PERM: Пермский филиал ПАО "Ростелеком"
             - MARYEL: Республика Марий Эл
             - PENZA: Пензенская область
             - INGUSHETIA: Ингушский филиал
             - NALCHIK: Кабардино-Балкарский филиал
             - ELISTA: Калмыцкий филиал
             - ROSTOV: Ростовский филиал
             - MAHACHKALA: Дагестанский филиал
             - MORDOVIYA: Республика Мордовия
             - KAZAN: Республика Татарстан (Татарстан)
             - SAMARA: Самарская область
             - SARATOV: Саратовская область
             - UDMURTIYA: Удмуртская Республика
             - ULYANOVSK: Ульяновская область
             - CHUVASHIYA: Чувашская Республика - Чувашия
             - NNOVGOROD: Нижегородская область
             - BRYANSK: Брянский филиал
             - VLADIMIR: Владимирский филиал
             - VORONEZH: Воронежский филиал
             - VLADIKAVKAZ: Северо-Осетинский филиал
             - STAVROPOL: Ставропольский филиал
             - CHERKESSK: Республика Карачаево-Черкесская
             - MAYKOP: Республика Адыгея
             - ASTRAKHAN: Астраханский филиал
             - KRASNODAR: Краснодарский филиал
             - TEST: Тестовый
             - NOVOSIBIRSK: Новосибирский филиал
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - UFA
                - KIROV
                - IVANOVO
                - KALUGA
                - KOSTROMA
                - KURSK
                - LIPETSK
                - MOSOBLAST
                - OREL
                - RYAZAN
                - TAMBOV
                - TVER
                - YAROSLAVL
                - SMOLENSK
                - TULA
                - MOSCOW
                - EAO
                - KURGAN
                - TUMEN
                - HANTY
                - AMUR
                - KAMCHATKA
                - MAGADAN
                - PRIMORYE
                - SAKHALIN
                - KHABAROVSK
                - CHITA
                - CHUKOTKA
                - ARCHANGELSK
                - VOLOGDA
                - KALININGRAD
                - KARELIA
                - KOMI
                - LENOBLAST
                - MURMANSK
                - NOVGOROD
                - PSKOV
                - SPB
                - ALTAI
                - BURYATIYA
                - IRKUTSK
                - KEMEROVO
                - KRASNOYARSK
                - OMSK
                - HAKASIYA
                - RALTAY
                - TUVA
                - TOMSK
                - ORENBURG
                - BELGOROD
                - SAKHA
                - EKT
                - VOLGOGRAD
                - YAMAL
                - CHELYABINSK
                - PERM
                - MARYEL
                - PENZA
                - INGUSHETIA
                - NALCHIK
                - ELISTA
                - ROSTOV
                - MAHACHKALA
                - MORDOVIYA
                - KAZAN
                - SAMARA
                - SARATOV
                - UDMURTIYA
                - ULYANOVSK
                - CHUVASHIYA
                - NNOVGOROD
                - BRYANSK
                - VLADIMIR
                - VORONEZH
                - VLADIKAVKAZ
                - STAVROPOL
                - CHERKESSK
                - MAYKOP
                - ASTRAKHAN
                - KRASNODAR
                - TEST
                - NOVOSIBIRSK
        - name: filter.statusTypes
          description: |-
            По статусам объекта строительства

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - BUILDING: СМР
             - ACCEPTANCE: Реализован
             - ACTIVE: Обслуживание
             - ARCHIVE: Снят с обслуживания
             - CANCELLED: Отказ от заключения договора
             - TEST_STATUS_TYPE: Тестовый
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - BUILDING
                - ACCEPTANCE
                - ACTIVE
                - ARCHIVE
                - CANCELLED
                - TEST_STATUS_TYPE
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/building/group/count:
    get:
      summary: >-
        Метод получения количества связей объектов строительства и группы
        пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: BuildingService_GetBuildingGroupCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingGroupCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.groupIds
          description: По Идентификатору группы пользователя
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По Объекту строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/building/group/list:
    get:
      summary: >-
        Метод получения списка связей объектов строительства и группы
        пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: BuildingService_GetBuildingGroupList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetBuildingGroupListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetBuildingGroupListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.groupIds
          description: По Идентификатору группы пользователя
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По Объекту строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - GROUP_ID: По Идентификатору группы пользователя
             - BUILDING_ID: По Объекту строительства
          in: query
          required: false
          schema:
            type: string
            enum:
              - GROUP_ID
              - BUILDING_ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/building/list:
    get:
      summary: >-
        Метод получения списка объектов строительства.

        Разрешения: telemetry_control:building:list, telemetry_control:building:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: BuildingService_GetBuildingList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetBuildingListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetBuildingListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.fiasId
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.title
          description: По заголовку
          in: query
          required: false
          schema:
            type: string
        - name: filter.afterCreatedAt
          description: По нижней границе дате создания
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.beforeCreatedAt
          description: По верхней границе дате создания
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.mrfTypes
          description: |-
            По МРФ (Макрорегион)

             - MRF_TYPE_UNKNOWN: Значение не указано
             - TSENTR: Центр
             - YUG: Юг
             - URAL: Урал
             - SIBIR: Сибирь
             - SEVERO_ZAPAD: Северо-Запад
             - DALNIY_VOSTOK: Дальний Восток
             - VOLGA: Волга
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - TSENTR
                - YUG
                - URAL
                - SIBIR
                - SEVERO_ZAPAD
                - DALNIY_VOSTOK
                - VOLGA
        - name: filter.rfTypes
          description: |-
            По РФ (Регион)

             - RF_TYPE_UNKNOWN: Значение не указано
             - UFA: Республика Башкортостан
             - KIROV: Кировская область
             - IVANOVO: Ивановский филиал
             - KALUGA: Калужский филиал
             - KOSTROMA: Костромской филиал
             - KURSK: Курский филиал
             - LIPETSK: Липецкий филиал
             - MOSOBLAST: Московская область
             - OREL: Орловский филиал
             - RYAZAN: Рязанский филиал
             - TAMBOV: Тамбовский филиал
             - TVER: Тверской филиал
             - YAROSLAVL: Ярославский филиал
             - SMOLENSK: Смоленский филиал
             - TULA: Тульский филиал
             - MOSCOW: Москва
             - EAO: ЕАО
             - KURGAN: Филиал в Тюменской и Курганской областях
             - TUMEN: Филиал в Тюменской и Курганской областях
             - HANTY: Ханты-Мансийский филиал
             - AMUR: Амурская область
             - KAMCHATKA: Камчатский край
             - MAGADAN: Магаданская область
             - PRIMORYE: Приморский край
             - SAKHALIN: Сахалинская область
             - KHABAROVSK: Хабаровский край
             - CHITA: Забайкальский край
             - CHUKOTKA: ЧАО
             - ARCHANGELSK: Архангельск
             - VOLOGDA: Вологда
             - KALININGRAD: Калининград
             - KARELIA: Карелия
             - KOMI: Коми
             - LENOBLAST: Лен область
             - MURMANSK: Мурманск
             - NOVGOROD: Новгород
             - PSKOV: Псков
             - SPB: СПб
             - ALTAI: Алтайский филиал
             - BURYATIYA: Бурятский филиал
             - IRKUTSK: Иркутский филиал
             - KEMEROVO: Кемеровский филиал
             - KRASNOYARSK: Красноярский филиал
             - OMSK: Омский филиал
             - HAKASIYA: Республика Хакасия
             - RALTAY: Республика Алтай
             - TUVA: Республика Тыва
             - TOMSK: Томский филиал
             - ORENBURG: Оренбургская область
             - BELGOROD: Белгородский филиал
             - SAKHA: Саха
             - EKT: Екатеринбургский филиал
             - VOLGOGRAD: Волгоградский филиал
             - YAMAL: Ямало-Ненецкий филиал
             - CHELYABINSK: Челябинский филиал
             - PERM: Пермский филиал ПАО "Ростелеком"
             - MARYEL: Республика Марий Эл
             - PENZA: Пензенская область
             - INGUSHETIA: Ингушский филиал
             - NALCHIK: Кабардино-Балкарский филиал
             - ELISTA: Калмыцкий филиал
             - ROSTOV: Ростовский филиал
             - MAHACHKALA: Дагестанский филиал
             - MORDOVIYA: Республика Мордовия
             - KAZAN: Республика Татарстан (Татарстан)
             - SAMARA: Самарская область
             - SARATOV: Саратовская область
             - UDMURTIYA: Удмуртская Республика
             - ULYANOVSK: Ульяновская область
             - CHUVASHIYA: Чувашская Республика - Чувашия
             - NNOVGOROD: Нижегородская область
             - BRYANSK: Брянский филиал
             - VLADIMIR: Владимирский филиал
             - VORONEZH: Воронежский филиал
             - VLADIKAVKAZ: Северо-Осетинский филиал
             - STAVROPOL: Ставропольский филиал
             - CHERKESSK: Республика Карачаево-Черкесская
             - MAYKOP: Республика Адыгея
             - ASTRAKHAN: Астраханский филиал
             - KRASNODAR: Краснодарский филиал
             - TEST: Тестовый
             - NOVOSIBIRSK: Новосибирский филиал
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - UFA
                - KIROV
                - IVANOVO
                - KALUGA
                - KOSTROMA
                - KURSK
                - LIPETSK
                - MOSOBLAST
                - OREL
                - RYAZAN
                - TAMBOV
                - TVER
                - YAROSLAVL
                - SMOLENSK
                - TULA
                - MOSCOW
                - EAO
                - KURGAN
                - TUMEN
                - HANTY
                - AMUR
                - KAMCHATKA
                - MAGADAN
                - PRIMORYE
                - SAKHALIN
                - KHABAROVSK
                - CHITA
                - CHUKOTKA
                - ARCHANGELSK
                - VOLOGDA
                - KALININGRAD
                - KARELIA
                - KOMI
                - LENOBLAST
                - MURMANSK
                - NOVGOROD
                - PSKOV
                - SPB
                - ALTAI
                - BURYATIYA
                - IRKUTSK
                - KEMEROVO
                - KRASNOYARSK
                - OMSK
                - HAKASIYA
                - RALTAY
                - TUVA
                - TOMSK
                - ORENBURG
                - BELGOROD
                - SAKHA
                - EKT
                - VOLGOGRAD
                - YAMAL
                - CHELYABINSK
                - PERM
                - MARYEL
                - PENZA
                - INGUSHETIA
                - NALCHIK
                - ELISTA
                - ROSTOV
                - MAHACHKALA
                - MORDOVIYA
                - KAZAN
                - SAMARA
                - SARATOV
                - UDMURTIYA
                - ULYANOVSK
                - CHUVASHIYA
                - NNOVGOROD
                - BRYANSK
                - VLADIMIR
                - VORONEZH
                - VLADIKAVKAZ
                - STAVROPOL
                - CHERKESSK
                - MAYKOP
                - ASTRAKHAN
                - KRASNODAR
                - TEST
                - NOVOSIBIRSK
        - name: filter.statusTypes
          description: |-
            По статусам объекта строительства

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - BUILDING: СМР
             - ACCEPTANCE: Реализован
             - ACTIVE: Обслуживание
             - ARCHIVE: Снят с обслуживания
             - CANCELLED: Отказ от заключения договора
             - TEST_STATUS_TYPE: Тестовый
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - BUILDING
                - ACCEPTANCE
                - ACTIVE
                - ARCHIVE
                - CANCELLED
                - TEST_STATUS_TYPE
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По уникальному ключу
             - TITLE: По наименованию
             - CREATED_AT: По дате создания
             - CHANGED_AT: По дате изменения
             - FIAS_ID: По ФИАС
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - TITLE
              - CREATED_AT
              - CHANGED_AT
              - FIAS_ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/building/{buildingGroup.buildingId}/group/{buildingGroup.groupId}/attach":
    put:
      summary: >-
        Метод сохранения связей объектов строительства и группы пользователя.

        Поддерживает только создание.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: BuildingService_PutBuildingGroupAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutBuildingGroupAttachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: buildingGroup.buildingId
          description: |-
            Идентификатор объекта строительства.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: buildingGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/building/{buildingGroup.buildingId}/group/{buildingGroup.groupId}/detach":
    put:
      summary: >-
        Метод удаления связей объектов строительства и группы пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: BuildingService_PutBuildingGroupDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutBuildingGroupDetachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: buildingGroup.buildingId
          description: |-
            Идентификатор объекта строительства.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: buildingGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/building/{id}":
    get:
      summary: >-
        Метод получения объекта строительства.

        Разрешения: telemetry_control:building:card, telemetry_control:building:card:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: BuildingService_GetBuilding
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор объекта строительства
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления объекта строительства.

        Разрешения: telemetry_control:building:remove, telemetry_control:building:remove:own.

        Метод доступен для: admin, service, bti, seller, application, owner, employee. При наличии разрешений
      operationId: BuildingService_DeleteBuilding
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteBuildingResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - building(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device:
    post:
      summary: >-
        Метод сохранения прибора учета.

        Поддерживает создание и обновление.

        Разрешения: telemetry_control:device:save, telemetry_control:device:save:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений
      operationId: DeviceService_PostDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostDeviceRequest"
        required: true
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/device/count:
    get:
      summary: >-
        Метод получения количества приборов учета.

        Разрешения: telemetry_control:device:list, telemetry_control:device:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee, master. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.fiasIds
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.types
          description: >-
            По типам приборов учета

             - TYPE_UNKNOWN: Значение не указано
             - HUB: Коммуникационный модуль
             - PULSE_COUNTER_RECORDER: Счетчик импульсов - регистратор
             - PULSE_COUNTER_RECORDER_LR: Счетчик импульсов - регистратор LoRaWAN
             - METERING_DEVICE: Прибор учета расхода коммунальных услуг
             - INTERFACE_CONVERTER: Конвертер интерфейсов
             - M_BUS_HUB: M-BUS концентратор
             - COMMUNICATION_MODULE_LR: Модуль связи LoRaWAN
             - BASE_LR: Базовая станция LoRaWAN
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HUB
                - PULSE_COUNTER_RECORDER
                - PULSE_COUNTER_RECORDER_LR
                - METERING_DEVICE
                - INTERFACE_CONVERTER
                - M_BUS_HUB
                - COMMUNICATION_MODULE_LR
                - BASE_LR
        - name: filter.statusTypes
          description: |-
            По типам статусов

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - RECEIVED: Получен клиентом, еще не сконфигурирован
             - ACTIVE: Сконфигурирован клиентом, активен
             - WRONG: Обработан клиентом, возникла ошибка
             - ARCHIVE: Переведен в архивный статус
             - DELETE: Удален
             - UNLINK: Отсоединен
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - RECEIVED
                - ACTIVE
                - WRONG
                - ARCHIVE
                - DELETE
                - UNLINK
        - name: filter.models
          description: По модели счетчика
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointMetricTypes
          description: |-
            По типам метрик

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.roomNumbers
          description: По номерам помещений точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По лейблам помещений точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.parentIds
          description: По идентификаторам хабов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.buildingIds
          description: По идентификатору объекта строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.serialNumbers
          description: По серийным номерам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointIds
          description: По ID точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.serialIds
          description: Смешанный поиск по полям serial_number, dev_eui, MAC-адрес, model,
            external_id
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/group/count:
    get:
      summary: >-
        Метод получения количества связей ПУ и группы пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: DeviceService_GetDeviceGroupCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceGroupCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.groupIds
          description: По Идентификатору группы пользователя
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          description: По ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/group/list:
    get:
      summary: >-
        Метод получения списка связей ПУ и группы пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: DeviceService_GetDeviceGroupList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDeviceGroupListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDeviceGroupListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.groupIds
          description: По Идентификатору группы пользователя
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          description: По ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: GROUP_ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - GROUP_ID: По Идентификатору группы пользователя
             - DEVICE_ID: По ПУ
          in: query
          required: false
          schema:
            type: string
            enum:
              - GROUP_ID
              - DEVICE_ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/indicator:
    post:
      summary: >-
        Метод сохранения индикатора.

        Поддерживает создание и обновление.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: DeviceService_PostDeviceIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceIndicatorResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceIndicatorResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceIndicatorResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostDeviceIndicatorRequest"
        required: true
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/device/indicator/count:
    get:
      summary: >-
        Метод получения количества индикаторов.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceIndicatorCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceIndicatorCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceIndicatorCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceIndicatorCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.deviceIds
          description: По списку приборов учета
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.signTypes
          description: |-
            По типам измерений

             - SIGN_TYPE_UNKNOWN: Значение не указано
             - ABSOLUTE_DS: Абсолютный показатель
             - ABSOLUTE_RC: Абсолютный расход ресурса
             - INTERVAL_DS: Интервальный показатель состояния
             - INTERVAL_RC: Интервальный расход ресурса
             - CURRENT_DS: Текущее состояние
             - CURRENT_RS: Текущее состояние ресурса
             - VOLUME: Объём
             - PARAMETER: Параметр конфигурации
             - FLAG: Флаг состояния
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ABSOLUTE_DS
                - ABSOLUTE_RC
                - INTERVAL_DS
                - INTERVAL_RC
                - CURRENT_DS
                - CURRENT_RS
                - VOLUME
                - PARAMETER
                - FLAG
        - name: filter.deviceSerialNumbers
          description: По серийным номерам привязанных ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По идентификаторам объектов строительства, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.roomNumbers
          description: По Номерам помещений, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По Лейблам помещений, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointIds
          description: По ID привязанных точек учета
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/indicator/list:
    get:
      summary: >-
        Метод получения списка индикаторов.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceIndicatorList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDeviceIndicatorListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDeviceIndicatorListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.deviceIds
          description: По списку приборов учета
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.signTypes
          description: |-
            По типам измерений

             - SIGN_TYPE_UNKNOWN: Значение не указано
             - ABSOLUTE_DS: Абсолютный показатель
             - ABSOLUTE_RC: Абсолютный расход ресурса
             - INTERVAL_DS: Интервальный показатель состояния
             - INTERVAL_RC: Интервальный расход ресурса
             - CURRENT_DS: Текущее состояние
             - CURRENT_RS: Текущее состояние ресурса
             - VOLUME: Объём
             - PARAMETER: Параметр конфигурации
             - FLAG: Флаг состояния
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ABSOLUTE_DS
                - ABSOLUTE_RC
                - INTERVAL_DS
                - INTERVAL_RC
                - CURRENT_DS
                - CURRENT_RS
                - VOLUME
                - PARAMETER
                - FLAG
        - name: filter.deviceSerialNumbers
          description: По серийным номерам привязанных ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По идентификаторам объектов строительства, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.roomNumbers
          description: По Номерам помещений, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По Лейблам помещений, привязанных ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointIds
          description: По ID привязанных точек учета
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По уникальному ключу
             - SIGN_TYPE: По типу измерений
             - DEVICE_ID: По Прибору учета
             - CREATED_AT: По Дате создания
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - SIGN_TYPE
              - DEVICE_ID
              - CREATED_AT
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/indicator/metric_point/count:
    get:
      summary: >-
        Метод получения количества связей индикаторов и ТУ.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceIndicatorMetricPointCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceIndicatorMetricPointCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.indicatorId
          description: По Идентификатору индикатора
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.metricPointId
          description: По Идентификатору ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/indicator/metric_point/list:
    get:
      summary: >-
        Метод получения списка связей индикаторов и ТУ.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceIndicatorMetricPointList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDeviceIndicatorMetricPointListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDeviceIndicatorMetricPointListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.indicatorId
          description: По Идентификатору индикатора
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.metricPointId
          description: По Идентификатору ТУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - INDICATOR_ID: По Идентификатору индикатора
             - METRIC_POINT_ID: По По Идентификатору ТУ
          in: query
          required: false
          schema:
            type: string
            enum:
              - INDICATOR_ID
              - METRIC_POINT_ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/device/indicator/{deviceIndicatorMetricPoint.indicatorId}/metric_point/{deviceIndicatorMetricPoint.metricPointId}/attach":
    put:
      summary: >-
        Метод сохранения связи индикаторов и ТУ.

        Поддерживает только создание связи.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: DeviceService_PutDeviceIndicatorMetricPointAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutDeviceIndicatorMetricPointAttachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: deviceIndicatorMetricPoint.indicatorId
          description: |-
            Идентификатор индикатора.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: deviceIndicatorMetricPoint.metricPointId
          description: |-
            Идентификатору ТУ.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/device/indicator/{deviceIndicatorMetricPoint.indicatorId}/metric_point/{deviceIndicatorMetricPoint.metricPointId}/detach":
    put:
      summary: >-
        Метод удаления связи индикаторов и ТУ.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: DeviceService_PutDeviceIndicatorMetricPointDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutDeviceIndicatorMetricPointDetachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: deviceIndicatorMetricPoint.indicatorId
          description: |-
            Идентификатор индикатора.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: deviceIndicatorMetricPoint.metricPointId
          description: |-
            Идентификатору ТУ.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/device/indicator/{id}":
    get:
      summary: >-
        Метод получения индикатора.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceIndicatorResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор индикатора
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления индикаторa.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: DeviceService_DeleteDeviceIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteDeviceIndicatorResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/list:
    get:
      summary: >-
        Метод получения списка приборов учета.

        Разрешения: telemetry_control:device:list, telemetry_control:device:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee, master. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDeviceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDeviceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDeviceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.fiasIds
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.types
          description: >-
            По типам приборов учета

             - TYPE_UNKNOWN: Значение не указано
             - HUB: Коммуникационный модуль
             - PULSE_COUNTER_RECORDER: Счетчик импульсов - регистратор
             - PULSE_COUNTER_RECORDER_LR: Счетчик импульсов - регистратор LoRaWAN
             - METERING_DEVICE: Прибор учета расхода коммунальных услуг
             - INTERFACE_CONVERTER: Конвертер интерфейсов
             - M_BUS_HUB: M-BUS концентратор
             - COMMUNICATION_MODULE_LR: Модуль связи LoRaWAN
             - BASE_LR: Базовая станция LoRaWAN
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HUB
                - PULSE_COUNTER_RECORDER
                - PULSE_COUNTER_RECORDER_LR
                - METERING_DEVICE
                - INTERFACE_CONVERTER
                - M_BUS_HUB
                - COMMUNICATION_MODULE_LR
                - BASE_LR
        - name: filter.statusTypes
          description: |-
            По типам статусов

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - RECEIVED: Получен клиентом, еще не сконфигурирован
             - ACTIVE: Сконфигурирован клиентом, активен
             - WRONG: Обработан клиентом, возникла ошибка
             - ARCHIVE: Переведен в архивный статус
             - DELETE: Удален
             - UNLINK: Отсоединен
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - RECEIVED
                - ACTIVE
                - WRONG
                - ARCHIVE
                - DELETE
                - UNLINK
        - name: filter.models
          description: По модели счетчика
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointMetricTypes
          description: |-
            По типам метрик

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.roomNumbers
          description: По номерам помещений точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По лейблам помещений точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.parentIds
          description: По идентификаторам хабов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.buildingIds
          description: По идентификатору объекта строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.serialNumbers
          description: По серийным номерам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.metricPointIds
          description: По ID точек учета, привязанных через индикаторы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.serialIds
          description: Смешанный поиск по полям serial_number, dev_eui, MAC-адрес, model,
            external_id
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/device/replace:
    post:
      summary: >-
        Метод замены прибора учета.

        Создает ПУ и привязывает его индикаторы к ТУ исходного ПУ.

        Разрешения: telemetry_control:device:save, telemetry_control:device:save:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений
      operationId: DeviceService_PostDeviceReplace
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceReplaceResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceReplaceResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDeviceReplaceResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostDeviceReplaceRequest"
        required: true
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  "/telemetry_control/api/v1/device/{deviceGroup.deviceId}/group/{deviceGroup.groupId}/attach":
    put:
      summary: >-
        Метод сохранения связей ПУ и группы пользователя.

        Поддерживает только создание.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: DeviceService_PutDeviceGroupAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutDeviceGroupAttachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: deviceGroup.deviceId
          description: |-
            Идентификатор ПУ.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: deviceGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/device/{deviceGroup.deviceId}/group/{deviceGroup.groupId}/detach":
    put:
      summary: >-
        Метод удаления связей ПУ и группы пользователя.

        Метод доступен для: Token: admin, service, bti, seller. Без учета разрешений
      operationId: DeviceService_PutDeviceGroupDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutDeviceGroupDetachResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: deviceGroup.deviceId
          description: |-
            Идентификатор ПУ.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: deviceGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/device/{id}":
    get:
      summary: >-
        Метод получения ПУ.

        Разрешения: telemetry_control:device:card, telemetry_control:device:card:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee, master. При наличии разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: DeviceService_GetDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDeviceResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор ПУ
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления прибора учета.

        Разрешения: telemetry_control:device:remove, telemetry_control:device:remove:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. При наличии разрешений
      operationId: DeviceService_DeleteDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteDeviceResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - device(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/dictionary/device_model:
    post:
      summary: >-
        Метод сохранения модели ПУ.

        Поддерживает создание и обновление.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: DictionaryService_PostDictionaryDeviceModel
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostDictionaryDeviceModelResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostDictionaryDeviceModelRequest"
        required: true
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/dictionary/device_model/count:
    get:
      summary: >-
        Метод получения количества моделей ПУ.

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryDeviceModelCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDictionaryDeviceModelCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.titles
          description: По заголовку элемента
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.modelKinds
          description: По типам модели
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/dictionary/device_model/list:
    get:
      summary: >-
        Метод получения списка моделей ПУ.

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryDeviceModelList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDictionaryDeviceModelListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDictionaryDeviceModelListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.titles
          description: По заголовку элемента
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.modelKinds
          description: По типам модели
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - TITLE: По заголовку элемента
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - TITLE
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/dictionary/device_model/{id}":
    delete:
      summary: >-
        Метод удаления модели ПУ.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: DictionaryService_DeleteDictionaryDeviceModel
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteDictionaryDeviceModelResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/dictionary/mrf/count:
    get:
      summary: >-
        Метод получения количества элементов справочника Макрорегионы (МРФ).

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryMrfCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDictionaryMrfCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/dictionary/mrf/list:
    get:
      summary: >-
        Метод получения списка элементов справочника Макрорегионы (МРФ).

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryMrfList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDictionaryMrfListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDictionaryMrfListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/dictionary/rf/count:
    get:
      summary: >-
        Метод получения количества элементов справочника Регионы (РФ).

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryRfCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetDictionaryRfCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/dictionary/rf/list:
    get:
      summary: >-
        Метод получения списка элементов справочника Регионы (РФ).

        Метод доступен для: Token: admin, service, application, bti, owner, employee, seller. Без учета разрешений
      operationId: DictionaryService_GetDictionaryRfList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetDictionaryRfListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetDictionaryRfListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - dictionary(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/metric_point:
    post:
      summary: >-
        Метод сохранения ТУ.

        Поддерживает создание и обновление.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: MetricPointService_PostMetricPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostMetricPointResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostMetricPointResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostMetricPointResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostMetricPointRequest"
        required: true
      tags:
        - metric_point(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/metric_point/count:
    get:
      summary: >-
        Метод получения количества ТУ.

        Разрешения: telemetry_control:metric_point:list, telemetry_control:metric_point:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: MetricPointService_GetMetricPointCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetMetricPointCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetMetricPointCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetMetricPointCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.deviceMetricPointMetricTypes
          description: |-
            По типу энергоресурса

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.deviceMetricPointStatusTypes
          description: |-
            По типу статуса

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - ACTIVE: Активная
             - ARCHIVE: Архивная
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - ARCHIVE
        - name: filter.roomNumbers
          description: По Номеру помещения
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По Лейблу помещения
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По идентификаторам объекта строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.fiasIds
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          description: По ID привязанных через индикаторы ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceSerialNumbers
          description: По серийным номерам привязанных через индикаторы ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - metric_point(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/metric_point/list:
    get:
      summary: >-
        Метод получения списка ТУ.

        Разрешения: telemetry_control:metric_point:list, telemetry_control:metric_point:list:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: MetricPointService_GetMetricPointList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetMetricPointListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetMetricPointListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.deviceMetricPointMetricTypes
          description: |-
            По типу энергоресурса

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.deviceMetricPointStatusTypes
          description: |-
            По типу статуса

             - STATUS_TYPE_UNKNOWN: Значение не указано
             - ACTIVE: Активная
             - ARCHIVE: Архивная
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - ARCHIVE
        - name: filter.roomNumbers
          description: По Номеру помещения
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.roomLabels
          description: По Лейблу помещения
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.buildingIds
          description: По идентификаторам объекта строительства
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.fiasIds
          description: По ФИАС
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          description: По ID привязанных через индикаторы ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceSerialNumbers
          description: По серийным номерам привязанных через индикаторы ПУ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - METRIC_TYPE: По типу энергоресурса
             - STATUS_TYPE: По типу статуса
             - ROOM_NUMBER: По Номеру помещения
             - ROOM_LABEL: По Лейблу помещения
             - BUILDING_ID: По идентификатору объекта строительства
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - METRIC_TYPE
              - STATUS_TYPE
              - ROOM_NUMBER
              - ROOM_LABEL
              - BUILDING_ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - metric_point(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/metric_point/{id}":
    get:
      summary: >-
        Метод получения ТУ.

        Разрешения: telemetry_control:metric_point:card, telemetry_control:metric_point:card:own.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений.

        Метод доступен для: ApiKey: При наличии разрешений
      operationId: MetricPointService_GetMetricPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetMetricPointResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор ТУ
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - metric_point(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления ТУ.

        Метод доступен для: Token: admin, service, bti, seller, application, owner, employee. Без учета разрешений
      operationId: MetricPointService_DeleteMetricPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteMetricPointResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - metric_point(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/system/status:
    get:
      summary: |-
        Метод проверки доступности по порту из интернета.
        Не требует авторизации
      operationId: SystemService_GetSystemStatus
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSystemStatusResponse"
        "400":
          description: Ошибка
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - system(public)
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/template/device:
    post:
      summary: >-
        Метод сохранения шаблона ПУ.

        Поддерживает создание и обновление.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: TemplateService_PostTemplateDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateDeviceResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateDeviceResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateDeviceResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostTemplateDeviceRequest"
        required: true
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/template/device/count:
    get:
      summary: >-
        Метод получения количества шаблонов ПУ.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateDeviceCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateDeviceCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateDeviceCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateDeviceCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.metricTypes
          description: |-
            По типу энергоресурса

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.modelIds
          description: По ID модели счетчика
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.planTypes
          description: |-
            По типу тарифного плана. Для ПУ электроэнергии

             - PLAN_TYPE_UNKNOWN: Значение не указано
             - SINGLE: Однотарифный
             - DOUBLE: Двухтарифный
             - TRIPLE: Трёхтарифный
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - SINGLE
                - DOUBLE
                - TRIPLE
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/template/device/list:
    get:
      summary: >-
        Метод получения списка шаблонов ПУ.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateDeviceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTemplateDeviceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTemplateDeviceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.metricTypes
          description: |-
            По типу энергоресурса

             - METRIC_TYPE_UNKNOWN: Значение не указано
             - HOT_WATER: Горячая вода
             - COLD_WATER: Холодная вода
             - HEAT: Теплоэнергия
             - GAS: Газ
             - ELECTRICITY: Электроэнергия
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - HOT_WATER
                - COLD_WATER
                - HEAT
                - GAS
                - ELECTRICITY
        - name: filter.modelIds
          description: По ID модели счетчика
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.planTypes
          description: |-
            По типу тарифного плана. Для ПУ электроэнергии

             - PLAN_TYPE_UNKNOWN: Значение не указано
             - SINGLE: Однотарифный
             - DOUBLE: Двухтарифный
             - TRIPLE: Трёхтарифный
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - SINGLE
                - DOUBLE
                - TRIPLE
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - METRIC_TYPE: По типу энергоресурса
             - MODEL: По модели счетчика
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - METRIC_TYPE
              - MODEL
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/template/device/{id}":
    get:
      summary: >-
        Метод получения шаблона ПУ.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateDeviceResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор шаблона ПУ
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления шаблона ПУ.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: TemplateService_DeleteTemplateDevice
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteTemplateDeviceResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/template/indicator:
    post:
      summary: >-
        Метод сохранения шаблонов индикатора.

        Поддерживает создание и обновление.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: TemplateService_PostTemplateIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateIndicatorResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateIndicatorResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTemplateIndicatorResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostTemplateIndicatorRequest"
        required: true
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /telemetry_control/api/v1/template/indicator/count:
    get:
      summary: >-
        Метод получения количества шаблонов индикаторов.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateIndicatorCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateIndicatorCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateIndicatorCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateIndicatorCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.signTypes
          description: |-
            По типу измерений

             - SIGN_TYPE_UNKNOWN: Значение не указано
             - ABSOLUTE_DS: Абсолютный показатель
             - ABSOLUTE_RC: Абсолютный расход ресурса
             - INTERVAL_DS: Интервальный показатель состояния
             - INTERVAL_RC: Интервальный расход ресурса
             - CURRENT_DS: Текущее состояние
             - CURRENT_RS: Текущее состояние ресурса
             - VOLUME: Объём
             - PARAMETER: Параметр конфигурации
             - FLAG: Флаг состояния
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ABSOLUTE_DS
                - ABSOLUTE_RC
                - INTERVAL_DS
                - INTERVAL_RC
                - CURRENT_DS
                - CURRENT_RS
                - VOLUME
                - PARAMETER
                - FLAG
        - name: filter.archiveTypes
          description: |-
            По типу архивности показаний

             - ARCHIVE_TYPE_UNKNOWN: Значение не указано
             - CURRENT: Текущие показания
             - HALFHOUR: За 30 мин
             - HOUR: За час
             - DAY: За суток
             - MONTH: За месяц
             - YEAR: За год
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CURRENT
                - HALFHOUR
                - HOUR
                - DAY
                - MONTH
                - YEAR
        - name: filter.isIndividual
          description: По флагу видимости индикатора для клиента ФЛ
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.title
          description: |-
            По шаблонному названию индикатора.
            Поиск производится по подстроке
          in: query
          required: false
          schema:
            type: string
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  /telemetry_control/api/v1/template/indicator/list:
    get:
      summary: >-
        Метод получения списка шаблонов индикаторов.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateIndicatorList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTemplateIndicatorListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTemplateIndicatorListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.signTypes
          description: |-
            По типу измерений

             - SIGN_TYPE_UNKNOWN: Значение не указано
             - ABSOLUTE_DS: Абсолютный показатель
             - ABSOLUTE_RC: Абсолютный расход ресурса
             - INTERVAL_DS: Интервальный показатель состояния
             - INTERVAL_RC: Интервальный расход ресурса
             - CURRENT_DS: Текущее состояние
             - CURRENT_RS: Текущее состояние ресурса
             - VOLUME: Объём
             - PARAMETER: Параметр конфигурации
             - FLAG: Флаг состояния
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ABSOLUTE_DS
                - ABSOLUTE_RC
                - INTERVAL_DS
                - INTERVAL_RC
                - CURRENT_DS
                - CURRENT_RS
                - VOLUME
                - PARAMETER
                - FLAG
        - name: filter.archiveTypes
          description: |-
            По типу архивности показаний

             - ARCHIVE_TYPE_UNKNOWN: Значение не указано
             - CURRENT: Текущие показания
             - HALFHOUR: За 30 мин
             - HOUR: За час
             - DAY: За суток
             - MONTH: За месяц
             - YEAR: За год
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CURRENT
                - HALFHOUR
                - HOUR
                - DAY
                - MONTH
                - YEAR
        - name: filter.isIndividual
          description: По флагу видимости индикатора для клиента ФЛ
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.title
          description: |-
            По шаблонному названию индикатора.
            Поиск производится по подстроке
          in: query
          required: false
          schema:
            type: string
        - name: filter.indicatorVendorTypes
          description: |-
            По посреднику получения показаний

             - VENDOR_TYPE_UNKNOWN: Значение не указано
             - ENVIRO: Энвайро
             - LARTECH: Лартех
             - RTK: РТК
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ENVIRO
                - LARTECH
                - RTK
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - SIGN_TYPE: По типу измерений
             - ARCHIVE_TYPE: По типу архивности показаний
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - SIGN_TYPE
              - ARCHIVE_TYPE
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
  "/telemetry_control/api/v1/template/indicator/{id}":
    get:
      summary: >-
        Метод получения шаблона индикатора.

        Метод доступен для: Token: service, application, admin, owner, employee, bti, seller. Без учета разрешений
      operationId: TemplateService_GetTemplateIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTemplateIndicatorResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор шаблона индикатора
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:read
            - telemetry_control:edit
          bearerHttp: []
    delete:
      summary: >-
        Метод удаления шаблона шаблона индикатора.

        Метод доступен для: Token: admin, service, application. Без учета разрешений
      operationId: TemplateService_DeleteTemplateIndicator
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteTemplateIndicatorResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - template(auth)
      security:
        - oauth2:
            - telemetry_control:edit
          bearerHttp: []
components:
  schemas:
    DeviceMetricPoint:
      type: object
      properties:
        id:
          type: string
          title: Идентификатор
        metricType:
          title: Тип энергоресурса
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPointMetricType"
        roomNumber:
          type: string
          title: Номер помещения
        roomLabel:
          type: string
          title: Лейбл помещения
        zoneLabel:
          type: string
          title: Зона
        statusType:
          title: Тип статуса
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPointStatusType"
        accountingType:
          title: Тип учёта
          allOf:
            - $ref: "#/components/schemas/MetricPointAccountingType"
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        primaryCurrentType:
          title: Тип номинала первичного тока
          allOf:
            - $ref: "#/components/schemas/MetricPointPrimaryCurrentType"
        secondaryCurrentType:
          title: Тип номинала вторичной обмотки
          allOf:
            - $ref: "#/components/schemas/DeviceSecondaryCurrentType"
        buildingId:
          type: integer
          format: int32
          title: Идентификатор объекта строительства
        changedAt:
          type: string
          format: date-time
          title: Дата изменения
          readOnly: true
        buildingLevel:
          type: integer
          format: int32
          title: Уровень
        buildingSection:
          type: integer
          format: int32
          title: Секция
      title: Точка учета
      required:
        - metricType
        - roomNumber
        - roomLabel
        - statusType
        - accountingType
        - buildingId
    DeviceMetricPointMetricType:
      type: string
      enum:
        - HOT_WATER
        - COLD_WATER
        - HEAT
        - GAS
        - ELECTRICITY
      description: |-
        - METRIC_TYPE_UNKNOWN: Значение не указано
         - HOT_WATER: Горячая вода
         - COLD_WATER: Холодная вода
         - HEAT: Теплоэнергия
         - GAS: Газ
         - ELECTRICITY: Электроэнергия
      title: Справочние типов энергоресурсов
    DeviceMetricPointStatusType:
      type: string
      enum:
        - ACTIVE
        - ARCHIVE
      description: |-
        - STATUS_TYPE_UNKNOWN: Значение не указано
         - ACTIVE: Активная
         - ARCHIVE: Архивная
      title: Справочник типов статусов
    DevicePipeType:
      type: string
      enum:
        - INFEED
        - CIRCULATING
      description: |-
        - PIPE_TYPE_UNKNOWN: Значение не указано
         - INFEED: Подающий
         - CIRCULATING: Циркуляционный
      title: Справочник типов трубопроводов
    DeviceSecondaryCurrentType:
      type: string
      enum:
        - TT1A
        - TT2A
        - TT5A
      description: |-
        - SECONDARY_CURRENT_TYPE_UNKNOWN: Значение не указано
         - TT1A: 1 (А)
         - TT2A: 2 (А)
         - TT5A: 5 (А)
      title: |-
        Справочник типов номинальных нагрузок вторичных обмоток.
        У трансформаторов тока (В*А)
    ErrorCreateIndicatorsFail:
      type: object
      title: Не удалось создать индикаторы нового ПУ
    ErrorIpError:
      type: object
      title: |-
        Причины:
         - Устройство не найденно на данном IP адресе
    ErrorMetricPointNotFound:
      type: object
      title: Заменяемый ПУ не привязан к ТУ
    ErrorMultiLinkedMetricPoint:
      type: object
      title: Попытка замены ПУ, привязанного ко многим ТУ
    ErrorNetworkAddressError:
      type: object
      title: |-
        Причины:
         - Неверный сетевой адрес
    ErrorPortError:
      type: object
      title: |-
        Причины:
         - Устройство отсутствует на порту
    ErrorReplaceDeviceNotFound:
      type: object
      title: Не найден заменяемый ПУ
    ErrorWrongBuilding:
      type: object
      title: Заменяющий ПУ не привязан к дому заменяемого ПУ
    MetricPointAccountingType:
      type: string
      enum:
        - COMMERCIAL
        - TECHNICAL
      description: |-
        - ACCOUNTING_TYPE_UNKNOWN: Значение не указано
         - COMMERCIAL: Коммерческий учёт
         - TECHNICAL: Технический учёт
      title: Справочник типов учёта
    MetricPointPrimaryCurrentType:
      type: string
      enum:
        - TT1A
        - TT5A
        - TT10A
        - TT15A
        - TT20A
        - TT30A
        - TT40A
        - TT50A
        - TT75A
        - TT80A
        - TT100A
        - TT150A
        - TT200A
        - TT300A
        - TT400A
        - TT500A
        - TT600A
        - TT750A
        - TT800A
        - TT1000A
        - TT1200A
        - TT1500A
        - TT2000A
      description: |-
        - PRIMARY_CURRENT_TYPE_UNKNOWN: Значение не указано
         - TT1A: 1 (А)
         - TT5A: 5 (А)
         - TT10A: 10 (А)
         - TT15A: 15 (А)
         - TT20A: 20 (А)
         - TT30A: 30 (А)
         - TT40A: 40 (А)
         - TT50A: 50 (А)
         - TT75A: 75 (А)
         - TT80A: 80 (А)
         - TT100A: 100 (А)
         - TT150A: 150 (А)
         - TT200A: 200 (А)
         - TT300A: 300 (А)
         - TT400A: 400 (А)
         - TT500A: 500 (А)
         - TT600A: 600 (А)
         - TT750A: 750 (А)
         - TT800A: 800 (А)
         - TT1000A: 1000 (А)
         - TT1200A: 1200 (А)
         - TT1500A: 1500 (А)
         - TT2000A: 2000 (А)
      title: |-
        Справочник типов номиналов первичных токов.
        У выпускаемых трансформаторов тока (А)
    PostBuildingFullDuplexRequestBuildingAsyncStatus:
      type: object
      properties:
        buildingId:
          type: integer
          format: int32
          title: Идентификатор объекта строительства
        data:
          title: Успех
          allOf:
            - $ref: "#/components/schemas/PostBuildingFullDuplexRequestBuildingAsyncStatusSuc\
                cess"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/PostBuildingFullDuplexRequestBuildingAsyncStatusErr\
                or"
      title: Результат обработки объекта строительства на клиенте
      required:
        - buildingId
    PostBuildingFullDuplexRequestBuildingAsyncStatusError:
      type: object
      properties:
        unknown:
          title: Неизвестная ошибка
          allOf:
            - $ref: "#/components/schemas/PostBuildingFullDuplexRequestBuildingAsyncStatusErr\
                orUnknownError"
      title: Ошибки обработки объекта строительства на клиенте
    PostBuildingFullDuplexRequestBuildingAsyncStatusErrorUnknownError:
      type: object
      properties:
        message:
          type: string
          title: >-
            Произвольный текст ошибки на стороне клиента.

            Отправляется в случае если в спецификации нет подходящей ошибки.

            После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
      title: Неизвестная ошибка на стороне клиента
      required:
        - message
    PostBuildingFullDuplexRequestBuildingAsyncStatusSuccess:
      type: object
      title: Команда принята
    PostBuildingFullDuplexResponseRemoveBuildingEvent:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор объекта строительства
      title: Событие удаления объекта строительства
      required:
        - id
    PostBuildingFullDuplexResponseUpsertBuildingEvent:
      type: object
      properties:
        data:
          title: Объект строительства
          allOf:
            - $ref: "#/components/schemas/v1Building"
      title: Событие создания/обновления объекта строительства
      required:
        - data
    PostDeviceFullDuplexRequestDeviceAsyncStatus:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
          title: Идентификатор ПУ
        data:
          title: Успех
          allOf:
            - $ref: "#/components/schemas/PostDeviceFullDuplexRequestDeviceAsyncStatusSuccess"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/PostDeviceFullDuplexRequestDeviceAsyncStatusError"
      title: Результат обработки устройства на клиенте
      required:
        - deviceId
    PostDeviceFullDuplexRequestDeviceAsyncStatusError:
      type: object
      properties:
        postDeviceRequestUnknown:
          title: Неизвестная ошибка
          allOf:
            - $ref: "#/components/schemas/PostDeviceFullDuplexRequestDeviceAsyncStatusErrorUn\
                knownError"
        postDeviceRequestIp:
          title: Неверный IP
          allOf:
            - $ref: "#/components/schemas/ErrorIpError"
        postDeviceRequestPort:
          title: Неверный порт
          allOf:
            - $ref: "#/components/schemas/ErrorPortError"
        postDeviceRequestNetworkAddress:
          title: Неверный сетевой адрес
          allOf:
            - $ref: "#/components/schemas/ErrorNetworkAddressError"
      title: Ошибки обработки устройства на клиенте
    PostDeviceFullDuplexRequestDeviceAsyncStatusErrorUnknownError:
      type: object
      properties:
        message:
          type: string
          title: >-
            Произвольный текст ошибки на стороне клиента.

            Отправляется в случае если в спецификации нет подходящей ошибки.

            После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
      title: Неизвестная ошибка на стороне клиента
      required:
        - message
    PostDeviceFullDuplexRequestDeviceAsyncStatusSuccess:
      type: object
      title: Команда принята
    PostResourceFullDuplexRequestResourceAsyncStatus:
      type: object
      properties:
        resourceId:
          title: Идентификатор ресурса
          allOf:
            - $ref: "#/components/schemas/v1ResourceId"
        data:
          title: Успех
          allOf:
            - $ref: "#/components/schemas/PostResourceFullDuplexRequestResourceAsyncStatusSuc\
                cess"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/PostResourceFullDuplexRequestResourceAsyncStatusErr\
                or"
      title: Результат обработки ресурса на клиенте
      required:
        - resourceId
    PostResourceFullDuplexRequestResourceAsyncStatusError:
      type: object
      properties:
        unknown:
          title: Неизвестная ошибка
          allOf:
            - $ref: "#/components/schemas/PostResourceFullDuplexRequestResourceAsyncStatusErr\
                orUnknownError"
      title: Ошибки обработки ресурса на клиенте
    PostResourceFullDuplexRequestResourceAsyncStatusErrorUnknownError:
      type: object
      properties:
        message:
          type: string
          title: >-
            Произвольный текст ошибки на стороне клиента.

            Отправляется в случае если в спецификации нет подходящей ошибки.

            После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
      title: Неизвестная ошибка на стороне клиента
      required:
        - message
    PostResourceFullDuplexRequestResourceAsyncStatusSuccess:
      type: object
      title: Команда принята
    PostResourceFullDuplexResponseRemoveResourceEvent:
      type: object
      properties:
        resourceId:
          title: Идентификатор ресурса
          allOf:
            - $ref: "#/components/schemas/v1ResourceId"
      title: Событие удаления ресурса
      required:
        - resourceId
    PostResourceFullDuplexResponseUpsertResourceEvent:
      type: object
      properties:
        resource:
          title: Ресурс
          allOf:
            - $ref: "#/components/schemas/v1Resource"
      title: Событие создания/обновления ресурса
      required:
        - resource
    protobufAny:
      type: object
      properties:
        "@type":
          type: string
      additionalProperties: {}
      title: Произвольный JSON
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: "#/components/schemas/protobufAny"
      title: Ошибка транспортного слоя
    telemetry_controlv1ValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1Building:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        title:
          type: string
          title: Наименование объекта строительства
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        utcOffset:
          type: integer
          format: int32
          title: Смещение временной зоны объекта строительства от UTC в минутах
        fiasId:
          type: string
          title: ФИАС
        mrfType:
          title: Принадлежность объекта строительства к МРФ
          allOf:
            - $ref: "#/components/schemas/v1BuildingMrfType"
        rfType:
          title: Принадлежность объекта строительства к РФ
          allOf:
            - $ref: "#/components/schemas/v1BuildingRfType"
        statusType:
          title: Статус объекта строительства
          allOf:
            - $ref: "#/components/schemas/v1BuildingStatusType"
        fullAddress:
          type: string
          title: Адрес объекта строительства
        orpon:
          type: string
          format: int64
          title: ОРПОН
        vendorType:
          title: Поставщик показаний, с которым заключен договор на передачу показаний по
            дому
          allOf:
            - $ref: "#/components/schemas/v1BuildingVendorType"
      title: Объект строительства
      required:
        - utcOffset
    v1BuildingFilter:
      type: object
      properties:
        fiasId:
          type: array
          items:
            type: string
          title: По ФИАС
        title:
          type: string
          title: По заголовку
        afterCreatedAt:
          type: string
          format: date-time
          title: По нижней границе дате создания
        beforeCreatedAt:
          type: string
          format: date-time
          title: По верхней границе дате создания
        mrfTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1BuildingMrfType"
          title: По МРФ (Макрорегион)
        rfTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1BuildingRfType"
          title: По РФ (Регион)
        statusTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1BuildingStatusType"
          title: По статусам объекта строительства
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
      title: >-
        Фильтр для запроса объектов строительства.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1BuildingGroup:
      type: object
      properties:
        groupId:
          type: string
          title: |-
            Идентификатор группы.
            # Тип: Guid
        buildingId:
          type: integer
          format: int32
          title: |-
            Идентификатор объекта строительства.
            # Диапазон: 0..2147483647
      title: |-
        Связка объекта строительства и группы пользователя.
        Задает область ресурсов (resource scope), доступную пользователю.
        Используется для контроля доступа к объекту строительства
      required:
        - groupId
        - buildingId
    v1BuildingGroupFilter:
      type: object
      properties:
        groupIds:
          type: array
          items:
            type: string
          title: По Идентификатору группы пользователя
        buildingIds:
          type: array
          items:
            type: integer
            format: int32
          title: По Объекту строительства
      title: >-
        Фильтр для запроса связей объектов строительства и группы пользователя.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1BuildingGroupPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1BuildingGroupPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1BuildingGroupPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация связей объектов строительства и группы пользователя
    v1BuildingGroupPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1BuildingGroupPagingOrderByType:
      type: string
      enum:
        - GROUP_ID
        - BUILDING_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - GROUP_ID: По Идентификатору группы пользователя
         - BUILDING_ID: По Объекту строительства
      title: Справочник типов сортировки
    v1BuildingMrfType:
      type: string
      enum:
        - TSENTR
        - YUG
        - URAL
        - SIBIR
        - SEVERO_ZAPAD
        - DALNIY_VOSTOK
        - VOLGA
      description: |-
        - MRF_TYPE_UNKNOWN: Значение не указано
         - TSENTR: Центр
         - YUG: Юг
         - URAL: Урал
         - SIBIR: Сибирь
         - SEVERO_ZAPAD: Северо-Запад
         - DALNIY_VOSTOK: Дальний Восток
         - VOLGA: Волга
      title: Справочник МРФ (Макрорегионы)
    v1BuildingPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1BuildingPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1BuildingPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация объектов строительства
    v1BuildingPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1BuildingPagingOrderByType:
      type: string
      enum:
        - ID
        - TITLE
        - CREATED_AT
        - CHANGED_AT
        - FIAS_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По уникальному ключу
         - TITLE: По наименованию
         - CREATED_AT: По дате создания
         - CHANGED_AT: По дате изменения
         - FIAS_ID: По ФИАС
      title: Справочник типов сортировки
    v1BuildingRfType:
      type: string
      enum:
        - UFA
        - KIROV
        - IVANOVO
        - KALUGA
        - KOSTROMA
        - KURSK
        - LIPETSK
        - MOSOBLAST
        - OREL
        - RYAZAN
        - TAMBOV
        - TVER
        - YAROSLAVL
        - SMOLENSK
        - TULA
        - MOSCOW
        - EAO
        - KURGAN
        - TUMEN
        - HANTY
        - AMUR
        - KAMCHATKA
        - MAGADAN
        - PRIMORYE
        - SAKHALIN
        - KHABAROVSK
        - CHITA
        - CHUKOTKA
        - ARCHANGELSK
        - VOLOGDA
        - KALININGRAD
        - KARELIA
        - KOMI
        - LENOBLAST
        - MURMANSK
        - NOVGOROD
        - PSKOV
        - SPB
        - ALTAI
        - BURYATIYA
        - IRKUTSK
        - KEMEROVO
        - KRASNOYARSK
        - OMSK
        - HAKASIYA
        - RALTAY
        - TUVA
        - TOMSK
        - ORENBURG
        - BELGOROD
        - SAKHA
        - EKT
        - VOLGOGRAD
        - YAMAL
        - CHELYABINSK
        - PERM
        - MARYEL
        - PENZA
        - INGUSHETIA
        - NALCHIK
        - ELISTA
        - ROSTOV
        - MAHACHKALA
        - MORDOVIYA
        - KAZAN
        - SAMARA
        - SARATOV
        - UDMURTIYA
        - ULYANOVSK
        - CHUVASHIYA
        - NNOVGOROD
        - BRYANSK
        - VLADIMIR
        - VORONEZH
        - VLADIKAVKAZ
        - STAVROPOL
        - CHERKESSK
        - MAYKOP
        - ASTRAKHAN
        - KRASNODAR
        - TEST
        - NOVOSIBIRSK
      description: |-
        - RF_TYPE_UNKNOWN: Значение не указано
         - UFA: Республика Башкортостан
         - KIROV: Кировская область
         - IVANOVO: Ивановский филиал
         - KALUGA: Калужский филиал
         - KOSTROMA: Костромской филиал
         - KURSK: Курский филиал
         - LIPETSK: Липецкий филиал
         - MOSOBLAST: Московская область
         - OREL: Орловский филиал
         - RYAZAN: Рязанский филиал
         - TAMBOV: Тамбовский филиал
         - TVER: Тверской филиал
         - YAROSLAVL: Ярославский филиал
         - SMOLENSK: Смоленский филиал
         - TULA: Тульский филиал
         - MOSCOW: Москва
         - EAO: ЕАО
         - KURGAN: Филиал в Тюменской и Курганской областях
         - TUMEN: Филиал в Тюменской и Курганской областях
         - HANTY: Ханты-Мансийский филиал
         - AMUR: Амурская область
         - KAMCHATKA: Камчатский край
         - MAGADAN: Магаданская область
         - PRIMORYE: Приморский край
         - SAKHALIN: Сахалинская область
         - KHABAROVSK: Хабаровский край
         - CHITA: Забайкальский край
         - CHUKOTKA: ЧАО
         - ARCHANGELSK: Архангельск
         - VOLOGDA: Вологда
         - KALININGRAD: Калининград
         - KARELIA: Карелия
         - KOMI: Коми
         - LENOBLAST: Лен область
         - MURMANSK: Мурманск
         - NOVGOROD: Новгород
         - PSKOV: Псков
         - SPB: СПб
         - ALTAI: Алтайский филиал
         - BURYATIYA: Бурятский филиал
         - IRKUTSK: Иркутский филиал
         - KEMEROVO: Кемеровский филиал
         - KRASNOYARSK: Красноярский филиал
         - OMSK: Омский филиал
         - HAKASIYA: Республика Хакасия
         - RALTAY: Республика Алтай
         - TUVA: Республика Тыва
         - TOMSK: Томский филиал
         - ORENBURG: Оренбургская область
         - BELGOROD: Белгородский филиал
         - SAKHA: Саха
         - EKT: Екатеринбургский филиал
         - VOLGOGRAD: Волгоградский филиал
         - YAMAL: Ямало-Ненецкий филиал
         - CHELYABINSK: Челябинский филиал
         - PERM: Пермский филиал ПАО "Ростелеком"
         - MARYEL: Республика Марий Эл
         - PENZA: Пензенская область
         - INGUSHETIA: Ингушский филиал
         - NALCHIK: Кабардино-Балкарский филиал
         - ELISTA: Калмыцкий филиал
         - ROSTOV: Ростовский филиал
         - MAHACHKALA: Дагестанский филиал
         - MORDOVIYA: Республика Мордовия
         - KAZAN: Республика Татарстан (Татарстан)
         - SAMARA: Самарская область
         - SARATOV: Саратовская область
         - UDMURTIYA: Удмуртская Республика
         - ULYANOVSK: Ульяновская область
         - CHUVASHIYA: Чувашская Республика - Чувашия
         - NNOVGOROD: Нижегородская область
         - BRYANSK: Брянский филиал
         - VLADIMIR: Владимирский филиал
         - VORONEZH: Воронежский филиал
         - VLADIKAVKAZ: Северо-Осетинский филиал
         - STAVROPOL: Ставропольский филиал
         - CHERKESSK: Республика Карачаево-Черкесская
         - MAYKOP: Республика Адыгея
         - ASTRAKHAN: Астраханский филиал
         - KRASNODAR: Краснодарский филиал
         - TEST: Тестовый
         - NOVOSIBIRSK: Новосибирский филиал
      title: Справочник РФ (Регионы)
    v1BuildingStatusType:
      type: string
      enum:
        - BUILDING
        - ACCEPTANCE
        - ACTIVE
        - ARCHIVE
        - CANCELLED
        - TEST_STATUS_TYPE
      description: |-
        - STATUS_TYPE_UNKNOWN: Значение не указано
         - BUILDING: СМР
         - ACCEPTANCE: Реализован
         - ACTIVE: Обслуживание
         - ARCHIVE: Снят с обслуживания
         - CANCELLED: Отказ от заключения договора
         - TEST_STATUS_TYPE: Тестовый
      title: Статусы объектов строительства
    v1BuildingVendorType:
      type: string
      enum:
        - ENVIRO
        - LARTECH
        - RTK
      description: |-
        - VENDOR_TYPE_UNKNOWN: Значение не указано
         - ENVIRO: Энвайро
         - LARTECH: Лартех
         - RTK: РТК
      title: Поставщик показаний
    v1DeleteBuildingResponse:
      type: object
      title: Ответ на запрос удаления объекта строительства
    v1DeleteDeviceIndicatorResponse:
      type: object
      title: Ответ на запрос удаления индикатора
    v1DeleteDeviceResponse:
      type: object
      title: Ответ на запрос удаления прибора учета
    v1DeleteDictionaryDeviceModelResponse:
      type: object
      title: Ответ на запрос удаления модели ПУ
    v1DeleteMetricPointResponse:
      type: object
      title: Ответ на запрос удаления ТУ
    v1DeleteTemplateDeviceResponse:
      type: object
      title: Ответ на запрос удаления шаблона ПУ
    v1DeleteTemplateIndicatorResponse:
      type: object
      title: Ответ на запрос удаления шаблона индикатора
    v1Device:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        indicators:
          type: array
          items:
            $ref: "#/components/schemas/v1Indicator"
          title: Индикаторы
          readOnly: true
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        type:
          title: Тип прибора учёта(ПУ)
          allOf:
            - $ref: "#/components/schemas/v1DeviceType"
        serialNumber:
          type: string
          title: Серийный номер
        model:
          type: string
          title: Производитель и модель счетчика
        statusType:
          title: Тип статуса
          allOf:
            - $ref: "#/components/schemas/v1DeviceStatusType"
        installedAt:
          type: string
          format: date-time
          title: Дата установки
        removedAt:
          type: string
          format: date-time
          title: Дата удаления
        checkAt:
          type: string
          format: date-time
          title: Дата предыдущей поверки счетчика
        nextCheckAt:
          type: string
          format: date-time
          title: Дата следующей поверки счетчика
        externalId:
          type: string
          title: Внешний дентификатор прибора учёта(ПУ)
        planType:
          title: Тип тарифного плана
          allOf:
            - $ref: "#/components/schemas/v1DevicePlanType"
        parentId:
          type: integer
          format: int32
          title: Идентификатор хаба
        pipeType:
          title: Тип трубопровода
          allOf:
            - $ref: "#/components/schemas/DevicePipeType"
        devEui:
          type: string
          title: Идентификатор модуля LoraWan
        mac:
          type: string
          title: MAC-адрес
        port:
          type: integer
          format: int32
          title: Номер порта
        networkAddress:
          type: string
          title: Сетевой адрес
        commChannel:
          type: string
          title: |-
            Канал связи.
            Для станции LoraWan
        simNumber:
          type: string
          title: |-
            MSISDN SIM-карты.
            Номер телефона
        simSerial:
          type: string
          title: Серийный номер SIM-карты
        ipAddressSim:
          type: string
          title: IP адрес SIM-карты
        placement:
          type: string
          title: Размещение
        installationPlace:
          type: string
          title: Место установки
        protocolTypeLabel:
          type: string
          title: Тип протокола
        wireInterface:
          type: string
          title: Тип проводного интерфейса
        buildingId:
          type: integer
          format: int32
          title: Идентификатор объекта строительства
        manufactureYear:
          type: integer
          format: int32
          title: Год выпуска счётчика
        indicatorVendorType:
          title: Посредник получения показаний
          allOf:
            - $ref: "#/components/schemas/v1IndicatorVendorType"
      title: Прибор учёта
      required:
        - type
        - serialNumber
        - model
    v1DeviceFilter:
      type: object
      properties:
        fiasIds:
          type: array
          items:
            type: string
          title: По ФИАС
        types:
          type: array
          items:
            $ref: "#/components/schemas/v1DeviceType"
          title: По типам приборов учета
        statusTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1DeviceStatusType"
          title: По типам статусов
        models:
          type: array
          items:
            type: string
          title: По модели счетчика
        metricPointMetricTypes:
          type: array
          items:
            $ref: "#/components/schemas/DeviceMetricPointMetricType"
          title: По типам метрик
        roomNumbers:
          type: array
          items:
            type: string
          title: По номерам помещений точек учета, привязанных через индикаторы
        roomLabels:
          type: array
          items:
            type: string
          title: По лейблам помещений точек учета, привязанных через индикаторы
        parentIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам хабов
        buildingIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификатору объекта строительства
        serialNumbers:
          type: array
          items:
            type: string
          title: По серийным номерам
        metricPointIds:
          type: array
          items:
            type: string
          title: По ID точек учета, привязанных через индикаторы
        serialIds:
          type: array
          items:
            type: string
          title: Смешанный поиск по полям serial_number, dev_eui, MAC-адрес, model,
            external_id
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        indicatorVendorTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1IndicatorVendorType"
          title: По посреднику получения показаний
      title: >-
        Фильтр для запроса приборов учета.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1DeviceFilterValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1DeviceGroup:
      type: object
      properties:
        groupId:
          type: string
          title: |-
            Идентификатор группы.
            # Тип: Guid
        deviceId:
          type: integer
          format: int32
          title: |-
            Идентификатор ПУ.
            # Диапазон: 0..2147483647
      title: |-
        Связка ПУ и группы пользователя.
        Задает область ресурсов (resource scope), доступную пользователю.
        Используется для контроля доступа к ПУ
      required:
        - groupId
        - deviceId
    v1DeviceGroupFilter:
      type: object
      properties:
        groupIds:
          type: array
          items:
            type: string
          title: По Идентификатору группы пользователя
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По ПУ
      title: >-
        Фильтр для запроса связей ПУ и группы пользователя.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1DeviceGroupPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: GROUP_ID
          allOf:
            - $ref: "#/components/schemas/v1DeviceGroupPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1DeviceGroupPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация связей ПУ и группы пользователя
    v1DeviceGroupPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1DeviceGroupPagingOrderByType:
      type: string
      enum:
        - GROUP_ID
        - DEVICE_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - GROUP_ID: По Идентификатору группы пользователя
         - DEVICE_ID: По ПУ
      title: Справочник типов сортировки
    v1DeviceIndicatorMetricPoint:
      type: object
      properties:
        indicatorId:
          type: integer
          format: int32
          title: |-
            Идентификатор индикатора.
            # Диапазон: 0..2147483647
        metricPointId:
          type: string
          title: |-
            Идентификатору ТУ.
            # Тип: Guid
      title: Связка индикатора и ТУ
      required:
        - indicatorId
        - metricPointId
    v1DeviceIndicatorMetricPointFilter:
      type: object
      properties:
        indicatorId:
          type: array
          items:
            type: integer
            format: int32
          title: По Идентификатору индикатора
        metricPointId:
          type: array
          items:
            type: string
          title: По Идентификатору ТУ
      title: >-
        Фильтр для запроса индикаторов и ТУ.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1DeviceIndicatorMetricPointPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1DeviceIndicatorMetricPointPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1DeviceIndicatorMetricPointPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация связей индикаторов и ТУ
    v1DeviceIndicatorMetricPointPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1DeviceIndicatorMetricPointPagingOrderByType:
      type: string
      enum:
        - INDICATOR_ID
        - METRIC_POINT_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - INDICATOR_ID: По Идентификатору индикатора
         - METRIC_POINT_ID: По По Идентификатору ТУ
      title: Справочник типов сортировки
    v1DevicePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1DevicePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1DevicePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация устройств
    v1DevicePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1DevicePagingOrderByType:
      type: string
      enum:
        - ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
      title: Справочник типов значений сортировки
    v1DevicePagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1DevicePagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1DevicePagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по ПУ.
        Эти проверки выполняются до обращения в базу данных
    v1DevicePagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1DevicePagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1DevicePlanType:
      type: string
      enum:
        - SINGLE
        - DOUBLE
        - TRIPLE
      description: |-
        - PLAN_TYPE_UNKNOWN: Значение не указано
         - SINGLE: Однотарифный
         - DOUBLE: Двухтарифный
         - TRIPLE: Трёхтарифный
      title: Справочник типов тарифных планов
    v1DeviceStatusType:
      type: string
      enum:
        - RECEIVED
        - ACTIVE
        - WRONG
        - ARCHIVE
        - DELETE
        - UNLINK
      description: |-
        - STATUS_TYPE_UNKNOWN: Значение не указано
         - RECEIVED: Получен клиентом, еще не сконфигурирован
         - ACTIVE: Сконфигурирован клиентом, активен
         - WRONG: Обработан клиентом, возникла ошибка
         - ARCHIVE: Переведен в архивный статус
         - DELETE: Удален
         - UNLINK: Отсоединен
      title: Справочник типов статусов
    v1DeviceType:
      type: string
      enum:
        - HUB
        - PULSE_COUNTER_RECORDER
        - PULSE_COUNTER_RECORDER_LR
        - METERING_DEVICE
        - INTERFACE_CONVERTER
        - M_BUS_HUB
        - COMMUNICATION_MODULE_LR
        - BASE_LR
      description: |-
        - TYPE_UNKNOWN: Значение не указано
         - HUB: Коммуникационный модуль
         - PULSE_COUNTER_RECORDER: Счетчик импульсов - регистратор
         - PULSE_COUNTER_RECORDER_LR: Счетчик импульсов - регистратор LoRaWAN
         - METERING_DEVICE: Прибор учета расхода коммунальных услуг
         - INTERFACE_CONVERTER: Конвертер интерфейсов
         - M_BUS_HUB: M-BUS концентратор
         - COMMUNICATION_MODULE_LR: Модуль связи LoRaWAN
         - BASE_LR: Базовая станция LoRaWAN
      title: Справочник типов приборов учёта(ПУ)
    v1DeviceValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1DictionaryDeviceModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении
          readOnly: true
        title:
          type: string
          title: Модель счетчика
        protocol:
          type: string
          title: Протокол счетчика
        modelKind:
          type: string
          title: Тип модели
      title: Элемент справочника моделей ПУ
    v1DictionaryDeviceModelFilter:
      type: object
      properties:
        titles:
          type: array
          items:
            type: string
          title: По заголовку элемента
        modelKinds:
          type: array
          items:
            type: string
          title: По типам модели
      title: >-
        Фильтр для запроса моделей приборов учета.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1DictionaryDeviceModelPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1DictionaryDeviceModelPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1DictionaryDeviceModelPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация
    v1DictionaryDeviceModelPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        По умолчанию: ASC
    v1DictionaryDeviceModelPagingOrderByType:
      type: string
      enum:
        - ID
        - TITLE
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - TITLE: По заголовку элемента
      title: Справочник типов значений сортировки
    v1DictionaryMrf:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
          readOnly: true
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении
          readOnly: true
        title:
          type: string
          title: Локализованный заголовок элемента
        code:
          type: string
          title: Техническое наименование элемента
      title: Элемент справочника Макрорегионы (МРФ)
    v1DictionaryRf:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
          readOnly: true
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении
          readOnly: true
        title:
          type: string
          title: Локализованный заголовок элемента
        code:
          type: string
          title: Техническое наименование элемента
        mrfId:
          type: integer
          format: int32
          title: Принадлежность региона к Макрорегиону (МРФ)
      title: Элемент справочника Регионы (РФ)
      required:
        - mrfId
    v1GetBuildingCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего индикаторов
      title: Ответ на запрос получения количества объектов строительства
    v1GetBuildingGroupCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего связей объектов строительства и группы пользователя
      title: Ответ на запрос получения количества связей объектов строительства и
        группы пользователя
    v1GetBuildingGroupListResponse:
      type: object
      properties:
        data:
          title: Связь объекта строительства и группы пользователя
          allOf:
            - $ref: "#/components/schemas/v1BuildingGroup"
      title: Ответ на запрос получения списка связей объектов строительства и группы
        пользователя
    v1GetBuildingListResponse:
      type: object
      properties:
        data:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Building"
      title: Ответ на запрос получения списка объектов строительства
    v1GetBuildingResponse:
      type: object
      properties:
        data:
          title: Объект строительства
          allOf:
            - $ref: "#/components/schemas/v1Building"
      title: Ответ на запрос получения объекта строительства
    v1GetDeviceCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего устройств
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetDeviceCountResponseError"
      title: Ответ на запрос получения количества устройств
    v1GetDeviceCountResponseError:
      type: object
      properties:
        deviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1DeviceFilterValidationError"
      title: Ошибка запроса получения количества устройств
    v1GetDeviceGroupCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего связей ПУ и группы пользователя
      title: Ответ на запрос получения количества связей ПУ и группы пользователя
    v1GetDeviceGroupListResponse:
      type: object
      properties:
        data:
          title: Связь ПУ и группы пользователя
          allOf:
            - $ref: "#/components/schemas/v1DeviceGroup"
      title: Ответ на запрос получения списка связей ПУ и группы пользователя
    v1GetDeviceIndicatorCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего индикаторов
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetDeviceIndicatorCountResponseError"
      title: Ответ на запрос получения количества индикаторов
    v1GetDeviceIndicatorCountResponseError:
      type: object
      properties:
        deviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1IndicatorFilterValidationError"
      title: Ошибка запроса получения количества индикаторов
    v1GetDeviceIndicatorListResponse:
      type: object
      properties:
        data:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Indicator"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetDeviceIndicatorListResponseError"
      title: Ответ на запрос получения списка индикаторов
    v1GetDeviceIndicatorListResponseError:
      type: object
      properties:
        deviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1IndicatorFilterValidationError"
        devicePagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1IndicatorPagingValidationError"
      title: Ошибка запроса получения списка индикаторов
    v1GetDeviceIndicatorMetricPointCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего связей индикаторов и ТУ
      title: Ответ на запрос получения количества связей индикаторов и ТУ
    v1GetDeviceIndicatorMetricPointListResponse:
      type: object
      properties:
        data:
          title: Связь индикатора и ТУ
          allOf:
            - $ref: "#/components/schemas/v1DeviceIndicatorMetricPoint"
      title: Ответ на запрос получения списка связей индикаторов и ТУ
    v1GetDeviceIndicatorResponse:
      type: object
      properties:
        data:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Indicator"
      title: Ответ на запрос получения индикатора
    v1GetDeviceListResponse:
      type: object
      properties:
        data:
          title: Прибор учета
          allOf:
            - $ref: "#/components/schemas/v1Device"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetDeviceListResponseError"
      title: Ответ на запрос получения списка приборов учета
    v1GetDeviceListResponseError:
      type: object
      properties:
        deviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1DeviceFilterValidationError"
        devicePagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1DevicePagingValidationError"
      title: Ошибка запроса получения списка приборов учета
    v1GetDeviceResponse:
      type: object
      properties:
        data:
          title: Прибор учета
          allOf:
            - $ref: "#/components/schemas/v1Device"
      title: Ответ на запрос получения ПУ
    v1GetDictionaryDeviceModelCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего моделей приборов учета
      title: Ответ на запрос получения количества моделей приборов учета
    v1GetDictionaryDeviceModelListResponse:
      type: object
      properties:
        data:
          title: Элемент справочника моделей ПУ
          allOf:
            - $ref: "#/components/schemas/v1DictionaryDeviceModel"
      title: Ответ на запрос получения списка моделей приборов учета
    v1GetDictionaryMrfCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего элементов справочника Макрорегионы (МРФ)
      title: Ответ на запрос получения количества элементов справочника Макрорегионы
        (МРФ)
    v1GetDictionaryMrfListResponse:
      type: object
      properties:
        data:
          title: Элемент справочника Макрорегионы (МРФ)
          allOf:
            - $ref: "#/components/schemas/v1DictionaryMrf"
      title: Ответ на запрос получения элементов справочника Макрорегионы (МРФ)
    v1GetDictionaryRfCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего элементов справочника Регионы (РФ)
      title: Ответ на запрос получения количества элементов справочника Регионы (РФ)
    v1GetDictionaryRfListResponse:
      type: object
      properties:
        data:
          title: Элемент справочника Регионы (РФ)
          allOf:
            - $ref: "#/components/schemas/v1DictionaryRf"
      title: Ответ на запрос получения элементов справочника Регионы (РФ)
    v1GetMetricPointCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего ТУ
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetMetricPointCountResponseError"
      title: Ответ на запрос получения количества ТУ
    v1GetMetricPointCountResponseError:
      type: object
      properties:
        metricPointFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1MetricPointFilterValidationError"
      title: Ошибка запроса получения количества ТУ
    v1GetMetricPointListResponse:
      type: object
      properties:
        data:
          title: Точка учета
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPoint"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetMetricPointListResponseError"
      title: Ответ на запрос получения списка ТУ
    v1GetMetricPointListResponseError:
      type: object
      properties:
        metricPointFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1MetricPointFilterValidationError"
        metricPointPagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1MetricPointPagingValidationError"
      title: Ошибка запроса получения списка ТУ
    v1GetMetricPointResponse:
      type: object
      properties:
        data:
          title: Точка учета
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPoint"
      title: Ответ на запрос получения ТУ
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1GetTemplateDeviceCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего шаблонов приборов учета
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetTemplateDeviceCountResponseError"
      title: Ответ на запрос получения количества шаблонов приборов учета
    v1GetTemplateDeviceCountResponseError:
      type: object
      properties:
        templateDeviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1TemplateDeviceFilterValidationError"
      title: Ошибка запроса получения количества шаблонов приборов учета
    v1GetTemplateDeviceListResponse:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevice"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetTemplateDeviceListResponseError"
      title: Ответ на запрос получения списка шаблонов приборов учета
    v1GetTemplateDeviceListResponseError:
      type: object
      properties:
        templateDeviceFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1TemplateDeviceFilterValidationError"
        templateDevicePagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePagingValidationError"
      title: Ошибка запроса получения списка шаблонов приборов учета
    v1GetTemplateDeviceResponse:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevice"
      title: Ответ на запрос получения шаблона ПУ
    v1GetTemplateIndicatorCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего шаблонов индикаторов
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetTemplateIndicatorCountResponseError"
      title: Ответ на запрос получения количества шаблонов индикаторов
    v1GetTemplateIndicatorCountResponseError:
      type: object
      properties:
        templateIndicatorFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorFilterValidationError"
      title: Ошибка запроса получения количества шаблонов индикаторов
    v1GetTemplateIndicatorListResponse:
      type: object
      properties:
        data:
          title: Шаблон индикатора
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicator"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetTemplateIndicatorListResponseError"
      title: Ответ на запрос получения списка шаблонов индикаторов
    v1GetTemplateIndicatorListResponseError:
      type: object
      properties:
        templateIndicatorFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorFilterValidationError"
        templateIndicatorPagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorPagingValidationError"
      title: Ошибка запроса получения списка шаблонов индикаторов
    v1GetTemplateIndicatorResponse:
      type: object
      properties:
        data:
          title: Шаблон ндикатора
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicator"
      title: Ответ на запрос получения шаблона индикатора
    v1Indicator:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        deviceId:
          type: integer
          format: int32
          title: Идентификатор прибора учета(ПУ)
        title:
          type: string
          title: Название
        unitType:
          title: Тип единицы измерения, в которой интерпретировано, получаемое измерение
          allOf:
            - $ref: "#/components/schemas/v1IndicatorUnitType"
        signType:
          title: Тип измерения
          allOf:
            - $ref: "#/components/schemas/v1IndicatorSignType"
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        isIndividual:
          type: boolean
          title: Флаг видимости индикатора для клиента
        compatibilityCode:
          type: string
          title: Код для совместимости с поставщиком метрик
        archiveType:
          title: Тип архивности показаний
          allOf:
            - $ref: "#/components/schemas/v1IndicatorArchiveType"
        presentationUnitType:
          title: >-
            Тип единицы измерения для отображения измерения.

            При UNIT_TYPE_UNKNOWN отображаемые единицы совпадают с единицами источников значений, преобразования единиц не происходит.

            Применяется после коэффициента
          allOf:
            - $ref: "#/components/schemas/v1IndicatorUnitType"
        coefficient:
          type: number
          format: float
          title: >-
            Коэффициент, на который умножается отображаемое значение.

            Применяется перед преобразованием единиц измерений к presentation_unit_type и после применения поправки
        shift:
          type: number
          format: float
          title: |-
            Величина поправки к отображаемому значению.
            Применяется перед применением коэффициента
        roundDecimalDigits:
          type: integer
          format: int32
          title: >-
            Количество возвращаемых десятичных знаков при округлении итогового
            значения.

            При пустом параметре округления не происходит.

            Применяется после преобразования единиц измерения
        metricExpectedFreq:
          type: integer
          format: int32
          title: Ожидаемая частота поступления показаний в днях
        channelNumber:
          type: string
          title: Номер канала для многоканального ПУ
        channelOrder:
          type: integer
          format: int32
          title: Порядковый номер канала для многоканального ПУ
        vendorType:
          title: Посредник получения показаний
          allOf:
            - $ref: "#/components/schemas/v1IndicatorVendorType"
      title: Индикатор
      required:
        - deviceId
        - title
        - unitType
        - signType
    v1IndicatorArchiveType:
      type: string
      enum:
        - CURRENT
        - HALFHOUR
        - HOUR
        - DAY
        - MONTH
        - YEAR
      description: |-
        - ARCHIVE_TYPE_UNKNOWN: Значение не указано
         - CURRENT: Текущие показания
         - HALFHOUR: За 30 мин
         - HOUR: За час
         - DAY: За сутки
         - MONTH: За месяц
         - YEAR: За год
      title: |-
        Справочник типа архивности показаний.
        Используется для указания за какой период произошло измерение.
        По умолчанию CURRENT
    v1IndicatorFilter:
      type: object
      properties:
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По списку приборов учета
        signTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1IndicatorSignType"
          title: По типам измерений
        deviceSerialNumbers:
          type: array
          items:
            type: string
          title: По серийным номерам привязанных ПУ
        buildingIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам объектов строительства, привязанных ТУ
        roomNumbers:
          type: array
          items:
            type: string
          title: По Номерам помещений, привязанных ТУ
        roomLabels:
          type: array
          items:
            type: string
          title: По Лейблам помещений, привязанных ТУ
        metricPointIds:
          type: array
          items:
            type: string
          title: По ID привязанных точек учета
        indicatorVendorTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1IndicatorVendorType"
          title: По посреднику получения показаний
      title: >-
        Фильтр для запроса индикаторов.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1IndicatorFilterValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1IndicatorPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1IndicatorPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1IndicatorPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация индикаторов
    v1IndicatorPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1IndicatorPagingOrderByType:
      type: string
      enum:
        - ID
        - SIGN_TYPE
        - DEVICE_ID
        - CREATED_AT
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По уникальному ключу
         - SIGN_TYPE: По типу измерений
         - DEVICE_ID: По Прибору учета
         - CREATED_AT: По Дате создания
      title: Справочник типов сортировки
    v1IndicatorPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1IndicatorPagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1IndicatorPagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по индикаторам.
        Эти проверки выполняются до обращения в базу данных
    v1IndicatorPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1IndicatorPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1IndicatorSignType:
      type: string
      enum:
        - ABSOLUTE_DS
        - ABSOLUTE_RC
        - INTERVAL_DS
        - INTERVAL_RC
        - CURRENT_DS
        - CURRENT_RS
        - VOLUME
        - PARAMETER
        - FLAG
      description: |-
        - SIGN_TYPE_UNKNOWN: Значение не указано
         - ABSOLUTE_DS: Абсолютный показатель
         - ABSOLUTE_RC: Абсолютный расход ресурса
         - INTERVAL_DS: Интервальный показатель состояния
         - INTERVAL_RC: Интервальный расход ресурса
         - CURRENT_DS: Текущее состояние
         - CURRENT_RS: Текущее состояние ресурса
         - VOLUME: Объём
         - PARAMETER: Параметр конфигурации
         - FLAG: Флаг состояния
      title: Справочник типов измерений
    v1IndicatorUnitType:
      type: string
      enum:
        - PERCENT
        - C
        - WT
        - GKAL
        - VALUE
        - KWH
        - KG_CM2
        - KGF_CM2
        - M3
        - M3_H
        - MPA
        - MS
        - BOOLEAN
        - T
        - T_H
        - H
        - NON_MEASURABLE
        - IMP
        - J
        - KJ
        - GJ
        - WTH
        - KWT
        - MIN
        - S
      description: |-
        - UNIT_TYPE_UNKNOWN: Значение не указано
         - PERCENT: Процент
         - C: Градус по Цельсию
         - WT: Ватт
         - GKAL: Гигакалория
         - VALUE: Количество
         - KWH: Киловaтт-час
         - KG_CM2: Килограмм на квадратный сантиметр
         - KGF_CM2: Килограмм-сила на квадратный сантиметр
         - M3: Кубический метр
         - M3_H: Кубический метр в час
         - MPA: Мегапаскаль
         - MS: Миллисекунда
         - BOOLEAN: Флаг состояния
         - T: Тонна
         - T_H: Тонна в час
         - H: Час
         - NON_MEASURABLE: Безразмерная величина
         - IMP: Импульс
         - J: Джоуль
         - KJ: Килоджоуль
         - GJ: Гигаджоуль
         - WTH: Ватт-час
         - KWT: Киловатт
         - MIN: Минута
         - S: Секунда
      title: Справочник типов единиц измерений
    v1IndicatorValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1IndicatorVendorType:
      type: string
      enum:
        - ENVIRO
        - LARTECH
        - RTK
      description: |-
        - VENDOR_TYPE_UNKNOWN: Значение не указано
         - ENVIRO: Энвайро
         - LARTECH: Лартех
         - RTK: РТК
      title: Посредники получения показаний
    v1MetricPointFilter:
      type: object
      properties:
        deviceMetricPointMetricTypes:
          type: array
          items:
            $ref: "#/components/schemas/DeviceMetricPointMetricType"
          title: По типу энергоресурса
        deviceMetricPointStatusTypes:
          type: array
          items:
            $ref: "#/components/schemas/DeviceMetricPointStatusType"
          title: По типу статуса
        roomNumbers:
          type: array
          items:
            type: string
          title: По Номеру помещения
        roomLabels:
          type: array
          items:
            type: string
          title: По Лейблу помещения
        buildingIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам объекта строительства
        fiasIds:
          type: array
          items:
            type: string
          title: По ФИАС
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По ID привязанных через индикаторы ПУ
        deviceSerialNumbers:
          type: array
          items:
            type: string
          title: По серийным номерам привязанных через индикаторы ПУ
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
      title: >-
        Фильтр для запроса точек учета.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1MetricPointFilterValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1MetricPointPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1MetricPointPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1MetricPointPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация
    v1MetricPointPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1MetricPointPagingOrderByType:
      type: string
      enum:
        - ID
        - METRIC_TYPE
        - STATUS_TYPE
        - ROOM_NUMBER
        - ROOM_LABEL
        - BUILDING_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - METRIC_TYPE: По типу энергоресурса
         - STATUS_TYPE: По типу статуса
         - ROOM_NUMBER: По Номеру помещения
         - ROOM_LABEL: По Лейблу помещения
         - BUILDING_ID: По идентификатору объекта строительства
      title: Справочник типов значений сортировки
    v1MetricPointPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1MetricPointPagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1MetricPointPagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по ТУ.
        Эти проверки выполняются до обращения в базу данных
    v1MetricPointPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1MetricPointPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1PostBuildingFullDuplexResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Идентификатор запроса
        upsertBuildingEvent:
          title: Событие создания/обновления объекта строительства
          allOf:
            - $ref: "#/components/schemas/PostBuildingFullDuplexResponseUpsertBuildingEvent"
        removeBuildingEvent:
          title: Событие удаления объекта строительства
          allOf:
            - $ref: "#/components/schemas/PostBuildingFullDuplexResponseRemoveBuildingEvent"
      title: Событие создания/изменения объекта строительства на сервера
      required:
        - requestId
    v1PostBuildingRequest:
      type: object
      properties:
        data:
          title: Объект строительства
          allOf:
            - $ref: "#/components/schemas/v1Building"
      title: Запрос сохранения объекта строительства
      required:
        - data
    v1PostBuildingResponse:
      type: object
      properties:
        data:
          title: Объект строительства
          allOf:
            - $ref: "#/components/schemas/v1Building"
      title: Ответ на запрос сохранения объекта строительства
    v1PostDeviceFullDuplexResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Идентификатор запроса
        postDevice:
          title: Измененние ПУ на сервере
          allOf:
            - $ref: "#/components/schemas/v1PostDeviceResponse"
      title: Событие изменения ПУ на сервера
      required:
        - requestId
    v1PostDeviceIndicatorRequest:
      type: object
      properties:
        data:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Indicator"
      title: Запрос сохранения индикатора
      required:
        - data
    v1PostDeviceIndicatorResponse:
      type: object
      properties:
        data:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Indicator"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostDeviceIndicatorResponseError"
      title: Ответ на запрос сохранения индикатора
    v1PostDeviceIndicatorResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1IndicatorValidationError"
      title: Ошибка запроса сохранения индикатора
    v1PostDeviceReplaceRequest:
      type: object
      properties:
        replaceDeviceId:
          type: integer
          format: int32
          title: Идентификатор заменяемого прибора учета
        device:
          title: Создаваемый прибор учета
          allOf:
            - $ref: "#/components/schemas/v1Device"
      title: Запрос замены прибора учета
      required:
        - replaceDeviceId
        - device
    v1PostDeviceReplaceResponse:
      type: object
      properties:
        data:
          title: Созданный на замену ПУ
          allOf:
            - $ref: "#/components/schemas/v1Device"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostDeviceReplaceResponseError"
      title: Ответ на замену прибора учета
    v1PostDeviceReplaceResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1DeviceValidationError"
        replaceDeviceNotFound:
          title: Не найден заменяемый ПУ
          allOf:
            - $ref: "#/components/schemas/ErrorReplaceDeviceNotFound"
        createIndicatorsFail:
          title: Не удалось создать индикаторы нового ПУ
          allOf:
            - $ref: "#/components/schemas/ErrorCreateIndicatorsFail"
        multiLinkedMetricPoint:
          title: Попытка замены ПУ, привязанного ко многим ТУ
          allOf:
            - $ref: "#/components/schemas/ErrorMultiLinkedMetricPoint"
        wrongBuilding:
          title: Заменяющий ПУ не привязан к дому заменяемого ПУ
          allOf:
            - $ref: "#/components/schemas/ErrorWrongBuilding"
        metricPointNotFound:
          title: Заменяемый ПУ не привязан к ТУ
          allOf:
            - $ref: "#/components/schemas/ErrorMetricPointNotFound"
      title: Ошибка замены ПУ
    v1PostDeviceRequest:
      type: object
      properties:
        device:
          title: Прибор учета
          allOf:
            - $ref: "#/components/schemas/v1Device"
      title: Запрос сохранения ПУ
      required:
        - device
    v1PostDeviceResponse:
      type: object
      properties:
        data:
          title: ПУ
          allOf:
            - $ref: "#/components/schemas/v1Device"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostDeviceResponseError"
      title: Ответ на изменение ПУ на сервере
    v1PostDeviceResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1DeviceValidationError"
      title: Ошибка запроса сохранения ПУ
    v1PostDictionaryDeviceModelRequest:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1DictionaryDeviceModel"
      title: Запрос сохранения модели ПУ
      required:
        - data
    v1PostDictionaryDeviceModelResponse:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1DictionaryDeviceModel"
      title: Ответ на запрос сохранения модели ПУ
    v1PostMetricPointRequest:
      type: object
      properties:
        data:
          title: Точка учета
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPoint"
      title: Запрос сохранения ТУ
      required:
        - data
    v1PostMetricPointResponse:
      type: object
      properties:
        data:
          title: Точка учета
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPoint"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostMetricPointResponseError"
      title: Ответ на запрос сохранения ТУ
    v1PostMetricPointResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/telemetry_controlv1ValidationError"
      title: Ошибка запроса сохранения ТУ
    v1PostResourceFullDuplexResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Идентификатор запроса
        upsertResourceEvent:
          title: Событие создания/обновления ресурса
          allOf:
            - $ref: "#/components/schemas/PostResourceFullDuplexResponseUpsertResourceEvent"
        removeResourceEvent:
          title: Событие удаления ресурса
          allOf:
            - $ref: "#/components/schemas/PostResourceFullDuplexResponseRemoveResourceEvent"
      title: Событие создания/изменения ресурса
      required:
        - requestId
    v1PostTemplateDeviceRequest:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevice"
      title: Запрос сохранения шаблона ПУ
      required:
        - data
    v1PostTemplateDeviceResponse:
      type: object
      properties:
        data:
          title: Шаблон ПУ
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevice"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostTemplateDeviceResponseError"
      title: Ответ на запрос сохранения шаблона ПУ
    v1PostTemplateDeviceResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1TemplateDeviceValidationError"
      title: Ошибка запроса сохранения шаблона ПУ
    v1PostTemplateIndicatorRequest:
      type: object
      properties:
        data:
          title: Шаблон индикатора
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicator"
      title: Запрос сохранения шаблона индикатора
      required:
        - data
    v1PostTemplateIndicatorResponse:
      type: object
      properties:
        data:
          title: Шаблон индикатора
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicator"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostTemplateIndicatorResponseError"
      title: Ответ на запрос сохранения шаблона индикатора
    v1PostTemplateIndicatorResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorValidationError"
      title: Ошибка запроса сохранения шаблона индикатора
    v1PutBuildingGroupAttachResponse:
      type: object
      title: Ответ на запрос сохранения связи объекта строительства и группы
        пользователя
    v1PutBuildingGroupDetachResponse:
      type: object
      title: Ответ на запрос удаления связи объекта строительства и группы
        пользователя
    v1PutDeviceGroupAttachResponse:
      type: object
      title: Ответ на запрос сохранения связи ПУ и группы пользователя
    v1PutDeviceGroupDetachResponse:
      type: object
      title: Ответ на запрос удаления связи ПУ и группы пользователя
    v1PutDeviceIndicatorMetricPointAttachResponse:
      type: object
      title: Ответ на запрос сохранения связи индикатора и ТУ
    v1PutDeviceIndicatorMetricPointDetachResponse:
      type: object
      title: Ответ на запрос удаления связи индикатора и ТУ
    v1Resource:
      type: object
      properties:
        building:
          title: Объект строительства
          allOf:
            - $ref: "#/components/schemas/v1Building"
        device:
          title: Идентификатор ПУ
          allOf:
            - $ref: "#/components/schemas/v1Device"
        metricPoint:
          title: Точка учета
          allOf:
            - $ref: "#/components/schemas/DeviceMetricPoint"
        indicator:
          title: Индикатор
          allOf:
            - $ref: "#/components/schemas/v1Indicator"
        indicatorMetricPoint:
          title: Связка индикатора и ТУ
          allOf:
            - $ref: "#/components/schemas/v1DeviceIndicatorMetricPoint"
      title: Ресурс
    v1ResourceId:
      type: object
      properties:
        buildingId:
          type: integer
          format: int32
          title: Идентификатор объекта строительства
        deviceId:
          type: integer
          format: int32
          title: Идентификатор ПУ
        metricPointId:
          type: string
          title: Идентификатор ТУ
        indicatorId:
          type: integer
          format: int32
          title: Идентификатор индикатора
        indicatorMetricPoint:
          title: Связка индикатора и ТУ
          allOf:
            - $ref: "#/components/schemas/v1DeviceIndicatorMetricPoint"
      title: Идентификатор ресурса
    v1TemplateDevice:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении
          readOnly: true
        metricType:
          title: Тип энергоресурса
          allOf:
            - $ref: "#/components/schemas/v1TemplateDeviceMetricType"
        modelId:
          type: integer
          format: int32
          title: ID Модели счетчика
        indicatorTemplateIds:
          type: array
          items:
            type: integer
            format: int32
          title: Шаблоны индикаторов
        planType:
          title: |-
            Тип тарифного плана.
            Для ПУ электроэнергии
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePlanType"
        indicatorVendorType:
          title: Посредник получения показаний
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorVendorType"
      title: Шаблон ПУ
      required:
        - metricType
    v1TemplateDeviceFilter:
      type: object
      properties:
        metricTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateDeviceMetricType"
          title: По типу энергоресурса
        modelIds:
          type: array
          items:
            type: integer
            format: int32
          title: По ID модели счетчика
        planTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateDevicePlanType"
          title: По типу тарифного плана. Для ПУ электроэнергии
        indicatorVendorTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateIndicatorVendorType"
          title: По посреднику получения показаний
      title: >-
        Фильтр для запроса шаблонов приборов учета.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1TemplateDeviceFilterValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1TemplateDeviceMetricType:
      type: string
      enum:
        - HOT_WATER
        - COLD_WATER
        - HEAT
        - GAS
        - ELECTRICITY
      description: |-
        - METRIC_TYPE_UNKNOWN: Значение не указано
         - HOT_WATER: Горячая вода
         - COLD_WATER: Холодная вода
         - HEAT: Теплоэнергия
         - GAS: Газ
         - ELECTRICITY: Электроэнергия
      title: Справочние типов энергоресурсов
    v1TemplateDevicePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация
    v1TemplateDevicePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1TemplateDevicePagingOrderByType:
      type: string
      enum:
        - ID
        - METRIC_TYPE
        - MODEL
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - METRIC_TYPE: По типу энергоресурса
         - MODEL: По модели счетчика
      title: Справочник типов значений сортировки
    v1TemplateDevicePagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1TemplateDevicePagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по шаблонам ПУ.
        Эти проверки выполняются до обращения в базу данных
    v1TemplateDevicePagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1TemplateDevicePagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1TemplateDevicePlanType:
      type: string
      enum:
        - SINGLE
        - DOUBLE
        - TRIPLE
      description: |-
        - PLAN_TYPE_UNKNOWN: Значение не указано
         - SINGLE: Однотарифный
         - DOUBLE: Двухтарифный
         - TRIPLE: Трёхтарифный
      title: Тип тарифного плана
    v1TemplateDeviceValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1TemplateIndicator:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        createdAt:
          type: string
          format: date-time
          title: Дата создания
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении
          readOnly: true
        title:
          type: string
          title: Шаблонное название индикатора
        unitType:
          title: Тип единицы измерения, в которой интерпретировано, получаемое измерение
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorUnitType"
        signType:
          title: Тип измерения
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorSignType"
        archiveType:
          title: Тип архивности показаний
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorArchiveType"
        presentationUnitType:
          title: >-
            Тип единицы измерения для отображения измерения.

            При UNIT_TYPE_UNKNOWN отображаемые единицы совпадают с единицами источников значений, преобразования единиц не происходит.

            Применяется после коэффициента
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorUnitType"
        compatibilityCode:
          type: string
          title: Код для совместимости с поставщиком метрик
        isIndividual:
          type: boolean
          title: Флаг видимости индикатора для клиента ФЛ
        coefficient:
          type: number
          format: float
          title: >-
            Коэффициент, на который умножается отображаемое значение.

            Применяется перед преобразованием единиц измерений к presentation_unit_type и после применения поправки
        shift:
          type: number
          format: float
          title: |-
            Величина поправки к отображаемому значению.
            Применяется перед применением коэффициента
        roundDecimalDigits:
          type: integer
          format: int32
          title: >-
            Количество возвращаемых десятичных знаков при округлении итогового
            значения.

            При пустом параметре округления не происходит.

            Применяется после преобразования единиц измерения
        metricExpectedFreq:
          type: integer
          format: int32
          title: Ожидаемая частота поступления показаний в днях
        indicatorVendorType:
          title: Посредник получения показаний
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorVendorType"
      title: Шаблон индикатора
      required:
        - title
        - unitType
        - signType
    v1TemplateIndicatorArchiveType:
      type: string
      enum:
        - CURRENT
        - HALFHOUR
        - HOUR
        - DAY
        - MONTH
        - YEAR
      description: |-
        - ARCHIVE_TYPE_UNKNOWN: Значение не указано
         - CURRENT: Текущие показания
         - HALFHOUR: За 30 мин
         - HOUR: За час
         - DAY: За суток
         - MONTH: За месяц
         - YEAR: За год
      title: |-
        Справочник типа архивности показаний.
        Используется для указания за какой период произошло измерение.
        По умолчанию CURRENT
    v1TemplateIndicatorFilter:
      type: object
      properties:
        signTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateIndicatorSignType"
          title: По типу измерений
        archiveTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateIndicatorArchiveType"
          title: По типу архивности показаний
        isIndividual:
          type: boolean
          title: По флагу видимости индикатора для клиента ФЛ
        title:
          type: string
          title: |-
            По шаблонному названию индикатора.
            Поиск производится по подстроке
        indicatorVendorTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1TemplateIndicatorVendorType"
          title: По посреднику получения показаний
      title: >-
        Фильтр для запроса шаблонов индикаторов.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1TemplateIndicatorFilterValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1TemplateIndicatorPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано) то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация
    v1TemplateIndicatorPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1TemplateIndicatorPagingOrderByType:
      type: string
      enum:
        - ID
        - SIGN_TYPE
        - ARCHIVE_TYPE
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - SIGN_TYPE: По типу измерений
         - ARCHIVE_TYPE: По типу архивности показаний
      title: Справочник типов значений сортировки
    v1TemplateIndicatorPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorPagingValidationErrorLimitInvali\
                d"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1TemplateIndicatorPagingValidationErrorOffsetInval\
                id"
      title: |-
        Ошибка валидации постраничной пагинации по шаблонам индикатора.
        Эти проверки выполняются до обращения в базу данных
    v1TemplateIndicatorPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1TemplateIndicatorPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1TemplateIndicatorSignType:
      type: string
      enum:
        - ABSOLUTE_DS
        - ABSOLUTE_RC
        - INTERVAL_DS
        - INTERVAL_RC
        - CURRENT_DS
        - CURRENT_RS
        - VOLUME
        - PARAMETER
        - FLAG
      description: |-
        - SIGN_TYPE_UNKNOWN: Значение не указано
         - ABSOLUTE_DS: Абсолютный показатель
         - ABSOLUTE_RC: Абсолютный расход ресурса
         - INTERVAL_DS: Интервальный показатель состояния
         - INTERVAL_RC: Интервальный расход ресурса
         - CURRENT_DS: Текущее состояние
         - CURRENT_RS: Текущее состояние ресурса
         - VOLUME: Объём
         - PARAMETER: Параметр конфигурации
         - FLAG: Флаг состояния
      title: Справочник типов измерений
    v1TemplateIndicatorUnitType:
      type: string
      enum:
        - PERCENT
        - C
        - WT
        - GKAL
        - VALUE
        - KWH
        - KG_CM2
        - KGF_CM2
        - M3
        - M3_H
        - MPA
        - MS
        - BOOLEAN
        - T
        - T_H
        - H
        - NON_MEASURABLE
        - IMP
        - J
        - KJ
        - GJ
        - WTH
        - KWT
        - MIN
        - S
      description: |-
        - UNIT_TYPE_UNKNOWN: Значение не указано
         - PERCENT: Процент
         - C: Градус по Цельсию
         - WT: Ватт
         - GKAL: Гигакалория
         - VALUE: Количество
         - KWH: Киловaтт-час
         - KG_CM2: Килограмм на квадратный сантиметр
         - KGF_CM2: Килограмм-сила на квадратный сантиметр
         - M3: Кубический метр
         - M3_H: Кубический метр в час
         - MPA: Мегапаскаль
         - MS: Миллисекунда
         - BOOLEAN: Флаг состояния
         - T: Тонна
         - T_H: Тонна в час
         - H: Час
         - NON_MEASURABLE: Безразмерная величина
         - IMP: Импульс
         - J: Джоуль
         - KJ: Килоджоуль
         - GJ: Гигаджоуль
         - WTH: Ватт-час
         - KWT: Киловатт
         - MIN: Минута
         - S: Секунда
      title: Справочник типов единиц измерений
    v1TemplateIndicatorValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования protobuf
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
    v1TemplateIndicatorVendorType:
      type: string
      enum:
        - ENVIRO
        - LARTECH
        - RTK
      description: |-
        - VENDOR_TYPE_UNKNOWN: Значение не указано
         - ENVIRO: Энвайро
         - LARTECH: Лартех
         - RTK: РТК
      title: Посредники получения показаний
  securitySchemes:
    bearerHttp:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth2-staging.k8s.key.rt.ru/oauth2/token
          scopes:
            telemetry_control:edit: Предоставляет полный доступ в сервис telemetry_control
            telemetry_control:read: Предоставляет доступ на чтение данных из сервиса telemetry_control
servers:
  - url: https://keyapis-staging.k8s.key.rt.ru
    description: staging
  - url: https://{feature}.k8s.key.rt.ru/
    description: https feature
    variables:
      feature:
        default: ""
        description: Feature name
  - url: http://{feature}.k8s.key.rt.ru/
    description: http feature
    variables:
      feature:
        default: ""
        description: Feature name
  - url: https://localhost:3001
    description: localhost
  - url: https://keyapis.key.rt.ru
    description: production
