Перейти к содержанию

Массовое создание инцидентов

Запрос

Тип Метод
POST /service_asset_findings/mass_create

Описание: при выполнении запроса будут созданы инциденты из переданного списка.

Каждый инцидент обрабатывается отдельно. Перед созданием выполняется валидация данных. Если при обработке отдельного инцидента возникает ошибка, информация о ней возвращается в поле error соответствующего элемента массива results.

Если при создании инцидента возникает ошибка уникального ограничения, выполняется обновление существующего инцидента по полям уникального ограничения, которые вызвали ошибку.

Пример запроса

POST

http://127.0.0.1/cruddy/v2/service_asset_findings/mass_create

Тело запроса:

Параметр Тип данных Обязательность Описание
items Array<object> Required Список инцидентов для создания

Каждый элемент массива items соответствует структуре тела запроса метода создания инцидента.

Пример структуры тела запроса

{
  "items": [
    {
      "description": "Описание инцидента",
      "risk_impact": "Описание возможных последствий",
      "solution": "Рекомендации по устранению",
      "mitigation": "Описание профилактики",
      "status": "new",
      "risklevel": 5,
      "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
      "finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",
      "title": "Инцидент"
    }
  ]
}

Примечание: Полный перечень параметров объекта items см. в разделе Создание инцидента.

Успешный ответ

Статус код: 200 – запрос успешно обработан.

Формат: JSON.

Параметры ответа:

Параметр Тип данных Описание
results Array<object> Список результатов обработки инцидентов
results[].result ServiceAssetFinding или null Созданный или обновлённый инцидент. Возвращается при успешной обработке объекта
results[].error string или null Текст ошибки обработки объекта. Может содержать ошибку валидации, создания, обновления или другую ошибку обработки

Для каждого элемента массива items в массиве results возвращается результат его обработки:

  • при успешном создании или обновлении поле result содержит объект инцидента, а error имеет значение null;
  • при ошибке поле error содержит описание ошибки, а result имеет значение null.
Пример ответа

{
  "results": [
    {
      "result": {
        "id": "7bc42fd2-057c-4117-b367-8528bec75c80",
        "title": "Инцидент"
      },
      "error": null
    },
    {
      "result": null,
      "error": "текст ошибки"
    }
  ]
}

Другие возможные ответы

Код Ответ Описание
400 Bad Request Ошибка в теле запроса, список объектов не передан или не удалось обработать структуру запроса
401 can't get user info Невозможно аутентифицировать пользователя
500 Internal Server Error Другие ошибки сервера

Возможные ошибки:

  • 400 — "Bad Request" — неверный тип параметра запроса либо отсутствует обязательный параметр;
  • 400 — "read body: ..." — ошибка чтения тела запроса;
  • 400 — "empty items" — список объектов не передан или пуст;
  • 400 — "parse request: ..." — ошибка разбора запроса;
  • 400 — "parse request to map: ..." — ошибка преобразования запроса;
  • 401 — "can't get user info:" — невозможно аутентифицировать пользователя;
  • 500 — "Internal Server Error" — другие ошибки сервера.

Примечание: Текст ошибки не фиксированный и может изменяться в зависимости от фактического ответа на запрос.

Пример ответа с кодом 400

{
  "error": "empty items"
}

Пример ответа с кодом 401

{
  "error": "can't get user info:"
}

Пример ответа с кодом 500

{
  "error": "Internal Server Error"
}