Перейти к основному содержимому
Версия: 8.0

API - Отчеты

Внимание

Для выполнения запроса к API необходима дополнительная авторизация.


Используйте в запросе заголовок Authorization: Bearer <персональный токен>.


Где получить персональный токен?

Шаблоны отчетов

Получение списка доступных пользователю шаблонов

GET /api/public/sm/v2/reports/templates

Параметры запроса

Название параметраТип параметраОписание параметра
pagenumberНомер страницы
perPagenumberКоличество записей на одну страницу. Если -1 - будут возвращены все шаблоны
searchstring/nullСтрока поиска
sortColstring/nullНазвание поля, по которому выполняется сортировка
sortDirstring/nullНаправление сортировки (asc/desc)
skipnumberКоличество записей, которое требуется пропустить

Пример выходной модели

[
{
"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
}
}
}
]

Атрибуты выходной модели шаблона

АтрибутТипОписание
idlongИдентификатор шаблона
namestringНазвание шаблона
descriptionstringОписание шаблона
typestringТип шаблона
workGroupobjectМодель рабочей группы, которой принадлежит шаблон
reportCountintegerКоличество отчетов
lastReportobjectМодель с информацией по последнему рассчитанному шаблону

Коды ответа

КодОписание
200Запрос успешно исполнен
401Пользователь не авторизован
500Непредвиденная ошибка при обработке запроса

Получение статуса отчета по идентификатору

GET /api/public/sm/v2/reports/{reportId}

Параметры запроса

ПараметрТипОписание
reportIdstringИдентификатор отчета

Пример выходной модели

{
"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
}
}

Атрибуты выходной модели шаблона

АтрибутТипОписание
idstringИдентификатор отчета
namestringНазвание отчета
descriptionstringОписание отчета
errorstringТекст ошибки, если статус расчета не равен Ok
statusstringСтатус расчета отчета
entityInfoobjectИнформация о том, кто запустил расчет отчета

Дополнительная информация по атрибутам

Возможные значения атрибута 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
}

Поля тела запроса

Название поляОбязательное полеТип поляОписание
paramsobject or nullПараметры отчета. Если null, то берется из шаблона.
namestring or nullНазвание отчета. Если null, то берется из шаблона.
descriptionstring or nullОписание отчета. Если null, то берется из шаблона.
templateIdдаintegerИдентификатор шаблона
rangeobject or nullПериод расчета. Если null, то берется из шаблона.
expirationTimeinteger or nullВремя хранения отчёта в часах

Поля объекта params:

Название поляТип поляОписание
rsmMapIdinteger or nullИдентификатор карты РСМ. Если null, то берется из шаблона.
configItemIdsinteger[] or nullСписок идентификаторов КЕ. Если null, то берется из шаблона.
activityTimesobject or nullСписок периодов активности. Если null, то берется из шаблона.
filtersobject or nullФильтры сигналов. Если null, то берется из шаблона.
withMaintenanceboolean or nullУчитывать сервисный режим. Если null, то берется из шаблона.
recoveryTimeObjectiveinteger or nullRTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона.
meanTimeBetweenFailuresboolean or nullСреднее время наработки на отказ. Если null, то берется из шаблона.
meanTimeToRestoreServiceboolean or nullСреднее время восстановления службы. Если null, то берется из шаблона.
maxDowntimeboolean or nullДлительность периода максимального простоя. Если null, то берется из шаблона.

Поля объекта activityTimes:

Название поляТип поляОписание
daysstring[] or nullДни недели [ Su, Mo, Tu, We, Th, Fr, Sa ]
fromstring or nullДата начала периода
tostring or nullДата завершения периода
applyHolidaysboolean or nullВключить праздники
applyWorkingDaysboolean or nullВключить рабочие дни

Поля объекта filters:

Название поляТип поляОписание
typestring[] or nullТип фильтра Including или Excluding
severitiesinteger[] or nullКритичность сигнала
tagIdsinteger[] or nullИдентификаторы тегов
durationobject or nullДлительность сигнала

Поля объекта duration:

Название поляТип поляОписание
typestring[] or nullУсловие GreaterThan или LessThan
valueinteger[] or nullДлительность сигнала в секундах

Пример выходной модели

При успешном исполнении запроса возвращается идентификатор отчета

{
"id": "8df89b87-50cb-4518-bd18-bef4c5aa672c"
}

Атрибуты выходной модели

АтрибутТипОписание
idstringИдентификатор заказного отчёта

Коды ответа

КодОписание
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
}

Поля тела запроса

Название поляОбязательное полеТип поляОписание
paramsobject or nullПараметры мультиотчета. Если null, то берется из шаблона.
namestring or nullНазвание мультиотчета. Если null, то берется из шаблона.
descriptionstring or nullОписание мультиотчета. Если null, то берется из шаблона.
templateIdдаintegerИдентификатор шаблона
rangeobject or nullПериод расчета. Если null, то берется из шаблона.
expirationTimeinteger or nullВремя хранения мультиотчета в часах

Поля объекта params:

Название поляТип поляОписание
templatesobject[] or nullСписок параметры отчетов, входящих в мультиотчет . Если null, то берется из шаблона.

Поля объекта из массива templates:

Название поляТип поляОписание
rsmMapIdinteger or nullИдентификатор карты РСМ. Если null, то берется из шаблона.
configItemIdsinteger[] or nullСписок идентификаторов КЕ. Если null, то берется из шаблона.
activityTimesobject or nullСписок периодов активности. Если null, то берется из шаблона.
filtersobject or nullФильтры сигналов. Если null, то берется из шаблона.
withMaintenanceboolean or nullУчитывать сервисный режим. Если null, то берется из шаблона.
recoveryTimeObjectiveinteger or nullRTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона.
meanTimeBetweenFailuresboolean or nullСреднее время наработки на отказ. Если null, то берется из шаблона.
meanTimeToRestoreServiceboolean or nullСреднее время восстановления службы. Если null, то берется из шаблона.
maxDowntimeboolean or nullДлительность периода максимального простоя. Если null, то берется из шаблона.

Поля объекта activityTimes:

Название поляТип поляОписание
daysstring[] or nullДни недели [ Su, Mo, Tu, We, Th, Fr, Sa ]
fromstring or nullДата начала периода
tostring or nullДата завершения периода
applyHolidaysboolean or nullВключить праздники
applyWorkingDaysboolean or nullВключить рабочие дни

Поля объекта filters:

Название поляТип поляОписание
typestring[] or nullТип фильтра Including или Excluding
severitiesinteger[] or nullКритичность сигнала
tagIdsinteger[] or nullИдентификаторы тегов
durationobject or nullДлительность сигнала

Поля объекта duration:

Название поляТип поляОписание
typestring[] or nullУсловие GreaterThan или LessThan
valueinteger[] or nullДлительность сигнала в секундах

Пример выходной модели

При успешном исполнении запроса возвращается идентификатор мультиотчёта

{
"id": "be6a6b26-0799-49ca-a9e6-91e2c1c75565"
}

Атрибуты выходной модели

АтрибутТипОписание
idstringИдентификатор мультиотчёта

Коды ответа

КодОписание
200Запрос успешно выполнен
400Неверная модель данных в теле запроса. Не найден шаблон с указанным идентификатором. Не удалось выполнить расчёт с указанным шаблоном или настройками.
401Пользователь не авторизован
403Недостаточно прав для выполнения действия
500Непредвиденная ошибка при обработке запроса

Экспорт файла отчета доступности

GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/availability

Параметры запроса

ПараметрТипТребуетсяОписание
reportIdstringдаИдентификатор отчета
formatstringнетТип файла экспорта (по умолчанию Json). Доступны форматы: Json и Xls
timeZonestringнетВременная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai

Экспорт файла мультиотчета доступности

GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/multi/availability

Параметры запроса

ПараметрТипТребуетсяОписание
reportIdstringдаИдентификатор отчета
formatstringнетТип файла экспорта (по умолчанию Json). Доступны форматы: Json и Xls
timeZonestringнетВременная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai

Экспорт файла отчета о доступности КЕ

GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/config-items-availability/{configItemId}

Параметры запроса

ПараметрТипТребуетсяОписание
reportIdstringдаИдентификатор отчета
configItemIdstringдаИдентификатор КЕ
formatstringнетТип файла экспорта (по умолчанию Json). Доступны форматы: Json и Xls
timeZonestringнетВременная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai