Проекты / DNS
Управление DNS-конфигурацией проекта через REST API: настройка DNS-серверов, кэша, балансировки и DNS-записей. Все методы требуют токен аутентификации.
GET /v1/project/:projectId/dns
Возвращает текущую DNS-конфигурацию проекта. Ответ — объект DnsResponse, включающий IP-адрес DNS-сервера, массив nameservers, TTL кэша cache, флаг балансировки loadBalance и список DNS-записей hosts с их IP-адресами и доменами.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Ответ:
{
"id": "990e8400-e29b-41d4-a716-446655440004",
"ip": "192.168.1.100",
"nameservers": ["8.8.8.8", "8.8.4.4"],
"cache": 30,
"loadBalance": false,
"hosts": [
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"ip": "192.168.1.10",
"domain": "example.com"
}
]
}
Ошибки:
404 Not Found— Проект не найден
PUT /v1/project/:projectId/dns
Обновляет DNS-конфигурацию проекта: состав DNS-серверов nameservers, TTL кэша cache, флаг балансировки loadBalance и набор DNS-записей hosts. Переданный массив hosts полностью заменяет существующие записи, а не добавляется к ним. В ответе возвращается обновлённый объект DnsResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
nameservers |
string[] | Нет | Массив IP-адресов DNS-серверов (1-3 шт.) |
cache |
number | Нет | TTL кэша DNS в секундах (от 5 до 3600) |
loadBalance |
boolean | Нет | Включить балансировку нагрузки |
hosts |
array | Нет | DNS-записи (полная замена) |
Пример запроса:
{
"nameservers": ["1.1.1.1", "8.8.8.8"],
"cache": 300,
"loadBalance": true,
"hosts": [
{
"ip": "192.168.1.10",
"domain": "example.com"
},
{
"ip": "192.168.1.11",
"domain": "api.example.com"
}
]
}
Структура hosts[]:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
ip |
string | Да | IP-адрес |
domain |
string | Да | Доменное имя |
Ответ:
{
"id": "990e8400-e29b-41d4-a716-446655440004",
"ip": "192.168.1.100",
"nameservers": ["1.1.1.1", "8.8.8.8"],
"cache": 300,
"loadBalance": true,
"hosts": [
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"ip": "192.168.1.10",
"domain": "example.com"
},
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"ip": "192.168.1.11",
"domain": "api.example.com"
}
]
}
Ошибки:
404 Not Found— Проект не найден400 Bad Request— Невалидные параметры
GET /v1/project/:projectId/dns/hosts
Возвращает все DNS-записи проекта. Ответ — массив объектов DnsHostResponse, каждый элемент которого содержит id, IP-адрес, доменное имя и дату создания записи. Изменить набор записей можно только полной заменой списка методом PUT /v1/project/:projectId/dns/hosts.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Ответ:
[
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"ip": "192.168.1.10",
"domain": "example.com",
"createdAt": "2024-01-15T10:30:00+00:00"
},
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"ip": "192.168.1.11",
"domain": "api.example.com",
"createdAt": "2024-01-15T10:30:00+00:00"
}
]
Ошибки:
404 Not Found— Проект не найден
PUT /v1/project/:projectId/dns/hosts
Заменяет все DNS-записи проекта переданным массивом hosts — выполняется полная замена, а не добавление к существующим записям. Записи пересоздаются: в ответе возвращается итоговый список объектов DnsHostResponse с новыми id и createdAt. Для изменения отдельной записи нужно передать обновлённый список целиком.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
hosts |
array | Да | Новые DNS-записи (полная замена) |
Пример запроса:
{
"hosts": [
{
"ip": "192.168.1.20",
"domain": "new.example.com"
}
]
}
Структура hosts[]:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
ip |
string | Да | IP-адрес |
domain |
string | Да | Доменное имя |
Ответ:
[
{
"id": "cc0e8400-e29b-41d4-a716-446655440007",
"ip": "192.168.1.20",
"domain": "new.example.com",
"createdAt": "2024-01-15T12:00:00+00:00"
}
]
Ошибки:
404 Not Found— Проект не найден400 Bad Request— Невалидные параметры