API - Отчеты
Для выполнения запроса к API необходима дополнительная авторизация.
Используйте в запросе заголовок Authorization: Bearer <персональный токен>.
Шаблоны отчетов
Получение списка доступных пользователю шаблонов
GET /api/public/sm/v2/reports/templates
Параметры запроса
| Название параметра | Тип параметра | Обязательный параметр | Значение по умолчанию | Описание параметра | 
|---|---|---|---|---|
| page | integer | нет | null | Номер страницы | 
| perPage | integer | нет | null | Количество записей на одну страницу. Если -1 - будут возвращены все КЕ | 
| search | string | нет | null | Строка поиска | 
| sortCol | string | нет | null | Название поля, по которому выполняется сортировка | 
| sortDir | string | нет | null | Направление сортировки (asc/desc) | 
| skip | integer | нет | null | Количество записей, которое требуется пропустить | 
Пример выходной модели
[
    {
        "id": 744,
        "name": "TestReportMulti",
        "description": null,
        "type": "availability-multi",
        "workGroup": {
            "id": 490,
            "name": "DIAD"
        },
        "reportCount": 1,
        "lastReport": {
            "id": "5dd2c63e-60c0-49af-8fde-dfac8d7784b7",
            "name": "12.03.2024 17:16 TestReportMulti",
            "description": "11.03.2024 00:00 - 12.03.2024 00:00",
            "error": null,
            "status": "Ok",
            "entityInfo": {
                "createdAt": "2024-03-12T14:16:41.193456+00:00",
                "createdBy": 90206,
                "createdByName": "Getmanov Andrey",
                "updatedAt": null,
                "updatedBy": -1,
                "updatedByName": null
            }
        }
    },
    {
        "id": 40,
        "name": "DIAD-1",
        "description": null,
        "type": "availability-single",
        "workGroup": {
            "id": 490,
            "name": "DIAD"
        },
        "reportCount": 2,
        "lastReport": {
            "id": "b9cd13db-e51f-45f1-965d-c61208bfb881",
            "name": "12.03.2024 17:16 DIAD-1",
            "description": "12.03.2024 00:00 - 12.03.2024 17:16",
            "error": null,
            "status": "Ok",
            "entityInfo": {
                "createdAt": "2024-03-12T14:16:14.280912+00:00",
                "createdBy": 90206,
                "createdByName": "Getmanov Andrey",
                "updatedAt": null,
                "updatedBy": -1,
                "updatedByName": null
            }
        }
    }
]
Атрибуты выходной модели шаблона
| Атрибут | Тип | Описание | 
|---|---|---|
| id | integer | Идентификатор шаблона | 
| name | string | Название шаблона | 
| description | string | Описание шаблона | 
| type | string | Тип шаблона | 
| workGroup | object | Модель рабочей группы, которой принадлежит шаблон | 
| reportCount | integer | Количество отчетов | 
| lastReport | object | Модель с информацией по последнему рассчитанному шаблону | 
Коды ответа
| Код | Описание | 
|---|---|
| 200 | Запрос успешно исполнен | 
| 401 | Пользователь не авторизован | 
| 500 | Непредвиденная ошибка при обработке запроса | 
Получение статуса отчета по идентификатору
GET /api/public/sm/v2/reports/{reportId}
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета | 
Пример выходной модели
{
  "id": "71a45161-97af-4c0f-a59f-ae0146f3a46c",
  "name": "13.03.2024 11:09 DIAD TestReportMulti",
  "description": "12.03.2024 00:00 - 13.03.2024 00:00",
  "error": null,
  "status": "Ok",
  "entityInfo": {
      "createdAt": "2024-03-13T08:09:46.115926+00:00",
      "createdBy": 90206,
      "createdByName": "Getmanov Andrey",
      "updatedAt": null,
      "updatedBy": -1,
      "updatedByName": null
  }
}
Атрибуты выходной модели шаблона
| Атрибут | Тип | Описание | 
|---|---|---|
| id | string | Идентификатор отчета | 
| name | string | Название отчета | 
| description | string | Описание отчета | 
| error | string | Текст ошибки, если статус расчета не равен Ok | 
| status | string | Статус расчета отчета | 
| entityInfo | object | Информация о том, кто запустил расчет отчета | 
Дополнительная информация по атрибутам
Возможные значения атрибута status:
Unspecified- не определенPending- в ожидании расчетаOk- рассчитан успешноError- ошибка расчетаCalculating- рассчитывается в текущий момент
Коды ответа
| Код | Описание | 
|---|---|
| 200 | Запрос успешно исполнен | 
| 400 | Неверный идентификатор отчета | 
| 401 | Пользователь не авторизован | 
| 404 | Отчет не найден | 
| 500 | Непредвиденная ошибка при обработке запроса | 
Отчеты о доступности системы
Запустить расчёт отчета о доступности
Отчёт может быть создан только по шаблону. У пользователей, запускающих расчет отчёта, должно быть право на чтение указанного шаблона.
Срок хранения отчета – одни сутки.
По истечению этого срока экспорт результатов расчета невозможен.
POST /api/public/plugins/availability-reports/v1/reports/single
Параметры запроса
Отсутствуют
Пример входной модели
{
  "params": {
    "rsmMapId": 0,
    "configItemIds": [
      0
    ],
    "activityTimes": [
      {
        "days": [
          "Su"
        ],
        "from": "string",
        "to": "string",
        "applyHolidays": true,
        "applyWorkingDays": true
      }
    ],
    "filters": [
      {
        "type": "Including",
        "severities": [
          0
        ],
        "tagIds": [
          0
        ],
        "duration": {
          "type": "GreaterThan",
          "value": 0
        }
      }
    ],
    "withMaintenance": true,
    "recoveryTimeObjective": 0,
    "meanTimeBetweenFailures": true,
    "meanTimeToRestoreService": true,
    "maxDowntime": true
  },
  "name": "string",
  "description": "string",
  "templateId": 0,
  "range": {
    "start": "2024-03-13T08:36:36.314Z",
    "end": "2024-03-13T08:36:36.314Z"
  },
  "expirationTime": 0
}
Поля тела запроса
| Название поля | Обязательное поле | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| params | нет | object | null | Параметры отчета. Если null, то берется из шаблона. | 
| name | нет | string | null | Название отчета. Если null, то берется из шаблона. | 
| description | нет | string | null | Описание отчета. Если null, то берется из шаблона. | 
| templateId | да | integer | нет | Идентификатор шаблона | 
| range | нет | object | null | Период расчета. Если null, то берется из шаблона. | 
| expirationTime | нет | integer | null | Время хранения отчёта в часах | 
Поля объекта params:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| rsmMapId | integer | null | Идентификатор карты РСМ. Если null, то берется из шаблона. | 
| configItemIds | integer[] | null | Список идентификаторов КЕ. Если null, то берется из шаблона. | 
| activityTimes | object | null | Список периодов активности. Если null, то берется из шаблона. | 
| filters | object | null | Фильтры сигналов. Если null, то берется из шаблона. | 
| withMaintenance | boolean | null | Учитывать сервисный режим. Если null, то берется из шаблона. | 
| recoveryTimeObjective | integer | null | RTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона. | 
| meanTimeBetweenFailures | boolean | null | Среднее время наработки на отказ. Если null, то берется из шаблона. | 
| meanTimeToRestoreService | boolean | null | Среднее время восстановления службы. Если null, то берется из шаблона. | 
| maxDowntime | boolean | null | Длительность периода максимального простоя. Если null, то берется из шаблона. | 
Поля объекта activityTimes:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| days | string[] | null | Дни недели [ Su, Mo, Tu, We, Th, Fr, Sa ] | 
| from | string | null | Дата начала периода | 
| to | string | null | Дата завершения периода | 
| applyHolidays | boolean | null | Включить праздники | 
| applyWorkingDays | boolean | null | Включить рабочие дни | 
Поля объекта filters:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| type | string[] | null | Тип фильтра Including или Excluding | 
| severities | integer[] | null | Критичность сигнала | 
| tagIds | integer[] | null | Идентификаторы тегов | 
| duration | object | null | Длительность сигнала | 
Поля объекта duration:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| type | string[] | null | Условие GreaterThan или LessThan | 
| value | integer[] | null | Длительность сигнала в секундах | 
Пример выходной модели
При успешном исполнении запроса возвращается идентификатор отчета
{
    "id": "8df89b87-50cb-4518-bd18-bef4c5aa672c"
}
Атрибуты выходной модели
| Атрибут | Тип | Описание | 
|---|---|---|
| id | string | Идентификатор заказного отчёта | 
Коды ответа
| Код | Описание | 
|---|---|
| 200 | Запрос успешно выполнен | 
| 400 | Неверная модель данных в теле запроса. Не найден шаблон с указанным идентификатором. Не удалось выполнить расчёт с указанным шаблоном или настройками. | 
| 401 | Пользователь не авторизован | 
| 403 | Недостаточно прав для выполнения действия | 
| 500 | Непредвиденная ошибка при обработке запроса | 
Запустить расчёт мультиотчета о доступности
Мультиотчёт может быть создан только по шаблону. У пользователей, запускающих расчет мультиотчёта, должно быть право на чтение указанного шаблона.
Срок хранения мультиотчёта – одни сутки.
По истечению этого срока экспорт результатов расчета невозможен.
POST /api/public/plugins/availability-reports/v1/reports/multi
Параметры запроса
Отсутствуют
Пример входной модели
{
  "params": {
    "templates": [
      {
        "id": 0,
        "params": {
          "rsmMapId": 0,
          "configItemIds": [
            0
          ],
          "activityTimes": [
            {
              "days": [
                "Su"
              ],
              "from": "string",
              "to": "string",
              "applyHolidays": true,
              "applyWorkingDays": true
            }
          ],
          "filters": [
            {
              "type": "Including",
              "severities": [
                0
              ],
              "tagIds": [
                0
              ],
              "duration": {
                "type": "GreaterThan",
                "value": 0
              }
            }
          ],
          "withMaintenance": true,
          "recoveryTimeObjective": 0,
          "meanTimeBetweenFailures": true,
          "meanTimeToRestoreService": true,
          "maxDowntime": true
        },
        "weight": 0
      }
    ]
  },
  "name": "string",
  "description": "string",
  "templateId": 0,
  "range": {
    "start": "2024-03-13T09:59:34.612Z",
    "end": "2024-03-13T09:59:34.612Z"
  },
  "expirationTime": 0
}
Поля тела запроса
| Название поля | Обязательное поле | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| params | нет | object | null | Параметры мультиотчета. Если null, то берется из шаблона. | 
| name | нет | string | null | Название мультиотчета. Если null, то берется из шаблона. | 
| description | нет | string | null | Описание мультиотчета. Если null, то берется из шаблона. | 
| templateId | да | integer | Идентификатор шаблона | |
| range | нет | object | null | Период расчета. Если null, то берется из шаблона. | 
| expirationTime | нет | integer | null | Время хранения мультиотчета в часах | 
Поля объекта params:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| templates | object[] | null | Список параметры отчетов, входящих в мультиотчет . Если null, то берется из шаблона. | 
Поля объекта из массива templates:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| rsmMapId | integer | null | Идентификатор карты РСМ. Если null, то берется из шаблона. | 
| configItemIds | integer[] | null | Список идентификаторов КЕ. Если null, то берется из шаблона. | 
| activityTimes | object | null | Список периодов активности. Если null, то берется из шаблона. | 
| filters | object | null | Фильтры сигналов. Если null, то берется из шаблона. | 
| withMaintenance | boolean | null | Учитывать сервисный режим. Если null, то берется из шаблона. | 
| recoveryTimeObjective | integer | null | RTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона. | 
| meanTimeBetweenFailures | boolean | null | Среднее время наработки на отказ. Если null, то берется из шаблона. | 
| meanTimeToRestoreService | boolean | null | Среднее время восстановления службы. Если null, то берется из шаблона. | 
| maxDowntime | boolean | null | Длительность периода максимального простоя. Если null, то берется из шаблона. | 
Поля объекта activityTimes:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| days | string[] | null | Дни недели [ Su, Mo, Tu, We, Th, Fr, Sa ] | 
| from | string | null | Дата начала периода | 
| to | string | null | Дата завершения периода | 
| applyHolidays | boolean | null | Включить праздники | 
| applyWorkingDays | boolean | null | Включить рабочие дни | 
Поля объекта filters:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| type | string[] | null | Тип фильтра Including или Excluding | 
| severities | integer[] | null | Критичность сигнала | 
| tagIds | integer[] | null | Идентификаторы тегов | 
| duration | object | null | Длительность сигнала | 
Поля объекта duration:
| Название поля | Тип поля | Значение по умолчанию | Описание | 
|---|---|---|---|
| type | string[] | null | Условие GreaterThan или LessThan | 
| value | integer[] | null | Длительность сигнала в секундах | 
Пример выходной модели
При успешном исполнении запроса возвращается идентификатор мультиотчёта
{
    "id": "be6a6b26-0799-49ca-a9e6-91e2c1c75565"
}
Атрибуты выходной модели
| Атрибут | Тип | Описание | 
|---|---|---|
| id | string | Идентификатор мультиотчёта | 
Коды ответа
| Код | Описание | 
|---|---|
| 200 | Запрос успешно выполнен | 
| 400 | Неверная модель данных в теле запроса. Не найден шаблон с указанным идентификатором. Не удалось выполнить расчёт с указанным шаблоном или настройками. | 
| 401 | Пользователь не авторизован | 
| 403 | Недостаточно прав для выполнения действия | 
| 500 | Непредвиденная ошибка при обработке запроса | 
Экспорт файла отчета доступности
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/availability
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета | 
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls | 
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai | 
Экспорт файла мультиотчета доступности
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/multi/availability
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета | 
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls | 
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai | 
Экспорт файла отчета о доступности КЕ
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/config-items-availability/{configItemId}
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание | 
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета | 
| configItemId | string | да | нет | Идентификатор КЕ | 
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls | 
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai |