Download OpenAPI specification:
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-ключа.
Liveness, readiness и метаданные сборки. Обычно без чувствительных данных; доступ может быть шире.
Экземпляры модулей префиксов (AS, CDN, домены, статические IP-диапазоны) и вложенные записи. Чтение - viewer+; изменение - editor+.
Модули tenant с опциональными фильтрами по типу и флагу enabled.
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| type | string (ModuleType) Enum: "AS_PREFIXES" "CDN_CIDRS" "DOMAINS" "IP_RANGES" |
| enabled | boolean |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "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"
}
], - "next_cursor": "string",
- "has_more": true
}Создаёт экземпляр модуля. Поле type задаёт вид (AS_PREFIXES, CDN_CIDRS, DOMAINS, IP_RANGES).
module_id в других путях - идентификатор экземпляра, не имя типа.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| 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 |
{- "type": "AS_PREFIXES",
- "name": "string",
- "enabled": true,
- "priority": 0,
- "doh_profile_id": "string",
- "refresh_interval_sec": 0,
- "cron_expr": "string",
- "default_community_id": "string"
}{- "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"
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "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 и т.д.).
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| 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 |
{- "name": "string",
- "enabled": true,
- "priority": 0,
- "doh_profile_id": "string",
- "refresh_interval_sec": 0,
- "cron_expr": "string",
- "default_community_id": "string"
}{- "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 - конкретное поведение задаётся реализацией.
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "source_kind": "string",
- "community_id": "string",
- "refresh_interval_sec": 0
}
], - "next_cursor": "string",
- "has_more": true
}URL, source_kind, опционально community_id.
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| url required | string <uri> |
| source_kind required | string |
| community_id | string or null |
{- "source_kind": "string",
- "community_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "source_kind": "string",
- "community_id": "string",
- "refresh_interval_sec": 0
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| url | string <uri> |
| source_kind | string |
| community_id | string or null |
| refresh_interval_sec | integer or null |
{- "source_kind": "string",
- "community_id": "string",
- "refresh_interval_sec": 0
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "source_kind": "string",
- "community_id": "string",
- "refresh_interval_sec": 0
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "asn": 0,
- "prefix": "string",
- "community_id": "string"
}
], - "next_cursor": "string",
- "has_more": true
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| asn | integer |
| prefix | string |
| community_id | string or null |
| property name* additional property | any |
{- "asn": 0,
- "prefix": "string",
- "community_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "asn": 0,
- "prefix": "string",
- "community_id": "string"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| asn | integer |
| prefix | string |
| community_id | string or null |
| property name* additional property | any |
{- "asn": 0,
- "prefix": "string",
- "community_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "asn": 0,
- "prefix": "string",
- "community_id": "string"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}FQDN и привязка к community.
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "fqdn": "string",
- "community_id": "string"
}
], - "next_cursor": "string",
- "has_more": true
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| fqdn required | string |
| community_id | string or null |
{- "fqdn": "string",
- "community_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "fqdn": "string",
- "community_id": "string"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| fqdn required | string |
| community_id | string or null |
{- "fqdn": "string",
- "community_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "fqdn": "string",
- "community_id": "string"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}Только для модулей с типом IP_RANGES (статические CIDR и community_id).
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "prefix": "203.0.113.0/24",
- "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}
], - "next_cursor": "string",
- "has_more": true
}| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| prefix required | string |
| community_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ UUID v7 или ULID. |
{- "prefix": "string",
- "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "prefix": "203.0.113.0/24",
- "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| prefix required | string |
| community_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ UUID v7 или ULID. |
{- "prefix": "string",
- "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "prefix": "203.0.113.0/24",
- "community_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}Запуск обновления данных модуля (CDN / DoH / AS в зависимости от типа).
Для IP_RANGES данные обычно только в БД: сервер может вернуть 204 (no-op) или 400, если refresh не поддерживается - поведение фиксируется в реализации.
Рекомендуется передавать Idempotency-Key.
| module_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "status": "queued"
}| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "timeout_ms": 0,
- "vault_secret_ref": "string"
}
], - "next_cursor": "string",
- "has_more": true
}URL и таймауты; секрет - через vault id или отдельный вызов установки секрета.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| url required | string <uri> |
| timeout_ms | integer |
| vault_secret_ref | string or null |
{- "timeout_ms": 0,
- "vault_secret_ref": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "timeout_ms": 0,
- "vault_secret_ref": "string"
}Секрет в ответе не возвращается.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "timeout_ms": 0,
- "vault_secret_ref": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| url | string <uri> |
| timeout_ms | integer |
| vault_secret_ref | string or null |
{- "timeout_ms": 0,
- "vault_secret_ref": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "timeout_ms": 0,
- "vault_secret_ref": "string"
}Допустимо только если профиль не используется модулями.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "name": "string",
- "kind": "string"
}
], - "next_cursor": "string",
- "has_more": true
}| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| name required | string |
| kind | string |
| property name* additional property | any |
{- "name": "string",
- "kind": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "name": "string",
- "kind": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "name": "string",
- "kind": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| name | string |
| kind | string |
| property name* additional property | any |
{- "name": "string",
- "kind": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "name": "string",
- "kind": "string"
}Только при отсутствии ссылок из других сущностей.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}
], - "next_cursor": "string",
- "has_more": true
}| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| neighbor required | string |
| remote_asn required | integer |
| bgp_speaker_id | string or null |
| property name* additional property | any |
{- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}Политики, neighbor, ASN, привязка к bgp_speaker_id или null для всех спикеров.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| neighbor | string |
| remote_asn | integer |
| bgp_speaker_id | string or null |
| property name* additional property | any |
{- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "neighbor": "string",
- "remote_asn": 0,
- "bgp_speaker_id": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}Master / replica, endpoint и связанные поля.
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "role": "string",
- "endpoint": "string",
- "last_applied_revision_id": "string"
}
], - "next_cursor": "string",
- "has_more": true
}Реплика, canary и т.д.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| role | string |
| endpoint required | string |
| property name* additional property | any |
{- "role": "string",
- "endpoint": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "role": "string",
- "endpoint": "string",
- "last_applied_revision_id": "string"
}В т.ч. last_applied_revision_id.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "role": "string",
- "endpoint": "string",
- "last_applied_revision_id": "string"
}| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| role | string |
| endpoint | string |
| property name* additional property | any |
{- "role": "string",
- "endpoint": "string"
}{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "role": "string",
- "endpoint": "string",
- "last_applied_revision_id": "string"
}| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "parent_revision_id": "string",
- "content_hash": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "next_cursor": "string",
- "has_more": true
}Хэш, родитель, время, артефакты.
| revision_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "parent_revision_id": "string",
- "content_hash": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| revision_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- { }
], - "next_cursor": "string",
- "has_more": true
}Только чтение, без apply.
| revision_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{ }Создаёт новую ревизию с содержимым отката от указанной. Часто возвращает 202 с Location на задачу.
Рекомендуется Idempotency-Key.
| revision_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "status": "queued"
}Формат diff (JSON Patch, табличный и т.д.) определяется реализацией.
| 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. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{ }Применить целевую ревизию на спикерах (политика по умолчанию или из тела).
Ответ 202 с Location на /v1/jobs/{job_id}. Рекомендуется или обязателен Idempotency-Key по политике продукта.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| 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 |
{- "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "strategy": "all_speakers",
- "dry_run": false
}{- "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "status": "queued"
}Canary / точечный deploy. 202 + Location на job.
| id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| 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 |
{- "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "strategy": "all_speakers",
- "dry_run": false
}{- "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "status": "queued"
}Опциональный явный reload политики, если отделён от apply; иначе может отсутствовать или быть частью apply.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "job_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "status": "queued"
}| cursor | string Непрозрачный курсор из предыдущего ответа. |
| limit | integer [ 1 .. 500 ] Default: 50 Размер страницы (по умолчанию 50). |
| status | string (JobStatus) Enum: "queued" "running" "succeeded" "failed" "cancelled" Статус задачи; перечень может расширяться. |
| kind | string Фильтр по виду задачи; точный перечень расширяем. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "items": [
- {
- "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": { }
}
], - "next_cursor": "string",
- "has_more": true
}Прогресс, ошибка, связанные сущности в meta.
| job_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{- "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; гарантии зависят от вида задачи.
| job_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
{- "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": { }
}Вызывается evobgp-node с ключом роли node.
| speaker_id required | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS UUID v7 или ULID. |
{- "revision_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "published_at": "2019-08-24T14:15:22Z"
}Архив с manifest.json и подписью (например Ed25519). Целостность по SHA-256 в манифесте.
Content-Type - application/octet-stream или multipart; детали - в реализации.
| 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. |
{- "type": "../dictionary",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "../dictionary",
- "errors": [
- {
- "field": "string",
- "pointer": "string",
- "message": "string"
}
]
}Обмен ключами и привязка к speaker_id; детали протокола уточняются отдельно.
| public_key | string |
| speaker_id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ UUID v7 или ULID. |
| property name* additional property | any |
{- "public_key": "string",
- "speaker_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}{- "status": "enrolled",
- "speaker_id": "01JQXYZABCDEFGHIJKLMNOPQRS",
- "tenant_id": "01JQXYZABCDEFGHIJKLMNOPQRS"
}KV (лимиты CDN, feature flags и т.д.).
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
{ }Только роль operator.
| X-Tenant-Id | string (ResourceId) ^[0-9A-Za-z_-]{20,36}$ Examples: 01JQXYZABCDEFGHIJKLMNOPQRS Явный tenant (только супер-роли). Без заголовка tenant определяется по ключу. |
| Idempotency-Key | string <= 256 characters Идемпотентность мутаций. Для |
| property name* additional property | any |
{ }{ }