Создать аварию

Создаёт новую аварию с данными, переданными в теле запроса. Возвращает аварию в формате JSON.

Запрос

HTTP Запрос

POST /node/api/incidents

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

Этот запрос использует модель Авария.

Модель Авария
Поле Тип Описание

id

String

Идентификатор аварии.

entityId

String

Идентификатор сущности, для которой была создана авария.

data

String

Данные сущности.

acknowledgedBy

String

Идентификатор пользователя, который подтвердил аварию.

acknowledgementTimestamp

Integer

Временная метка подтверждения аварии.

clearTimestamp

Integer

Временная метка завершения аварии.

comment

String

Последний комментарий к аварии.

commentedBy

String

Идентификатор пользователя, который оставил последний комментарий.

commentTimestamp

Integer

Временная метка добавления последнего комментария.

count

Integer

Количество раз возникновения аварии.

entityType

Integer

Тип сущности. 1 - объект, 2 - связь.

localTimestamp

Integer

Временная метка возникновения аварии.

parentChainId

String

Условие генерации аварии с типом 2.

state

String

Идентификатор текущего Уровня аварии.

lastState

String

Идентификатор Уровня аварии, в котором находилась авария перед её завершением.

text

String

Описание аварии.

timestamp

Integer

Временная метка регистрация аварии системой.

type

Integer

Тип аварии. Возможные значения:

  • 1 – сущность поменяла состояние;

  • 2 – выполнилось условие генерации аварий;

  • 3 – авария была сгенерирована через REST API запросом Создать аварию.

branchId

String

Идентификатор ветки условия для аварий, сгенерированных по пользовательским Условиям генерации аварий.

reason

Object

Причина генерации аварии. Подробная информация о модели доступна в статье Reason.

reason.code

Integer

Идентификатор причины генерации аварии. Подробная информация о модели доступна в статье Reason Codes.

reason.data

Object

Дополнительная информация об Условиях перехода состояний.

reason.rootCause

String

Информация о первопричине возникновения аварии. Подробная информация о модели доступна в статье Root cause.

reason.branch

Object

Условие, по которому была сгенерирована авария. Подробная информация доступна в разделе Branch.

removed

Object

Информация об удалении аварии с помощью запроса Погасить и удалить аварию.

removed.userId

Object

Идентификатор пользователя, который удалил аварию.

removed.timestamp

Object

Временная метка удаление аварии.

owner

Объект/Связь

Информация о сущности, по которой сгенерирована авария.

properties

Array<Key-Value Pair>

Список свойства аварии.

Тело запроса

Для создания аварии, в теле запроса нужно указать следующие данные:

  • entityId – идентификатор сущности, для которой создаётся авария;

  • entityType – тип сущности, для которой создаётся авария. 1 – объект, 2 – связь;

  • state – состояние, в которое переходит сущность;

  • text – текст аварии.

Подробная информация о модели доступна в статье Аварии.

{
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
}

Ответ

Ответ содержит созданную аварию в формате JSON. Подробная информация о модели доступна в статье Авария.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/incidents

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    -d @- <<EOF
{
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
}
EOF
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/incidents";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);

let data = JSON.stringify({
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
});

let requestOptions = {
    method: "POST",
    headers: headers,
    body: data
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/incidents";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

let data = JSON.stringify({
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
});

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/incidents"
body = {
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
}

response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)

Ответ

{
    "id": "67f9316f152951187b43249d",
    "entityId": "67f92159c07fef08b195bb48",
    "entityType": 1,
    "type": 3,
    "lastState": 4,
    "localTimestamp": 1744384367694,
    "parentChainId": "67f92159c07fef08b195bb48",
    "state": 4,
    "text": "New Alarm",
    "timestamp": 1741103731462
}