Обзор

Проекты / 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 — Невалидные параметры
Назад
Проекты
Далее
Контейнеры
В этой статье
GET /v1/project/:projectId/dns
PUT /v1/project/:projectId/dns
GET /v1/project/:projectId/dns/hosts
PUT /v1/project/:projectId/dns/hosts

Мы используем файлы cookies

Продолжив работу с сайтом, вы соглашаетесь с   политикой использования файлов Cookies