EvoBGP Control Plane API (0.1.0)

Download OpenAPI specification:

License: LicenseRef-Proprietary

REST API управления префиксами, модулями ingest, ревизиями конфигурации BIRD и задачами (async jobs).

Соглашения: префикс /v1; идентификаторы - UUID v7 или ULID (строки); время - ISO 8601 UTC. Ошибки - application/problem+json (RFC 9457). Пагинация списков - cursor + limit; ответ содержит items, next_cursor, has_more.

Роли (матрица доступа): viewer, editor, operator, node. Нода использует отдельные пути и ключ с ролью node.

Заголовок X-Tenant-Id допускается только для супер-ролей (явный tenant); иначе tenant берётся из API-ключа.

System

Liveness, readiness и метаданные сборки. Обычно без чувствительных данных; доступ может быть шире.

Liveness

Проверка, что процесс API жив. Не обязана проверять БД или брокер.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Readiness

Готовность к трафику (БД, брокер сообщений при reference-архитектуре и т.д.).

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "status": "ready",
  • "checks": { }
}

Версия сборки

Версия API и control-plane (git_sha, build_time и др.).

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "api_version": "string",
  • "git_sha": "string",
  • "build_time": "2019-08-24T14:15:22Z"
}

Modules

Экземпляры модулей префиксов (AS, CDN, домены, статические IP-диапазоны) и вложенные записи. Чтение - viewer+; изменение - editor+.

Список модулей

Модули tenant с опциональными фильтрами по типу и флагу enabled.

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

type
string (ModuleType)
Enum: "AS_PREFIXES" "CDN_CIDRS" "DOMAINS" "IP_RANGES"
enabled
boolean
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Создать модуль

Создаёт экземпляр модуля. Поле type задаёт вид (AS_PREFIXES, CDN_CIDRS, DOMAINS, IP_RANGES). module_id в других путях - идентификатор экземпляра, не имя типа.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
type
required
string (ModuleType)
Enum: "AS_PREFIXES" "CDN_CIDRS" "DOMAINS" "IP_RANGES"
name
required
string
enabled
boolean
Default: true
priority
integer
Default: 0
doh_profile_id
string or null
refresh_interval_sec
integer or null
cron_expr
string or null
default_community_id
string or null

Responses

Request samples

Content type
application/json
{
  • "type": "AS_PREFIXES",
  • "name": "string",
  • "enabled": true,
  • "priority": 0,
  • "doh_profile_id": "string",
  • "refresh_interval_sec": 0,
  • "cron_expr": "string",
  • "default_community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "type": "AS_PREFIXES",
  • "name": "string",
  • "enabled": true,
  • "priority": 0,
  • "doh_profile_id": "string",
  • "refresh_interval_sec": 0,
  • "cron_expr": "string",
  • "default_community_id": "string"
}

Получить модуль

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "type": "AS_PREFIXES",
  • "name": "string",
  • "enabled": true,
  • "priority": 0,
  • "doh_profile_id": "string",
  • "refresh_interval_sec": 0,
  • "cron_expr": "string",
  • "default_community_id": "string"
}

Обновить модуль

Частичное обновление (расписание, DoH, приоритет, enabled и т.д.).

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
name
string
enabled
boolean
priority
integer
doh_profile_id
string or null
refresh_interval_sec
integer or null
cron_expr
string or null
default_community_id
string or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "priority": 0,
  • "doh_profile_id": "string",
  • "refresh_interval_sec": 0,
  • "cron_expr": "string",
  • "default_community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "type": "AS_PREFIXES",
  • "name": "string",
  • "enabled": true,
  • "priority": 0,
  • "doh_profile_id": "string",
  • "refresh_interval_sec": 0,
  • "cron_expr": "string",
  • "default_community_id": "string"
}

Удалить модуль

Мягкое удаление или перевод в enabled=false - конкретное поведение задаётся реализацией.

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Список CDN-источников

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Добавить CDN-источник

URL, source_kind, опционально community_id.

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
url
required
string <uri>
source_kind
required
string
community_id
string or null

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "source_kind": "string",
  • "community_id": "string",
  • "refresh_interval_sec": 0
}

Обновить CDN-источник

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

source_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
url
string <uri>
source_kind
string
community_id
string or null
refresh_interval_sec
integer or null

Responses

Request samples

Content type
application/json
{
  • "source_kind": "string",
  • "community_id": "string",
  • "refresh_interval_sec": 0
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "source_kind": "string",
  • "community_id": "string",
  • "refresh_interval_sec": 0
}

Удалить CDN-источник

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

source_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Список AS-записей

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Добавить AS-запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
asn
integer
prefix
string
community_id
string or null
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "asn": 0,
  • "prefix": "string",
  • "community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "asn": 0,
  • "prefix": "string",
  • "community_id": "string"
}

Обновить AS-запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
asn
integer
prefix
string
community_id
string or null
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "asn": 0,
  • "prefix": "string",
  • "community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "asn": 0,
  • "prefix": "string",
  • "community_id": "string"
}

