openapi: 3.0.3
info:
  title: telemetry_alerting
  version: 1.0.1780033454859
  description: Сервис telemetry_alerting
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: trigger(auth)
    description: Методы trigger. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
paths:
  /telemetry_alerting/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_alerting/api/v1/trigger:
    post:
      summary: |-
        Метод сохранения триггера.
        Поддерживает создание и обновление.
        Метод доступен для: service, application(telemetry:edit)
      operationId: TriggerService_PostTrigger
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTriggerResponse"
        "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/v1PostTriggerRequest"
        required: true
      tags:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting: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_alerting/api/v1/trigger/alert/count:
    get:
      summary: >-
        Метод получения количества алертов.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTriggerAlertCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTriggerAlertCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.triggerSeverityTypes
          description: |-
            По важности триггера

             - SEVERITY_TYPE_UNKNOWN: Значение не указано
             - CRITICAL: Проблема высшего приоритета.
            Максимальное оповещение
             - WARNING: Проблема среднего приоритета.
            Оповещение по внутренним каналам
             - INFO: Проблема не влияет на бизнес-пользователя.
            Отражается во внутренних интерфейсах
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CRITICAL
                - WARNING
                - INFO
        - name: filter.fiasIds
          description: По ФИАСам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.tags
          description: По тэгам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - 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.deviceModels
          description: По моделям устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceTypes
          description: >-
            По типам устройств

             - DEVICE_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.deviceParentIds
          description: По идентификаторам родительских устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.isDisabled
          description: По признаку активности
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.afterRaisedAt
          description: От даты возникновения включительно (>=)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.beforeRaisedAt
          description: До даты возникновения (<)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.metricGroupingTypes
          description: >-
            По типам группировки метрик

             - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
             - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
             - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PARENT_ID
                - DEVICE_ID
        - name: filter.triggerIds
          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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
  /telemetry_alerting/api/v1/trigger/alert/list:
    get:
      summary: >-
        Метод получения списка алертов.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTriggerAlertList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTriggerAlertListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTriggerAlertListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.triggerSeverityTypes
          description: |-
            По важности триггера

             - SEVERITY_TYPE_UNKNOWN: Значение не указано
             - CRITICAL: Проблема высшего приоритета.
            Максимальное оповещение
             - WARNING: Проблема среднего приоритета.
            Оповещение по внутренним каналам
             - INFO: Проблема не влияет на бизнес-пользователя.
            Отражается во внутренних интерфейсах
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CRITICAL
                - WARNING
                - INFO
        - name: filter.fiasIds
          description: По ФИАСам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.tags
          description: По тэгам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - 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.deviceModels
          description: По моделям устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceTypes
          description: >-
            По типам устройств

             - DEVICE_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.deviceParentIds
          description: По идентификаторам родительских устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.isDisabled
          description: По признаку активности
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.afterRaisedAt
          description: От даты возникновения включительно (>=)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.beforeRaisedAt
          description: До даты возникновения (<)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.metricGroupingTypes
          description: >-
            По типам группировки метрик

             - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
             - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
             - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PARENT_ID
                - DEVICE_ID
        - name: filter.triggerIds
          description: По идентификаторам триггеров
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ORDER_BY_TYPE_RAISED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - RAISED_AT: По дате возникновения
             - TRIGGER_ID: По идентификатору триггера
             - TITLE: По заголовку триггера
             - DISABLED: По флагу активности триггера
             - SEVERITY: По триггеру
          in: query
          required: false
          schema:
            type: string
            enum:
              - RAISED_AT
              - TRIGGER_ID
              - TITLE
              - DISABLED
              - SEVERITY
        - 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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
  "/telemetry_alerting/api/v1/trigger/alert/{id}":
    delete:
      summary: |-
        Удаление алерта.
        Метод удаляет только погашенный алерт (is_disabled=true).
        Удаление непогашенного вызовет ошибку.
        Метод доступен для: service, application(telemetry:edit)
      operationId: TriggerService_DeleteTriggerAlert
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteTriggerAlertResponse"
        "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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:edit
          bearerHttp: []
  "/telemetry_alerting/api/v1/trigger/alert/{id}/device/list":
    get:
      summary: >-
        Список устройств, вызвавших появление алерта.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTriggerAlertDeviceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTriggerAlertDeviceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTriggerAlertDeviceListResponse
        "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
        - name: filter.triggerSeverityTypes
          description: |-
            По важности триггера

             - SEVERITY_TYPE_UNKNOWN: Значение не указано
             - CRITICAL: Проблема высшего приоритета.
            Максимальное оповещение
             - WARNING: Проблема среднего приоритета.
            Оповещение по внутренним каналам
             - INFO: Проблема не влияет на бизнес-пользователя.
            Отражается во внутренних интерфейсах
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CRITICAL
                - WARNING
                - INFO
        - name: filter.fiasIds
          description: По ФИАСам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.tags
          description: По тэгам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - 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.deviceModels
          description: По моделям устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceTypes
          description: >-
            По типам устройств

             - DEVICE_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.deviceParentIds
          description: По идентификаторам родительских устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.isDisabled
          description: По признаку активности
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.afterRaisedAt
          description: От даты возникновения включительно (>=)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.beforeRaisedAt
          description: До даты возникновения (<)
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filter.metricGroupingTypes
          description: >-
            По типам группировки метрик

             - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
             - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
             - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PARENT_ID
                - DEVICE_ID
        - name: filter.triggerIds
          description: По идентификаторам триггеров
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ORDER_BY_TYPE_RAISED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - RAISED_AT: По дате возникновения
             - TRIGGER_ID: По идентификатору триггера
             - TITLE: По заголовку триггера
             - DISABLED: По флагу активности триггера
             - SEVERITY: По триггеру
          in: query
          required: false
          schema:
            type: string
            enum:
              - RAISED_AT
              - TRIGGER_ID
              - TITLE
              - DISABLED
              - SEVERITY
        - 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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
  "/telemetry_alerting/api/v1/trigger/alert/{id}/disable":
    post:
      summary: >-
        Принудительное выключение алерта.

        Дата closed_at проставляется текущим временем.

        Флаг is_disabled проставляется true.

        Флаг is_manually_closed проставляется true.

        Можно принудительно выключать только алерты созданные по триггерам с атрибутом manually_unclosable=false.

        Метод доступен для: service, application(telemetry:edit)
      operationId: TriggerService_PostTriggerAlertDisable
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostTriggerAlertDisableResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор алерта
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: closingReason
          description: Причина принудительного закрытия, заполняется в момент
            принудительного закрытия
          in: query
          required: false
          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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:edit
          bearerHttp: []
  /telemetry_alerting/api/v1/trigger/count:
    get:
      summary: >-
        Метод получения количества триггеров.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTriggerCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTriggerCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.severityTypes
          description: |-
            По уровням критичности

             - SEVERITY_TYPE_UNKNOWN: Значение не указано
             - CRITICAL: Проблема высшего приоритета.
            Максимальное оповещение
             - WARNING: Проблема среднего приоритета.
            Оповещение по внутренним каналам
             - INFO: Проблема не влияет на бизнес-пользователя.
            Отражается во внутренних интерфейсах
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CRITICAL
                - WARNING
                - INFO
        - name: filter.tags
          description: По тэгам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - 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.deviceModels
          description: По моделям устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceTypes
          description: >-
            По типам устройств

             - DEVICE_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.metricGroupingTypes
          description: >-
            По типам группировки метрик

             - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
             - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
             - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PARENT_ID
                - DEVICE_ID
        - name: filter.isDisabled
          description: По признаку активности триггера
          in: query
          required: false
          schema:
            type: boolean
        - 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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
  /telemetry_alerting/api/v1/trigger/list:
    get:
      summary: >-
        Метод получения списка триггеров.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTriggerList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTriggerListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTriggerListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.severityTypes
          description: |-
            По уровням критичности

             - SEVERITY_TYPE_UNKNOWN: Значение не указано
             - CRITICAL: Проблема высшего приоритета.
            Максимальное оповещение
             - WARNING: Проблема среднего приоритета.
            Оповещение по внутренним каналам
             - INFO: Проблема не влияет на бизнес-пользователя.
            Отражается во внутренних интерфейсах
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CRITICAL
                - WARNING
                - INFO
        - name: filter.tags
          description: По тэгам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - 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.deviceModels
          description: По моделям устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceTypes
          description: >-
            По типам устройств

             - DEVICE_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.metricGroupingTypes
          description: >-
            По типам группировки метрик

             - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
             - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
             - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PARENT_ID
                - DEVICE_ID
        - name: filter.isDisabled
          description: По признаку активности триггера
          in: query
          required: false
          schema:
            type: boolean
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: SEVERITY

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

             - 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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
  "/telemetry_alerting/api/v1/trigger/{id}":
    get:
      summary: >-
        Чтение одного триггера.

        Метод доступен для: service, application(telemetry:read или telemetry:edit)
      operationId: TriggerService_GetTrigger
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetTriggerResponse"
        "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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:read
            - telemetry_alerting:edit
          bearerHttp: []
    delete:
      summary: |-
        Удаление триггера.
        Метод удаляет только отключенный триггер (is_disabled=true).
        Удаление неотключенного вызовет ошибку.
        При удалении триггера удаляются и все его алерты.
        Метод доступен для: service, application(telemetry:edit)
      operationId: TriggerService_DeleteTrigger
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteTriggerResponse"
        "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:
        - trigger(auth)
      security:
        - oauth2:
            - telemetry_alerting:edit
          bearerHttp: []
components:
  schemas:
    TriggerAlert:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        triggerId:
          type: integer
          format: int32
          title: Породивший триггер
        fiasId:
          type: string
          title: ФИАС
        raisedAt:
          type: string
          format: date-time
          title: Время возникновения алерта
        isDisabled:
          type: boolean
          title: >-
            Признак погашенного алерта.

            Проставляется сервисом при no_alarm_checks_count >= success_threshold
        noAlarmChecksCount:
          type: integer
          format: int32
          title: >-
            Количество проверок триггера для атрибутов данного алерта, при
            которых не выполнился критерий триггера.

            Увеличивается у непогашенного алерта, если при очередной проверке нет срабатывания триггера с атрибутами данного алерта.

            При увеличении проставляется changed_at
        triggerMetricTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricType"
          title: Типы метрик, по которым были отфильтрованы метрики
        deviceModels:
          type: array
          items:
            type: string
          title: Модели устройств, по которым были отфильтрованы метрики
        triggerDeviceTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerDeviceType"
          title: Типы устройств, по которым были отфильтрованы метрики
        deviceParentId:
          type: integer
          format: int32
          title: Идентификаторы родительских устройств, по которому были сгруппированы
            метрики
        closedAt:
          type: string
          format: date-time
          title: |-
            Время погашения алерта.
            Пустой или отсутствует у непогашенного активного алерта
        isManuallyClosed:
          type: boolean
          title: Признак принудительного погашения алерта
        closingReason:
          type: string
          title: Причина принудительного закрытия, заполняется в момент принудительного
            закрытия
        triggerMetricGroupingType:
          title: Группировка метрик при вычислении критерия
          allOf:
            - $ref: "#/components/schemas/TriggerMetricGroupingType"
      title: Определение проблемы, сгенерированной по триггеру
      required:
        - triggerId
        - fiasId
        - raisedAt
        - isDisabled
        - noAlarmChecksCount
    TriggerCriteriaType:
      type: string
      enum:
        - METRICS_COUNT
        - DEVICE_PERCENT
        - METRICS_VALUE_DEVIATION
      description: >-
        - CRITERIA_TYPE_UNKNOWN: Значение не указано
         - METRICS_COUNT: Количество метрик меньше порога
         - DEVICE_PERCENT: Доля работающих устройств в группе меньше порога
         - METRICS_VALUE_DEVIATION: Превышение порога дисперсии значений показаний
      title: |-
        Справочник типов критерия триггера.
        Задает параметры критерия, правила поиска проблемы и генерации алерта
    TriggerDeviceType:
      type: string
      enum:
        - HUB
        - PULSE_COUNTER_RECORDER
        - PULSE_COUNTER_RECORDER_LR
        - METERING_DEVICE
        - INTERFACE_CONVERTER
        - M_BUS_HUB
        - COMMUNICATION_MODULE_LR
        - BASE_LR
      description: |-
        - DEVICE_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: Справочник типов ПУ
    TriggerFixedDaysOfMonth:
      type: object
      properties:
        startDay:
          type: integer
          format: int32
          title: |-
            Начало окна времени.
            Номер дня месяца, момент времени 00:00:00.000 UTC
        endDay:
          type: integer
          format: int32
          title: |-
            Конец окна времени.
            Номер дня месяца, момент времени 00:00:00.000 UTC
      title: |-
        Границы временного окна, в текущем или предыдущем месяце.
        Если end_day текущего месяца не наступил, то берем прошлый месяц
    TriggerMetricGroupingType:
      type: string
      enum:
        - PARENT_ID
        - DEVICE_ID
      description: >-
        - METRIC_GROUPING_TYPE_UNKNOWN: Значение не указано
         - PARENT_ID: Признак группировки метрик по идентификаторам родительского устройства(идентификатор хаба, проксирующего прибор учета)
         - DEVICE_ID: Признак группировки метрик по идентификатору устройства(устройство, с которого получена метрика)
      title: Типы группировок метрик при вычислении критерия
    TriggerMetricType:
      type: string
      enum:
        - HOT_WATER
        - COLD_WATER
        - HEAT
        - GAS
        - ELECTRICITY
      description: |-
        - METRIC_TYPE_UNKNOWN: Значение не указано
         - HOT_WATER: Горячая вода
         - COLD_WATER: Холодная вода
         - HEAT: Теплоэнергия
         - GAS: Газ
         - ELECTRICITY: Электроэнергия
      title: Справочник типов энергоресурсов, собираемых ТУ
    TriggerPeriodType:
      type: string
      enum:
        - DAY
        - MONTH
      description: |-
        - PERIOD_TYPE_UNKNOWN: Значение не указано
         - DAY: День
         - MONTH: Месяц
      title: Справочник типов периодов контроля триггера
    TriggerSeverityType:
      type: string
      enum:
        - CRITICAL
        - WARNING
        - INFO
      description: |-
        - SEVERITY_TYPE_UNKNOWN: Значение не указано
         - CRITICAL: Проблема высшего приоритета.
        Максимальное оповещение
         - WARNING: Проблема среднего приоритета.
        Оповещение по внутренним каналам
         - INFO: Проблема не влияет на бизнес-пользователя.
        Отражается во внутренних интерфейсах
      title: Справочник типов уровней критичности
    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: Ошибка транспортного слоя
    v1AlertDevice:
      type: object
      properties:
        alertId:
          type: integer
          format: int32
          title: Идентификатор алерта
        deviceId:
          type: integer
          format: int32
          title: Идентификатор устройства
      title: Факты сработки алерта на устройствах
      required:
        - alertId
        - deviceId
    v1DeleteTriggerAlertResponse:
      type: object
      title: Ответ на запрос удаление алерта
    v1DeleteTriggerResponse:
      type: object
      title: Ответ на запрос удаление триггера
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1GetTriggerAlertCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего записей
      title: Ответ на запрос получения количества записей
    v1GetTriggerAlertDeviceListResponse:
      type: object
      properties:
        data:
          title: Факт сработки триггера
          allOf:
            - $ref: "#/components/schemas/v1AlertDevice"
      title: Ответ на запрос списка устройств, вызвавших появление алерта
    v1GetTriggerAlertListResponse:
      type: object
      properties:
        data:
          title: Алерт
          allOf:
            - $ref: "#/components/schemas/TriggerAlert"
      title: Ответ на запрос получения списка записей
    v1GetTriggerCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего записей
      title: Ответ на запрос получения количества записей
    v1GetTriggerListResponse:
      type: object
      properties:
        data:
          title: Триггер
          allOf:
            - $ref: "#/components/schemas/v1Trigger"
      title: Ответ на запрос получения списка записей
    v1GetTriggerResponse:
      type: object
      properties:
        data:
          title: Триггер
          allOf:
            - $ref: "#/components/schemas/v1Trigger"
      title: Ответ на чтение триггера
    v1PostTriggerAlertDisableResponse:
      type: object
      title: Ответ на запрос погашение алерта
    v1PostTriggerRequest:
      type: object
      properties:
        data:
          title: Триггер, который хотим создать или обновить
          allOf:
            - $ref: "#/components/schemas/v1Trigger"
      title: Запрос на создание триггера
      required:
        - data
    v1PostTriggerResponse:
      type: object
      properties:
        data:
          title: Триггер, созданный или обновленный
          allOf:
            - $ref: "#/components/schemas/v1Trigger"
      title: Ответ на запрос сохранения триггера
    v1Trigger:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        title:
          type: string
          title: Название триггера
        criteriaType:
          title: Тип критерия триггера
          allOf:
            - $ref: "#/components/schemas/TriggerCriteriaType"
        threshold:
          type: number
          format: float
          title: Пороговое значение триггера
        slidingDays:
          type: integer
          format: int32
          title: >-
            Скользящее окно относительно текущего момента.

            Начало окна это 00:00:00.000 UTC дня на sliding_days раньше текущего UTC дня.

            Конец окна - текущий момент
        fixedDaysRange:
          title: Границы временного окна, в текущем или предыдущем месяце
          allOf:
            - $ref: "#/components/schemas/TriggerFixedDaysOfMonth"
        periodType:
          title: Тип периода контроля
          allOf:
            - $ref: "#/components/schemas/TriggerPeriodType"
        severityType:
          title: |-
            Уровень критичности проблемы, которая описана критерием.
            Задает приоритет оповещения и реагирования
          allOf:
            - $ref: "#/components/schemas/TriggerSeverityType"
        isDisabled:
          type: boolean
          title: |-
            Флаг активности триггера.
            При погашении триггера гасятся и все его алерты
        instruction:
          type: string
          title: Краткая инструкция по решению или эскалации проблемы
        metricTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricType"
          title: >-
            Фильтрация метрик по типам метрик.

            При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
        deviceModels:
          type: array
          items:
            type: string
          title: >-
            Фильтрация метрик по значению моделей устройств.

            При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
        deviceTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerDeviceType"
          title: >-
            Фильтрация метрик по значению типов устройств.

            При нескольких элементах фильтрация срабатывает по значениям через ИЛИ
        metricGroupingType:
          title: Тип группировки метрик при вычислении критерия
          allOf:
            - $ref: "#/components/schemas/TriggerMetricGroupingType"
        successThreshold:
          type: integer
          format: int32
          title: Количество отрицательных проверок критерия, после которого сервис
            отключает
        tags:
          type: array
          items:
            type: string
          title: Произвольные теги для фильтрации и упорядочивания
        isManuallyUnclosable:
          type: boolean
          title: Флаг невозможности погашения алертов этого триггера
        isRangeMetricExpectedFreq:
          type: boolean
          title: >-
            Признак контроля триггером временного окна выборки метрик на основе
            поля индикатора metric_expected_freq.

            При значении true: поля range.sliding_days, range.fixed_days_range игнорируются при работе триггера.

            При значении true: временное окно выборки метрик при работе триггера работает как sliding_days=indicator.metric_expected_freq.

            При значении true: Для случаев indicator.metric_expected_freq=null индикатор игнорируется при работе триггера, алерт по нему не создается.

            При значении true: Для случаев indicator.metric_expected_freq<=0 индикатор игнорируется при работе триггера, алерт по нему не создается
      title: Триггер
      required:
        - title
        - criteriaType
        - threshold
        - periodType
        - severityType
        - isDisabled
    v1TriggerAlertFilter:
      type: object
      properties:
        triggerSeverityTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerSeverityType"
          title: По важности триггера
        fiasIds:
          type: array
          items:
            type: string
          title: По ФИАСам
        tags:
          type: array
          items:
            type: string
          title: По тэгам
        metricTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricType"
          title: По типам метрик триггера
        deviceModels:
          type: array
          items:
            type: string
          title: По моделям устройств
        deviceTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerDeviceType"
          title: По типам устройств
        deviceParentIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам родительских устройств
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам устройств
        isDisabled:
          type: boolean
          title: По признаку активности
        afterRaisedAt:
          type: string
          format: date-time
          title: От даты возникновения включительно (>=)
        beforeRaisedAt:
          type: string
          format: date-time
          title: До даты возникновения (<)
        metricGroupingTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricGroupingType"
          title: По типам группировки метрик
        triggerIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам триггеров
      title: >-
        Параметры фильтрации алертов.

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

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1TriggerAlertPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ORDER_BY_TYPE_RAISED_AT
          allOf:
            - $ref: "#/components/schemas/v1TriggerAlertPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1TriggerAlertPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Сколько элементов нужно получить за раз.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Начальный сдвиг.
            По умолчанию: 0
      title: Параметры пагинации алертов
    v1TriggerAlertPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1TriggerAlertPagingOrderByType:
      type: string
      enum:
        - RAISED_AT
        - TRIGGER_ID
        - TITLE
        - DISABLED
        - SEVERITY
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - RAISED_AT: По дате возникновения
         - TRIGGER_ID: По идентификатору триггера
         - TITLE: По заголовку триггера
         - DISABLED: По флагу активности триггера
         - SEVERITY: По триггеру
      title: Справочник типов значений сортировки
    v1TriggerFilter:
      type: object
      properties:
        severityTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerSeverityType"
          title: По уровням критичности
        tags:
          type: array
          items:
            type: string
          title: По тэгам
        metricTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricType"
          title: По типам метрик триггеров
        deviceModels:
          type: array
          items:
            type: string
          title: По моделям устройств
        deviceTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerDeviceType"
          title: По типам устройств
        metricGroupingTypes:
          type: array
          items:
            $ref: "#/components/schemas/TriggerMetricGroupingType"
          title: По типам группировки метрик
        isDisabled:
          type: boolean
          title: По признаку активности триггера
      title: >-
        Параметры фильтрации триггеров.

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

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1TriggerPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: SEVERITY
          allOf:
            - $ref: "#/components/schemas/v1TriggerPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: ASC
          allOf:
            - $ref: "#/components/schemas/v1TriggerPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Сколько элементов нужно получить за раз.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Начальный сдвиг.
            По умолчанию: 0
      title: Параметры пагинации триггеров
    v1TriggerPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1TriggerPagingOrderByType:
      type: string
      enum:
        - ID
        - TITLE
        - DISABLED
        - SEVERITY
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - TITLE: По заголовку
         - DISABLED: По флагу активности
         - SEVERITY: По Severity
      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_alerting:edit: Предоставляет полный доступ в сервис telemetry_alerting
            telemetry_alerting:read: Предоставляет доступ на чтение данных из сервиса telemetry_alerting
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
