Skip to main content

Довідник API адміністрування

У цьому розділі представлено список адміністративних методів API в алфавітному порядку.

Audit Trail

API журналу аудиту використовується для взаємодії з таблицями журналу аудиту в мікросервісі сховища. У Fledge інформація журналу зберігається в системному журналі, де розміщений мікросервіс. Натомість вся необхідна для аудиту інформація зберігається всередині Fledge, і вона доступна через Admin REST API. API дозволяє читати, а також додавати додаткові журнали аудиту, так, ніби такі журнали створюються всередині системи.

audit

Методи audit реалізують журнал аудиту, вони використовуються для створення та отримання журналів аудиту.

Набір можливих джерел аудиту включає в себе

ДжерелоОпис
PURGEData Purging Process
LOGGNLogging Process
STRMNStreaming Process
SYPRGSystem Purge
STARTSystem Startup
FSTOPSystem Shutdown
CONCHConfiguration Change
CONADConfiguration Addition
SCHCHSchedule Change
SCHADSchedule Addition
SRVRGService Registered
SRVUNService Unregistered
SRVFLService Fail
NHCOMNorth Process Complete
NHDWNNorth Destination Unavailable
NHAVLNorth Destination Available
UPEXCUpdate Complete
BKEXCBackup Complete
NTFDLNotification Deleted
NTFADNotification Added
NTFSNNotification Sent
NTFCLNotification Cleared
NTFSTNotification Server Startup
NTFSDNotification Server Shutdown
PKGINPackage installation
PKGUPPackage updated
PKGRMPackage purged
DSPSTDispatcher Startup
DSPSDDispatcher Shutdown
ESSRTExternal Service Startup
ESSTPExternal Service Shutdown

GET Audit Entries

GET /fledge/audit - повертає список записів журналу аудиту, відсортованих за останніми.

Параметри запиту

  • limit - обмежити кількість повернених записів аудиту вказаною кількістю
  • skip - пропустити перші n записів у таблиці аудиту, що використовується з обмеженням для реалізації сторінкових інтерфейсів
  • source - фільтрувати записи аудиту, щоб вони були лише з указаного джерела
  • severity - відфільтрувати записи аудиту лише за вказаною серйозністю

Response Payload

Корисне навантаження відповіді – це масив об’єктів JSON із записами журналу аудиту.

НазваТипОписПриклад
timestamptimestampПозначка часу, коли було записано елемент контрольного журналу.2018-04-16 14:33:18.215
sourcestringДжерело запису контрольного сліду.CoAP
severitystringСерйозність події, яка ініціювала запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION.FAILURE
detailsobjectОб’єкт JSON, який описує деталі події журналу аудиту.{ "message" : "Sensor readings discarded due to malformed payload" }

Example

$ curl -s http://localhost:8081/fledge/audit?limit=2
{ "totalCount" : 24,
"audit" : [ { "timestamp" : "2018-02-25 18:58:07.748",
"source" : "SRVRG",
"details" : { "name" : "COAP" },
"severity" : "INFORMATION" },
{ "timestamp" : "2018-02-25 18:58:07.742",
"source" : "SRVRG",
"details" : { "name" : "HTTP_SOUTH" },
"severity" : "INFORMATION" },
{ "timestamp" : "2018-02-25 18:58:07.390",
"source" : "START",
"details" : {},
"severity" : "INFORMATION" }
]
}
$ curl -s http://localhost:8081/fledge/audit?source=SRVUN&limit=1
{ "totalCount" : 4,
"audit" : [ { "timestamp" : "2018-02-25 05:22:11.053",
"source" : "SRVUN",
"details" : { "name": "COAP" },
"severity" : "INFORMATION" }
]
}
.

#### POST Audit Entries

`POST /fledge/audit` - створити новий запис контрольного журналу.

Мета методу створення запису в журналі аудиту полягає в тому, щоб
дозволити користувацькому інтерфейсу або додатку, який використовує API
Fledge, використовувати журнал аудиту Fledge і механізм сповіщень для
підняття визначених користувачем записів журналу аудиту.

**Request Payload**

Корисне навантаження запиту – це об’єкт JSON із записом контрольного
журналу без мітки часу.

| Назва | Tип | Опис | Приклад |
|----------|--------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| source | string | Джерело запису контрольного сліду. | LOGGN |
| severity | string | Серйозність події, яка ініціювала запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION. | FAILURE |
| details | object | Об’єкт JSON, який описує деталі події журналу аудиту. |` { "message" : "Internal System Error" } `|

**Response Payload**

Корисне навантаження відповіді – це щойно створений запис контрольного
журналу.

| Назва | Tип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| timestamp | timestamp | Позначка часу, коли було записано елемент контрольного журналу. | 2018-04-16 14:33:18.215 |
| source | string | Джерело запису контрольного сліду. | LOGGN |
| severity | string | Серйозність події, яка ініціювала запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION. | FAILURE |
| details | object | Об’єкт JSON, який описує деталі події журналу аудиту. | `{ "message" : "Internal System Error" }` |

**Example**

``` console
$ curl -X POST http://localhost:8081/fledge/audit \
-d '{ "severity": "FAILURE", "details": { "message": "Internal System Error" }, "source": "LOGGN" }'
{ "source": "LOGGN",
"timestamp": "2018-04-17 11:49:55.480",
"severity": "FAILURE",
"details": { "message": "Internal System Error" }
}
$
$ curl -X GET http://localhost:8081/fledge/audit?severity=FAILURE
{ "totalCount": 1,
"audit": [ { "timestamp": "2018-04-16 18:32:28.427",
"source" : "LOGGN",
"details" : { "message": "Internal System Error" },
"severity" : "FAILURE" }
]
}
.

## Управління конфігурацією

Управління конфігурацією є важливим аспектом REST API, однак через
відкриту форму конфігурації Fledge сам API досить невеликий.

Конфігураційний REST API взаємодіє з менеджером конфігурації для
створення, отримання, оновлення та видалення категорій і значень
конфігурації. Зокрема, всі оновлення повинні проходити через рівень
керування, оскільки він використовується для надсилання сповіщень
компонентам, які виявили зацікавленість у категоріях конфігурації. Це
засіб, за допомогою якого досягається динамічна реконфігурація Fledge.

### category

Інтерфейс *category* є частиною керування конфігурацією для Fledge і
використовується для створення, отримання, оновлення та видалення
категорій і елементів конфігурації.

#### GET categor(ies)

`GET /fledge/category` - повертає список відомих категорій у базі даних
конфігурації

**Response Payload**

Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
JSON, по одному на дійсну категорію.

| Назва | Тип | Опис | Приклад |
|-------------|--------|----------------------------------------------------------------------------------|------------------|
| key | string | Ключ категорії, кожна категорія має унікальний текстовий ключ, який її визначає. | network |
| description | string | Опис категорії, який можна використовувати для відображення. | Network Settings |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | Network Settings |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/category
{
"categories":
[
{
"key": "SCHEDULER",
"description": "Scheduler configuration",
"displayName": "Scheduler"
},
{
"key": "SMNTR",
"description": "Service Monitor",
"displayName": "Service Monitor"
},
{
"key": "rest_api",
"description": "Fledge Admin and User REST API",
"displayName": "Admin API"
},
{
"key": "service",
"description": "Fledge Service",
"displayName": "Fledge Service"
},
{
"key": "Installation",
"description": "Installation",
"displayName": "Installation"
},
{
"key": "General",
"description": "General",
"displayName": "General"
},
{
"key": "Advanced",
"description": "Advanced",
"displayName": "Advanced"
},
{
"key": "Utilities",
"description": "Utilities",
"displayName": "Utilities"
}
]
}
.

#### GET category

`GET /fledge/category/{name}` - повернути елементи конфігурації у
вказаній категорії.

**Параметри шляху**

- **name** це назва однієї з категорій, яку повертає виклик GET
/fledge/category.

**Response Payload**

Корисне навантаження відповіді — це набір елементів конфігурації в
категорії, кожен елемент — це об’єкт JSON із наведеним нижче набором
властивостей.

| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/category/rest_api
{
"enableHttp": {
"description": "Enable HTTP (disable to use HTTPS)",
"type": "boolean",
"default": "true",
"displayName": "Enable HTTP",
"order": "1",
"value": "true"
},
"httpPort": {
"description": "Port to accept HTTP connections on",
"type": "integer",
"default": "8081",
"displayName": "HTTP Port",
"order": "2",
"value": "8081"
},
"httpsPort": {
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
},
"certificateName": {
"description": "Certificate file name",
"type": "string",
"default": "fledge",
"displayName": "Certificate Name",
"order": "4",
"validity": "enableHttp==\"false\"",
"value": "fledge"
},
"authentication": {
"description": "API Call Authentication",
"type": "enumeration",
"options": [
"mandatory",
"optional"
],
"default": "optional",
"displayName": "Authentication",
"order": "5",
"value": "optional"
},
"authMethod": {
"description": "Authentication method",
"type": "enumeration",
"options": [
"any",
"password",
"certificate"
],
"default": "any",
"displayName": "Authentication method",
"order": "6",
"value": "any"
},
"authCertificateName": {
"description": "Auth Certificate name",
"type": "string",
"default": "ca",
"displayName": "Auth Certificate",
"order": "7",
"value": "ca"
},
"allowPing": {
"description": "Allow access to ping, regardless of the authentication required and authentication header",
"type": "boolean",
"default": "true",
"displayName": "Allow Ping",
"order": "8",
"value": "true"
},
"passwordChange": {
"description": "Number of days after which passwords must be changed",
"type": "integer",
"default": "0",
"displayName": "Password Expiry Days",
"order": "9",
"value": "0"
},
"authProviders": {
"description": "Authentication providers to use for the interface (JSON array object)",
"type": "JSON",
"default": "{\"providers\": [\"username\", \"ldap\"] }",
"displayName": "Auth Providers",
"order": "10",
"value": "{\"providers\": [\"username\", \"ldap\"] }"
}
}
.

#### GET category item

`GET /fledge/category/{name}/{item}` - повернути елемент конфігурації у
вказаній категорії.

**Параметри шляху**

- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для повернення.

**Response Payload**

Корисне навантаження відповіді є елементом конфігурації в категорії,
кожен елемент є об’єктом JSON з наступним набором властивостей.

| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/category/rest_api/httpsPort
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
}

.

#### PUT category item

`PUT /fledge/category/{name}/{item}` - встановити значення елемента
конфігурації у вказаній категорії.

**Параметри шляху**

- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для встановлення.

**Request Payload**

Об’єкт JSON із новим значенням для призначення елементу конфігурації.

| Назва | Тип | Опис | Приклад |
|-------|--------|--------------------------------------|--------------|
| value | string | Нове значення елемента конфігурації. | 192.168.0.27 |

**Response Payload**

Корисне навантаження відповіді — це нещодавно оновлений елемент
конфігурації в категорії, елемент — це об’єкт JSON із таким набором
властивостей.

| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |

**Example**

``` console
$ curl -X PUT http://localhost:8081/fledge/category/rest_api/httpsPort \
-d '{ "value" : "1996" }'
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1996"
}
.

#### DELETE category item

`DELETE /fledge/category/{name}/{item}/value` - скинути значення
елемента конфігурації в даній категорії.

Це призведе до того, що значення буде повернуто до значення за
замовчуванням, якщо таке визначено. Якщо ні, значення буде порожнім,
тобто властивість value об'єкта JSON буде існувати з порожнім значенням.

**Параметри шляху**

- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для повернення.

**Response Payload**

Корисне навантаження відповіді — це нещодавно оновлений елемент
конфігурації в категорії, елемент — це об’єкт JSON із таким набором
властивостей.

| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 127.0.0.1 |

**Example**

``` console
$ curl -X DELETE http://localhost:8081/fledge/category/rest_api/httpsPort/value
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
}
.

#### POST category

`POST /fledge/category` - створює нову категорію

**Request Payload**

Об’єкт JSON, який визначає категорію.

| Назва | Тип | Опис | Приклад |
|---------------|--------|---------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| key | string | Ключ, який ідентифікує категорію. Якщо ключ уже існує як категорія, тоді вміст цього запиту об’єднується зі збереженими даними. | backup |
| description | string | Опис категорії конфігурації | Backup configuration |
| items | list | Додатковий список елементів для створення в цій категорії | |
| *name* | string | Ім'я елемента конфігурації | destination |
| *description* | string | Опис елемента конфігурації | The destination to which the backup will be written |
| *type* | string | Тип елемента конфігурації | string |
| *default* | string | Додаткове значення за умовчанням для елемента конфігурації | /backup |

**Примітка:** зі списком ми маємо на увазі список об’єктів JSON у формі `{ obj1,obj2 тощо. }`, щоб відрізнятися від онцепції *масиву*, тобто \[ obj1,obj2 тощо. \]

**Example**

``` console
$ curl -X POST http://localhost:8081/fledge/category
-d '{ "key": "My Configuration", "description": "This is my new configuration",
"value": { "item one": { "description": "The first item", "type": "string", "default": "one" },
"item two": { "description": "The second item", "type": "string", "default": "two" },
"item three": { "description": "The third item", "type": "string", "default": "three" } } }'
{ "description": "This is my new configuration", "key": "My Configuration", "value": {
"item one": { "default": "one", "type": "string", "description": "The first item", "value": "one" },
"item two": { "default": "two", "type": "string", "description": "The second item", "value": "two" },
"item three": { "default": "three", "type": "string", "description": "The third item", "value": "three" } }
}
.

## Управління завданнями

API управління завданнями дозволяють адміністративному користувачеві
відстежувати і контролювати завдання, які запускаються планувальником
завдань або за розкладом, або в результаті запиту API.

### task

Інтерфейс *task* дозволяє адміністративному користувачеві відстежувати і
контролювати завдання Fledge.

#### GET task

`GET /fledge/task` - повертає список усіх відомих запущених або
виконаних завдань

**Параметри запиту**

- **name** - додаткова назва завдання для фільтрації, звітуватиметься
лише про виконання певного завдання.
- **state** - додатковий параметр запиту, який повертатиме лише ті
завдання в заданому стані.

**Response Payload**

Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
завдання.

| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/task
{
"tasks": [
{
"id": "a9967d61-8bec-4d0b-8aa1-8b4dfb1d9855",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:21:58.650",
"endTime": "2020-05-28 09:21:59.155",
"exitCode": 0,
"reason": ""
},
{
"id": "7706b23c-71a4-410a-a03a-9b517dcd8c93",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:22:13.654",
"endTime": "2020-05-28 09:22:14.160",
"exitCode": 0,
"reason": ""
},
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task?name=purge
{
"tasks": [
{
"id": "c24e006d-22f2-4c52-9f3a-391a9b17b6d6",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:00.175",
"endTime": "2020-05-28 09:44:13.915",
"exitCode": 0,
"reason": ""
},
{
"id": "609f35e6-4e89-4749-ac17-841ae3ee2b31",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:15.165",
"endTime": "2020-05-28 09:44:28.154",
"exitCode": 0,
"reason": ""
},
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task?state=complete
{
"tasks": [
{
"id": "a9967d61-8bec-4d0b-8aa1-8b4dfb1d9855",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:21:58.650",
"endTime": "2020-05-28 09:21:59.155",
"exitCode": 0,
"reason": ""
},
{
"id": "7706b23c-71a4-410a-a03a-9b517dcd8c93",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:22:13.654",
"endTime": "2020-05-28 09:22:14.160",
"exitCode": 0,
"reason": ""
},
... ] }
.

#### GET task latest

`GET /fledge/task/latest` - повертає список останніх виконаних завдань
для кожного імені.

Цей виклик призначено для того, щоб інтерфейс моніторингу показував,
коли кожне завдання було запущено востаннє та який був статус цього
завдання.

**Параметри запиту**

- **name** - додаткова назва завдання для фільтрації, звітуватиметься
лише про виконання певного завдання.
- **state** - додатковий параметр запиту, який повертатиме лише ті
завдання в заданому стані.

**Response Payload**

Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
завдання.

| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |
| pid | integer | ID процесу завдання. | 17481 |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/task/latest
{
"tasks": [
{
"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4",
"name": "certificate checker",
"processName": "certificate checker",
"state": "Complete",
"startTime": "2020-05-28 09:35:00.009",
"endTime": "2020-05-28 09:35:00.057",
"exitCode": 0,
"reason": "",
"pid": 17481
},
{
"id": "794707da-dd32-471e-8537-5d20dc0f401a",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:37:28.650",
"endTime": "2020-05-28 09:37:29.138",
"exitCode": 0,
"reason": "",
"pid": 17926
}
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task/latest?name=purge
{
"tasks": [
{
"id": "609f35e6-4e89-4749-ac17-841ae3ee2b31",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:15.165",
"endTime": "2020-05-28 09:44:28.154",
"exitCode": 0,
"reason": "",
"pid": 20914
}
]
}
.

#### GET task by ID

`GET /fledge/task/{id}` - повертає інформацію про завдання для даного
завдання

**Параметри шляху**

- **id** - uuid завдання, дані якого мають бути повернуті.

**Response Payload**

Корисне навантаження відповіді – це об’єкт JSON, що містить деталі
завдання.

| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |

**Example**

``` console
$ curl -X GET http://localhost:8081/fledge/task/ea334d3b-8a33-4a29-845c-8be50efd44a4
{
"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4",
"name": "certificate checker",
"processName": "certificate checker",
"state": "Complete",
"startTime": "2020-05-28 09:35:00.009",
"endTime": "2020-05-28 09:35:00.057",
"exitCode": 0,
"reason": ""
}
.

#### Cancel task by ID

`PUT /fledge/task/{id}/cancel` - відміняє завдання.

**Path Parameters**

- **id** - uuid завдання, яке потрібно скасувати.

**Response Payload**

Корисне навантаження відповіді – це об’єкт JSON, що містить деталі
завдання.

| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |

**Example**

``` console
$ curl -X PUT http://localhost:8081/fledge/task/ea334d3b-8a33-4a29-845c-8be50efd44a4/cancel
{"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4", "message": "Task cancelled successfully"}
.

## Інші Адміністративні API виклики

### shutdown

Опція *shutdown* призведе до повного завершення роботи всіх сервісів
Fledge. Будь-які дані, що зберігаються у буферах пам'яті сервісів,
будуть надіслані на рівень зберігання, а плагіни Fledge збережуть
будь-який необхідний стан під час перезапуску.

``` console
$ curl -X PUT /fledge/shutdown

Примітка

Якщо налаштовано рівень зберігання в пам'яті, він не буде збережений до будь-якого постійного сховища, і вміст рівня зберігання в пам'яті буде втрачено.

restart

Опція restart призведе до повного завершення роботи всіх сервісів Fledge, а потім їх перезапуску. Будь-які дані, що зберігаються у буферах пам'яті сервісів, будуть надіслані на рівень зберігання, а плагіни Fledge збережуть будь-який необхідний стан під час перезапуску.

$ curl -X PUT /fledge/restart

Примітка

Якщо налаштовано рівень зберігання в пам'яті, він не буде збережений до будь-якого постійного сховища, і вміст рівня зберігання в пам'яті буде втрачено.

ping

Інтерфейс ping дає базову перевірку впевненості в тому, що пристрій Fledge працює, а аспект API пристрою є функціональним. Він розроблений як простий тест, який може бути застосований користувачем або системою моніторингу HA для перевірки життєздатності та швидкості реагування системи.

GET ping

GET /fledge/ping - повернути життєвість Fledge

Примітка: метод GET може бути виконаний без автентифікації, навіть якщо автентифікація потрібна. Цю поведінку можна налаштувати за допомогою параметра конфігурації.

Response Payload

Корисне навантаження відповіді – це деяка основна інформація про працездатність в об’єкті JSON.

НазваТипОписПриклад
uptimenumericЧас у секундах від початку роботи Fledge2113.076449394226
dataReadnumericПідрахунок кількості зчитувань датчика1452
dataSentnumericПідрахунок кількості зчитувань, надісланих до PI347
dataPurgednumericПідрахунок кількості видалених зчитувань226
authenticationOptionalbooleanЯкщо значення true, REST API не вимагає автентифікації. Якщо значення false, користувачі повинні успішно авторизуватися, щоб викликати REST API. За замовчуванням true.true
serviceNamestringНазва сервісуFledge
hostNamestringІм'я хост-машиниfledge
ipAddresseslistАдреса IPv4 та IPv6 хост-машини["10.0.0.0","123:234:345:456:567:678:789:890"]
healthstringСтан сервісів Fledge"green"
safeModebooleanВірно, якщо Fledge запущено в безпечному режимі (будуть запущені лише ядро та сервіси зберігання)2113.076449394226

Example

$ curl -s http://localhost:8081/fledge/ping
{
"uptime": 276818,
"dataRead": 0,
"dataSent": 0,
"dataPurged": 0,
"authenticationOptional": true,
"serviceName": "Fledge",
"hostName": "fledge",
"ipAddresses": [
"x.x.x.x",
"x:x:x:x:x:x:x:x"
],
"health": "green",
"safeMode": false
}
.