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

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

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

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

Запрос ​

HTTP Запрос ​

text
POST /node/api/incidents

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

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

ПолеТипОписание
idStringИдентификатор аварии.
entityIdStringИдентификатор сущности, для которой была создана авария.
dataStringДанные сущности.
acknowledgedByStringИдентификатор пользователя, который подтвердил аварию.
acknowledgementTimestampIntegerВременная метка подтверждения аварии.
clearTimestampIntegerВременная метка завершения аварии.
commentStringПоследний комментарий к аварии.
commentedByStringИдентификатор пользователя, который оставил последний комментарий.
commentTimestampIntegerВременная метка добавления последнего комментария.
countIntegerКоличество раз возникновения аварии.
entityTypeIntegerТип сущности. 1 - объект, 2 - связь.
localTimestampIntegerВременная метка возникновения аварии.
parentChainIdStringУсловие генерации аварии с типом 2.
stateStringИдентификатор текущего Уровня аварии.
lastStateStringИдентификатор Уровня аварии, в котором находилась авария перед её завершением.
textStringОписание аварии.
timestampIntegerВременная метка регистрация аварии системой.
typeInteger
Тип аварии. Возможные значения:

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 – текст аварии.

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

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

Ответ ​

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

Пример ​

Запрос ​

  • Bash
  • JavaScript
  • NodeJS
  • Python
bash
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
javascript
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));
javascript
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();
python
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)

Ответ ​

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