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

Обновление инцидента

Запрос

Тип Метод
PUT /service_asset_findings/update

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

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

При изменении lifecycle_status_id поле status синхронизируется автоматически.

Позволяет также управлять связями многие ко многим с другими моделями через поле _relations.

Ключами в поле _relations могут быть названия полей моделей, ссылающиеся на другие модели.

Управление связями работает следующим образом:

  • Если поле связи в объекте _relations отсутствует, связь не изменяется.
  • Если поле связи указано и содержит непустой список идентификаторов, связи модели приводятся к указанному состоянию.
  • Если поле связи указано и содержит пустой список, все соответствующие связи удаляются.
  • Связанные сущности, переданные непосредственно в полях модели, игнорируются.
  • Связанные сущности в ответе всегда имеют значение null.
Пример запроса

PUT

http://127.0.0.1/cruddy/v2/service_asset_findings/update

Тело запроса

Параметр Тип данных Обязательность Описание
id string uuid Required Идентификатор обновляемого инцидента
created_at string time Optional Дата создания в формате date-time
updated_at string time Optional Дата изменения в формате date-time
description string Optional Подробное описание инцидента
risk_impact string Optional Описание последствий, которые могут возникнуть, если угроза была реализована
solution string Optional Рекомендации по устранению инцидента
mitigation string Optional Описание профилактики данного типа инцидента
status string Optional Состояние инцидента. При изменении lifecycle_status_id значение поля синхронизируется автоматически
risklevel number Optional Уровень риска. Допустимые значения от 0 до 10
service_asset_id string uuid Optional Идентификатор актива, на котором обнаружен инцидент
finding_id string uuid Optional Идентификатор типа инцидента
analysis_output string Optional Результат анализа. Заполняемое поле в правиле корреляции. Например: на активе {{ .event.IP }} произошло…
synopsis string Optional Краткое описание сути инцидентов данного типа
title string Optional Название инцидента
risk string Optional Описание уровня риска инцидента. Допустимые значения:
- none;
- low;
- medium;
- high.
acknowledged_at string time Optional Дата выявления / обнаружения инцидента в формате date-time
alert_type string Optional Политика поведения Платформы при срабатывании правила корреляции
client_note string Optional Заметки клиента
internal_note string Optional Внутреннее примечание
external boolean Optional Признак возможности удалённой эксплуатации уязвимости, на основе которой создан инцидент
immediate_action_score number Optional Срочность инцидента
throughput_period string Optional Статус инцидента в логике оповещений операторов о задержке в обработке. Допустимые значения:
- grace;
- delay;
- unacceptable.
throughput_period_change string time Optional Время изменения поля throughput_period в формате date-time
customer_created boolean Optional Флаг, указывающий, что инцидент создан пользователем, а не автоматически
c_visible_since string time Optional Дата и время, с которых инцидент виден пользователям
c_visible_since_in_days integer Optional Количество дней, в течение которых инцидент виден пользователям
c_reopened_count integer Optional Количество повторных открытий инцидента
c_last_customer_status_change string time Optional Дата и время последнего изменения статуса инцидента пользователем
c_customer_retention_time integer Optional Количество времени удержания клиента
logmule_identifier string Optional Идентификатор, который можно задать в правиле и использовать для фильтрации
c_remote_exploitable boolean Optional Возможность удалённого использования
c_occurrence_count integer Optional Количество происшествий в инциденте
last_occurrence_id string uuid Optional Идентификатор последнего происшествия
itsm_last_synced_at string time Optional Время последней синхронизации с внешней системой
itsm_sync_status string Optional Статус синхронизации с внешней системой. Допустимые значения:
- scheduled;
- aborted;
- synced;
- not_synced;
- waiting_confirmation.
external_id string Optional Идентификатор инцидента во внешней клиентской системе
itsm_sync_error string Optional Ошибка синхронизации с внешней клиентской системой
user_id string Optional Идентификатор пользователя, назначенного на инцидент
updated_by string Optional Идентификатор пользователя, который последним обновил инцидент
group_id string Optional Идентификатор группы пользователей, назначенной на инцидент
acknowledged_by string Optional Идентификатор пользователя, который подтвердил инцидент
created_by_customer string Optional Идентификатор пользователя, который вручную создал инцидент
edited_by string Optional Идентификатор пользователя, который последним отредактировал созданный вручную инцидент
incident_group_id string uuid Optional Идентификатор группы инцидентов, в которую входит инцидент
reopened_at string time Optional Время повторного открытия инцидента
display_id integer Optional Идентификатор инцидента, формируемый в соответствии с последовательностью присвоения идентификаторов
lifecycle_status_id string uuid Optional Идентификатор статуса жизненного цикла. При изменении значения поле status синхронизируется автоматически
_relations object<relations> Optional Словарь, описывающий связанные модели через идентификаторы
Relations
Параметр Тип данных Обязательность Описание
occurrences Array<string> Optional Идентификаторы происшествий
custom_field_values Array<string> Optional Идентификаторы значений дополнительных полей
comments Array<string> Optional Идентификаторы комментариев
documents Array<string> Optional Идентификаторы связанных документов
messages Array<string> Optional Идентификаторы связанных сообщений пользователей
service_asset_finding_status_changes Array<string> Optional Идентификаторы связанных операций изменения статуса инцидента
service_asset_groups Array<string> Optional Идентификаторы связанных групп активов
Пример тела запроса

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "description": "Обновленное описание инцидента",
  "lifecycle_status_id": "57e93f65-9db5-4b3c-8761-f3edd8ac8276"
}

При передаче lifecycle_status_id отдельно изменять поле status не требуется — его значение синхронизируется автоматически.

Пример изменения связей:


{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "_relations": {
    "occurrences": [
      "8d6bf02f-aab2-4fbc-ab53-ee5963306be7"
    ],
    "messages": []
  }
}

В данном примере:

  • список связанных происшествий будет приведён к переданному состоянию;
  • все связи инцидента с сообщениями будут удалены.

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

Статус код: 200 – успешное обновление информации об инциденте.

Формат: JSON.

Тело ответа: модель обновлённого инцидента.

Связанные сущности в ответе имеют значение null.

Пример ответа

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "description": "Обновленное описание инцидента",
  "risk_impact": "string",
  "solution": "string",
  "mitigation": "string",
  "status": "working_customer",
  "risklevel": 5,
  "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
  "created_at": "2023-12-20T00:00:01.652259Z",
  "updated_at": "2023-12-20T01:00:01.652259Z",
  "finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",
  "analysis_output": "string",
  "synopsis": "string",
  "title": "string",
  "risk": "medium",
  "acknowledged_at": "2023-12-20T00:00:01.652259Z",
  "alert_type": "automatic",
  "client_note": "string",
  "internal_note": "string",
  "external": false,
  "immediate_action_score": 0,
  "throughput_period": "grace",
  "throughput_period_change": "2023-12-20T00:00:01.652259Z",
  "customer_created": false,
  "c_visible_since": "2023-12-20T00:00:01.652259Z",
  "c_visible_since_in_days": 0,
  "c_reopened_count": 0,
  "c_last_customer_status_change": "2023-12-20T00:00:01.652259Z",
  "c_customer_retention_time": 0,
  "logmule_identifier": "string",
  "c_remote_exploitable": true,
  "c_occurrence_count": 0,
  "last_occurrence_id": "92c2542a-a9bb-4370-b835-20b1c9ac1fe9",
  "itsm_last_synced_at": "2023-12-20T00:00:01.652259Z",
  "itsm_sync_status": "scheduled",
  "external_id": "string",
  "itsm_sync_error": "string",
  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  "updated_by": "deea00dc-b6b6-4412-a483-26ac61e1f6fe",
  "group_id": "306db4e0-7449-4501-b76f-075576fe2d8f",
  "acknowledged_by": "57e93f65-9db5-4b3c-8761-f3edd8ac8276",
  "created_by_customer": "d299b51b-03f1-4b72-b793-1fb027d05389",
  "edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c",
  "incident_group_id": "5ce55b8d-2342-4286-bf58-bfe807f8c05c",
  "reopened_at": "2023-12-20T00:00:01.652259Z",
  "display_id": 0,
  "lifecycle_status_id": "57e93f65-9db5-4b3c-8761-f3edd8ac8276",
  "service_asset": null,
  "finding": null,
  "last_occurrence_entity": null,
  "user": null,
  "group": null,
  "incident_group": null,
  "occurrences": null,
  "custom_field_values": null,
  "comments": null,
  "documents": null,
  "messages": null,
  "service_asset_finding_status_changes": null,
  "service_asset_groups": null
}

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

Код Ответ Описание
400 Bad Request Неверный тип параметра запроса, отсутствует обязательный параметр, неверно указан Pgr-User-ID или передан несовместимый ключ статуса жизненного цикла
401 Unauthorized Невозможно аутентифицировать пользователя
404 Not Found Редактируемый объект не найден в БД
409 Conflict Невозможно получить информацию о пользователе
500 Internal Server Error Другие ошибки сервера или указанный статус жизненного цикла не найден / не относится к инцидентам

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

  • 400 — "missing uid header" — отсутствует заголовок Pgr-User-ID;
  • 400 — "Pgr-User-Id should be uuid format" — неверный формат Pgr-User-ID;
  • 400 — "Bad Request" — неверный тип параметра запроса либо отсутствует обязательный параметр;
  • 400 — "unknown lifecycle status key ... for service_asset_finding" — несовместимый ключ статуса жизненного цикла;
  • 401 — "can't get user info:" — невозможно аутентифицировать пользователя;
  • 404 — "not found" — редактируемый объект не найден в БД;
  • 409 — "can't get user info:" — невозможно получить информацию о пользователе;
  • 500 — "Internal Server Error" — другие ошибки сервера;
  • 500 — "lifecycle_status_id ... not found for entity_type service_asset_finding" — статус не найден или не принадлежит инцидентам.

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

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

{
  "error": "Bad Request",
  "error_code": 400
}

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

{
  "error": "can't get user info:",
  "error_code": 401
}

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

{
  "error": "not found",
  "error_code": 404
}

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

{
  "error": "can't get user info:",
  "error_code": 409
}

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

{
  "error": "Internal Server Error",
  "error_code": 500
}