POST /api/v1/dns/zone/{zoneName}/record/bulk — выполнить пакет операций с DNS-записями
Обрабатывает пакет, включающий до 100 операций (create, update, delete) с DNS-записями.
Каждая операция выполняется независимо.
Узлы автоматически создаются при необходимости.
Операции create и update в bulk-запросах отклоняются для записей с type=DHCID.
|
Запрос
curl -k --negotiate -u : -X POST \
"https://<server>:<port>/api/v1/dns/zone/example.com/record/bulk" \
-H "Content-Type: application/json" \
-d '{
"operations": [
{
"op": "create",
"name": "www",
"type": "A",
"rdata": "10.10.0.1",
"ttl": 3600
},
{
"op": "create",
"name": "mail",
"type": "A",
"rdata": "10.10.0.2",
"ttl": 3600
},
{
"op": "delete",
"name": "old",
"type": "A",
"rdata": "10.10.0.3"
}
]
}'
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
|
string |
✅ |
Имя зоны (FQDN) |
|
string |
– |
Партиция, в которой находится зона: |
|
string |
– |
Имя пользовательской партиции (обязательно при |
Поля операций
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
|
string |
✅ |
Тип операции: |
|
string |
✅ |
Имя узла (например: |
|
string |
✅ |
Тип записи: |
|
uint32 |
– |
Время жизни записи (только для |
|
string |
✅ |
Текущее значение записи (для |
|
string |
⚠️ |
Новое значение записи (только для |
Примеры операций
Создание A-записи:
{"op": "create", "name": "www", "type": "A", "rdata": "192.168.1.10"}
Обновление A-записи:
{"op": "update", "name": "mail", "type": "A", "rdata": "10.0.0.10", "newRdata": "10.0.0.11"}
Удаление A-записи:
{"op": "delete", "name": "ftp", "type": "A", "rdata": "10.0.0.11"}
Ответ "200 OK"
{
"results": [
{
"op": "create",
"name": "www",
"type": "A",
"rdata": "10.10.0.1",
"success": true
},
{
"op": "create",
"name": "mail",
"type": "A",
"rdata": "10.10.0.2",
"success": true
},
{
"op": "delete",
"name": "old",
"type": "A",
"rdata": "10.10.0.3",
"success": true
}
]
}
Ответ "207 Multi-Status"
{
"results": [
{
"op": "create",
"name": "www",
"type": "A",
"rdata": "10.10.0.1",
"success": true
},
{
"op": "update",
"name": "mail",
"type": "A",
"rdata": "10.0.0.10",
"newRdata": "10.0.0.11",
"success": false,
"error": "SOA serial must be greater than current value; current=123, provided=122"
},
{
"op": "delete",
"name": "ftp",
"type": "A",
"rdata": "10.0.0.11",
"success": true
}
]
}
Ошибки
| Код | Причина |
|---|---|
|
Некорректный формат запроса: превышен лимит (более 100 операций), отсутствует обязательное поле |
|
Отсутствует или невалиден билет Kerberos (SPNEGO) |
|
Зона существует в нескольких партициях — требуется явное указание |
|
Все операции не прошли валидацию (например, все |
|
Внутренняя ошибка сервера при выполнении операций |
Обновлено: