PUT /api/v1/dns/zone/{zoneName} — изменить DNS-зону

Изменяет настройки существующей DNS-зоны.

Зона должна быть доступна и существовать в одной из партиций.

Запрос

curl -k --negotiate -u : -X PUT \
  "https://<server>:<port>/api/v1/dns/zone/example.com?partition=domain" \
  -H "Content-Type: application/json" \
  -d '{
    "allowUpdate": 2,
    "noRefreshInterval": 168,
    "refreshInterval": 168,
    "agingEnabled": true,
    "defaultTtl": 7200,
    "masterIP": ["10.0.0.1", "10.0.0.2"]
  }'

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

Параметр Тип Обязательный Описание и значения

zoneName

string

✅

Имя зоны (FQDN)

partition

string

–

Партиция, в которой находится зона: domain, forest, legacy, custom

partitionName

string

–

Имя пользовательской партиции (обязательно при partition=custom)

Поля тела запроса

Поле Тип Обязательное Описание и значения

allowUpdate

integer

–

Режим динамического обновления: 0=None, 1=NonSecureAndSecure, 2=Secure (по умолчанию: 2)

noRefreshInterval

integer

–

Интервал без обновления (в часах). Диапазон: 1–365 дней (24–8760 часов). По умолчанию: 168 (7 дней)

refreshInterval

integer

–

Интервал обновления (в часах). Диапазон: 1–365 дней (24–8760 часов). По умолчанию: 168 (7 дней)

agingEnabled

boolean

–

Включение старения записей: true или false.

Поле aging устарело и игнорируется

defaultTtl

integer

–

Значение SOA Minimum TTL в секундах. Минимум: 1. Опционально: если не указано, значение не меняется

masterIP

array[string]

–

Список IP-адресов мастер-серверов. Обязательно, если зона типа secondary, ds-secondary, stub, ds-stub, forward или ds-forward. Игнорируется для первичных зон (ds-primary, primary). Пустой массив сбрасывает список

Примеры запросов

Обновление режима динамического обновления и TTL:

curl -k --negotiate -u : -X PUT \
  "https://api-host.example.com:9443/api/v1/dns/zone/example.com?partition=domain" \
  -H "Content-Type: application/json" \
  -d '{
    "allowUpdate": 1,
    "defaultTtl": 7200
  }'

Включение старения и обновление мастер-серверов для вторичной зоны:

curl -k --negotiate -u : -X PUT \
  "https://api-host.example.com:9443/api/v1/dns/zone/example.com?partition=domain" \
  -H "Content-Type: application/json" \
  -d '{
    "agingEnabled": true,
    "masterIP": ["10.0.0.1", "10.0.0.2"]
  }'

Ответ "200 OK"

{
  "name": "example.com",
  "nameUnicode": "example.com",
  "partition": "domain",
  "type": "ds-primary",
  "zoneType": 1,
  "defaultTtl": 7200,
  "allowUpdate": 2,
  "noRefreshInterval": 168,
  "refreshInterval": 168,
  "agingEnabled": true,
  "masterIP": []
}

Ошибки

Код Причина

400

Некорректное значение поля (например, allowUpdate не в диапазоне [0,2], defaultTtl < 1, aging передано вместо agingEnabled)

401

Отсутствует или невалиден билет Kerberos (SPNEGO)

404

Зона не найдена в указанной партиции

409

Зона с указанным именем существует в нескольких партициях, но partition не указан — требуется явное указание партиции

422

Попытка задать masterIP для зоны типа ds-primary или primary; или partition=custom без partitionName

500

Внутренняя ошибка сервера при применении изменений (LDAP/RPC ошибка)

501

Попытка обновить тип зоны или другие немодифицируемые параметры

Обновлено: