Обзор

Проекты

Управление проектами через REST API. Все методы требуют токен аутентификации.

POST /v1/project

Создаёт новый проект для текущего пользователя. В теле запроса дополнительно можно задать DNS-серверы и часовую зону (по умолчанию UTC). Имя проекта должно быть уникальным.

Body:

Параметр Тип Обязательный Описание
name string Да Имя проекта (3–60 символов, латиница в нижнем регистре, цифры, дефис и точка)
dnsNameservers string[] Нет Массив IP-адресов DNS-серверов (по умолчанию ['8.8.8.8', '8.8.4.4'])
timezone string Нет Часовая зона проекта (по умолчанию UTC)

Пример запроса:

{
    "name": "my-project",
    "dnsNameservers": ["8.8.8.8", "8.8.4.4"],
    "timezone": "Europe/Moscow"
}

Ответ:

{
    "id": "660e8400-e29b-41d4-a716-446655440001",
    "name": "my-project",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "clusterId": "770e8400-e29b-41d4-a716-446655440002",
    "limitId": "880e8400-e29b-41d4-a716-446655440003",
    "status": "creating",
    "dnsNameservers": ["8.8.8.8", "8.8.4.4"],
    "timezone": "Europe/Moscow",
    "protected": false,
    "paused": false,
    "blocked": false,
    "createdAt": "2024-01-15T10:30:00+00:00",
    "updatedAt": "2024-01-15T10:30:00+00:00"
}

Ошибки:

  • 409 Conflict — Проект с таким именем уже существует
  • 400 Bad Request — Нет активного кластера или лимитов
  • 400 Bad Request — Невалидные параметры

DELETE /v1/project/:projectId

Удаляет проект по его UUID. Все связанные с проектом ресурсы будут очищены, а подтверждением успешного удаления служит пустой ответ без тела.

Параметры:

Параметр Место Тип Обязательный Описание
projectId Path UUID Да ID проекта

Ответ: 204 No Content — пустой ответ при успешном удалении.

Ошибки:

  • 404 Not Found — Проект не найден

GET /v1/projects

Возвращает все проекты, принадлежащие текущему пользователю. Ответ — массив объектов Project, каждый элемент которого описывает один проект: идентификатор, имя, статус, даты создания и обновления. Метод не принимает параметров.

Ответ:

[
    {
        "id": "660e8400-e29b-41d4-a716-446655440001",
        "name": "my-project",
        "status": "ready",
        "createdAt": "2024-01-15T10:30:00+00:00",
        "updatedAt": "2024-01-15T10:30:00+00:00"
    }
]

GET /v1/project/:projectId

Возвращает один проект по его UUID. Ответ — объект Project, включающий идентификаторы проекта, владельца, кластера и лимита, текущий status, DNS-серверы, часовую зону, флаги protected, paused и blocked, а также даты создания и обновления.

Параметры:

Параметр Место Тип Обязательный Описание
projectId Path UUID Да ID проекта

Ответ:

{
    "id": "660e8400-e29b-41d4-a716-446655440001",
    "name": "my-project",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "clusterId": "770e8400-e29b-41d4-a716-446655440002",
    "limitId": "880e8400-e29b-41d4-a716-446655440003",
    "status": "ready",
    "dnsNameservers": ["8.8.8.8", "8.8.4.4"],
    "timezone": "Europe/Moscow",
    "protected": false,
    "paused": false,
    "blocked": false,
    "createdAt": "2024-01-15T10:30:00+00:00",
    "updatedAt": "2024-01-15T10:30:00+00:00",
    "pausedAt": null
}

Ошибки:

  • 404 Not Found — Проект не найден

GET /v1/project/:projectId/stats

Возвращает агрегированную статистику использования ресурсов проекта. Блок total отражает лимиты проекта — CPU, память, HDD и SSD; блок containers — количество контейнеров и реплик с утилизацией CPU и памяти; отдельные блоки описывают репозитории, приложения, тома (с общим и занятым размером), конфигурации и переменные окружения, а также сетевые объекты: сервисы, домены, маршруты и порты. CPU указывается в millicores, память и диски — в байтах.

Параметры:

Параметр Место Тип Обязательный Описание
projectId Path UUID Да ID проекта

Ответ:

{
    "total": {
        "cpu": 1000,
        "memory": 2147483648,
        "hdd": 10737418240,
        "ssd": 5368709120
    },
    "containers": {
        "count": 3,
        "replicas": 5,
        "cpu": 1000,
        "cpuUsage": 250,
        "memory": 2147483648,
        "memoryUsage": 536870912
    },
    "repositories": {
        "count": 2
    },
    "applications": {
        "count": 1
    },
    "volumes": {
        "count": 4,
        "size": 16106127360,
        "usedSize": 8053063680
    },
    "environments": {
        "configs": {
            "count": 3
        },
        "variables": {
            "count": 15
        }
    },
    "network": {
        "servicesCount": 2,
        "domainsCount": 3,
        "routesCount": 5,
        "portsCount": 4
    }
}

Ошибки:

  • 404 Not Found — Проект не найден

POST /v1/project/:projectId/pause/enable

Приостанавливает проект: останавливает все запущенные контейнеры и связанные с ним ресурсы. В возвращаемом объекте Project выставляется paused: true, а в поле pausedAt фиксируется время приостановки; статус проекта при этом сохраняется. Для возобновления работы используется POST /v1/project/:projectId/pause/disable.

Параметры:

Параметр Место Тип Обязательный Описание
projectId Path UUID Да ID проекта

Ответ:

{
    "id": "660e8400-e29b-41d4-a716-446655440001",
    "name": "my-project",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "clusterId": "770e8400-e29b-41d4-a716-446655440002",
    "limitId": "880e8400-e29b-41d4-a716-446655440003",
    "status": "ready",
    "dnsNameservers": ["8.8.8.8", "8.8.4.4"],
    "timezone": "Europe/Moscow",
    "protected": false,
    "paused": true,
    "blocked": false,
    "createdAt": "2024-01-15T10:30:00+00:00",
    "updatedAt": "2024-01-15T12:00:00+00:00",
    "pausedAt": "2024-01-15T12:00:00+00:00"
}

Ошибки:

  • 404 Not Found — Проект не найден

POST /v1/project/:projectId/pause/disable

Возобновляет работу приостановленного проекта, восстанавливая все его контейнеры и ресурсы. В возвращаемом объекте Project флаг paused сбрасывается в false, поле pausedAt принимает значение null, а updatedAt обновляется на момент выполнения операции.

Параметры:

Параметр Место Тип Обязательный Описание
projectId Path UUID Да ID проекта

Ответ:

{
    "id": "660e8400-e29b-41d4-a716-446655440001",
    "name": "my-project",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "clusterId": "770e8400-e29b-41d4-a716-446655440002",
    "limitId": "880e8400-e29b-41d4-a716-446655440003",
    "status": "ready",
    "dnsNameservers": ["8.8.8.8", "8.8.4.4"],
    "timezone": "Europe/Moscow",
    "protected": false,
    "paused": false,
    "blocked": false,
    "createdAt": "2024-01-15T10:30:00+00:00",
    "updatedAt": "2024-01-15T13:00:00+00:00",
    "pausedAt": null
}

Ошибки:

  • 404 Not Found — Проект не найден
Назад
Описание
Далее
Проекты / DNS
В этой статье
POST /v1/project
DELETE /v1/project/:projectId
GET /v1/projects
GET /v1/project/:projectId
GET /v1/project/:projectId/stats
POST /v1/project/:projectId/pause/enable
POST /v1/project/:projectId/pause/disable

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

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