Удалить AS-запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Список доменных записей

FQDN и привязка к community.

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Добавить доменную запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
fqdn
required
string
community_id
string or null

Responses

Request samples

Content type
application/json
{
  • "fqdn": "string",
  • "community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "fqdn": "string",
  • "community_id": "string"
}

Обновить доменную запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
fqdn
required
string
community_id
string or null

Responses

Request samples

Content type
application/json
{
  • "fqdn": "string",
  • "community_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "fqdn": "string",
  • "community_id": "string"
}

Удалить доменную запись

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Список IP-диапазонов

Только для модулей с типом IP_RANGES (статические CIDR и community_id).

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Добавить IP-диапазон

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
prefix
required
string
community_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$

UUID v7 или ULID.

Responses

Request samples

Content type
application/json
{
  • "prefix": "string",
  • "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "prefix": "203.0.113.0/24",
  • "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Обновить IP-диапазон

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
prefix
required
string
community_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$

UUID v7 или ULID.

Responses

Request samples

Content type
application/json
{
  • "prefix": "string",
  • "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "prefix": "203.0.113.0/24",
  • "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Удалить IP-диапазон

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

entry_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Запустить ingest

Запуск обновления данных модуля (CDN / DoH / AS в зависимости от типа). Для IP_RANGES данные обычно только в БД: сервер может вернуть 204 (no-op) или 400, если refresh не поддерживается - поведение фиксируется в реализации. Рекомендуется передавать Idempotency-Key.

Authorizations:
bearerAuth
path Parameters
module_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "status": "queued"
}

DoH profiles

Профили DNS-over-HTTPS для модулей типа домены. Секрет в ответах не возвращается.

Список DoH-профилей

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Создать DoH-профиль

URL и таймауты; секрет - через vault id или отдельный вызов установки секрета.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
url
required
string <uri>
timeout_ms
integer
vault_secret_ref
string or null

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "timeout_ms": 0,
  • "vault_secret_ref": "string"
}

Получить DoH-профиль

Секрет в ответе не возвращается.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "timeout_ms": 0,
  • "vault_secret_ref": "string"
}

Обновить DoH-профиль

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
url
string <uri>
timeout_ms
integer
vault_secret_ref
string or null

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "timeout_ms": 0,
  • "vault_secret_ref": "string"
}

Удалить DoH-профиль

Допустимо только если профиль не используется модулями.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Communities

Справочник BGP community в скоупе tenant.

Список BGP community

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Создать community

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
name
required
string
kind
string
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "kind": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "name": "string",
  • "kind": "string"
}

Получить community

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "name": "string",
  • "kind": "string"
}

Обновить community

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
name
string
kind
string
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "kind": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "name": "string",
  • "kind": "string"
}

Удалить community

Только при отсутствии ссылок из других сущностей.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Peers

BGP-пиры и политики; привязка к спикеру или ко всем спикерам.

Список пиров

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

speaker_id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: speaker_id=01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Создать пира

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
neighbor
required
string
remote_asn
required
integer
bgp_speaker_id
string or null
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "neighbor": "string",
  • "remote_asn": 0,
  • "bgp_speaker_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "neighbor": "string",
  • "remote_asn": 0,
  • "bgp_speaker_id": "string"
}

Получить пира

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "neighbor": "string",
  • "remote_asn": 0,
  • "bgp_speaker_id": "string"
}

Обновить пира

Политики, neighbor, ASN, привязка к bgp_speaker_id или null для всех спикеров.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
neighbor
string
remote_asn
integer
bgp_speaker_id
string or null
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "neighbor": "string",
  • "remote_asn": 0,
  • "bgp_speaker_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "neighbor": "string",
  • "remote_asn": 0,
  • "bgp_speaker_id": "string"
}

Удалить или отключить пира

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Speakers

Регистрация и метаданные экземпляров BIRD (master/replica/canary).

Список спикеров

Master / replica, endpoint и связанные поля.

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Зарегистрировать спикер

Реплика, canary и т.д.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
role
string
endpoint
required
string
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "role": "string",
  • "endpoint": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "role": "string",
  • "endpoint": "string",
  • "last_applied_revision_id": "string"
}

Получить спикер

В т.ч. last_applied_revision_id.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "role": "string",
  • "endpoint": "string",
  • "last_applied_revision_id": "string"
}

Обновить метаданные спикера

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
role
string
endpoint
string
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "role": "string",
  • "endpoint": "string"
}

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "role": "string",
  • "endpoint": "string",
  • "last_applied_revision_id": "string"
}

Revisions

История ревизий конфигурации, снимки префиксов, превью и откат (часто асинхронно).

История ревизий

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

module_id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: module_id=01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Метаданные ревизии

Хэш, родитель, время, артефакты.

Authorizations:
bearerAuth
path Parameters
revision_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "parent_revision_id": "string",
  • "content_hash": "string",
  • "created_at": "2019-08-24T14:15:22Z"
}

Снимок префиксов ревизии

Authorizations:
bearerAuth
path Parameters
revision_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Превью фрагментов BIRD

Только чтение, без apply.

Authorizations:
bearerAuth
path Parameters
revision_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
{ }

Откат через новую ревизию

Создаёт новую ревизию с содержимым отката от указанной. Часто возвращает 202 с Location на задачу. Рекомендуется Idempotency-Key.

Authorizations:
bearerAuth
path Parameters
revision_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "status": "queued"
}

Сравнить две ревизии

Формат diff (JSON Patch, табличный и т.д.) определяется реализацией.

Authorizations:
bearerAuth
path Parameters
revision_a
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

revision_b
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{ }

Deploy

Применение ревизий на спикерах и опциональный reload BIRD. Требуется роль operator.

Применить конфигурацию

Применить целевую ревизию на спикерах (политика по умолчанию или из тела). Ответ 202 с Location на /v1/jobs/{job_id}. Рекомендуется или обязателен Idempotency-Key по политике продукта.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
optional
revision_id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$

UUID v7 или ULID.

strategy
string (ApplyStrategy)
Value: "all_speakers"

Стратегия выбора спикеров для apply.

dry_run
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "strategy": "all_speakers",
  • "dry_run": false
}

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "status": "queued"
}

Применить на одном спикере

Canary / точечный deploy. 202 + Location на job.

Authorizations:
bearerAuth
path Parameters
id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
optional
revision_id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$

UUID v7 или ULID.

strategy
string (ApplyStrategy)
Value: "all_speakers"

Стратегия выбора спикеров для apply.

dry_run
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "strategy": "all_speakers",
  • "dry_run": false
}

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "status": "queued"
}

Мягкий reload BIRD

Опциональный явный reload политики, если отделён от apply; иначе может отсутствовать или быть частью apply.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "status": "queued"
}

Jobs

Асинхронные задачи; статус и отмена (best-effort).

Список задач

Authorizations:
bearerAuth
query Parameters
cursor
string

Непрозрачный курсор из предыдущего ответа.

limit
integer [ 1 .. 500 ]
Default: 50

Размер страницы (по умолчанию 50).

status
string (JobStatus)
Enum: "queued" "running" "succeeded" "failed" "cancelled"

Статус задачи; перечень может расширяться.

kind
string

Фильтр по виду задачи; точный перечень расширяем.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "has_more": true
}

Статус задачи

Прогресс, ошибка, связанные сущности в meta.

Authorizations:
bearerAuth
path Parameters
job_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "kind": "string",
  • "status": "queued",
  • "idempotency_key": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "started_at": "string",
  • "finished_at": "string",
  • "error": "string",
  • "meta": { }
}

Запросить отмену задачи

Best-effort; гарантии зависят от вида задачи.

Authorizations:
bearerAuth
path Parameters
job_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Responses

Response samples

Content type
application/json
{
  • "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "kind": "string",
  • "status": "queued",
  • "idempotency_key": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "started_at": "string",
  • "finished_at": "string",
  • "error": "string",
  • "meta": { }
}

Node

API для evobgp-node (бандлы ревизий и enrollment). Отдельный ключ или mTLS, роль node.

Последняя опубликованная ревизия для ноды

Вызывается evobgp-node с ключом роли node.

Authorizations:
bearerAuth
path Parameters
speaker_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

Responses

Response samples

Content type
application/json
{
  • "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "published_at": "2019-08-24T14:15:22Z"
}

Скачать подписанный бандл

Архив с manifest.json и подписью (например Ed25519). Целостность по SHA-256 в манифесте. Content-Type - application/octet-stream или multipart; детали - в реализации.

Authorizations:
bearerAuth
path Parameters
speaker_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

revision_id
required
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

UUID v7 или ULID.

Responses

Response samples

Content type
application/problem+json
{
  • "type": "../dictionary",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "../dictionary",
  • "errors": [
    ]
}

Регистрация ноды

Обмен ключами и привязка к speaker_id; детали протокола уточняются отдельно.

Authorizations:
bearerAuth
Request Body schema: application/json
required
public_key
string
speaker_id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$

UUID v7 или ULID.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "public_key": "string",
  • "speaker_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Response samples

Content type
application/json
{
  • "status": "enrolled",
  • "speaker_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
  • "tenant_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}

Settings

Глобальные настройки и feature flags; изменение - только operator.

Получить настройки

KV (лимиты CDN, feature flags и т.д.).

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Responses

Response samples

Content type
application/json
{ }

Частично обновить настройки

Только роль operator.

Authorizations:
bearerAuth
header Parameters
X-Tenant-Id
string (ResourceId) ^[0-9A-Za-z_-]{20,36}$
Examples: 01JQXYZABCDEFGHIJKLMNOPQRS

Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу.

Idempotency-Key
string <= 256 characters

Идемпотентность мутаций. Для POST apply и части refresh рекомендуется или обязателен по политике продукта.

Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }