Порты и WAF
Управление портами через REST API. Порты открывают доступ к сервисам проекта и поддерживают IP-правила фильтрации (WAF). Все методы требуют токен аутентификации.
POST /v1/project/:projectId/port
Создаёт в указанном проекте порт, открывающий доступ к сервису. Порт привязывается к сервису через serviceId и servicePort (например, 8080 или 8080/tcp). В ответе возвращается объект PortResponse с назначенными host, ip, nodeIp и номером port; новый порт создаётся со статусом creating.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
name |
string | Да | Имя порта (латиница в нижнем регистре, цифры, дефис и точка) |
serviceId |
string | Да | ID сервиса |
servicePort |
string | Да | Порт сервиса (8080 или 8080/tcp) |
Пример запроса:
{
"name": "http-port",
"serviceId": "880e8400-e29b-41d4-a716-446655440003",
"servicePort": "8080/tcp"
}
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"name": "http-port",
"host": "abcd-efgh-ijkl.example.com",
"ip": "192.168.1.2",
"nodeIp": "10.0.0.2",
"port": 30080,
"servicePort": "8080/TCP",
"status": "creating",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Проект или сервис не найден400 Bad Request— Невалидные параметры
PUT /v1/port/:portId
Обновляет порт по его UUID. В теле запроса передаются serviceId и servicePort, что позволяет изменить целевой сервис и его порт. Возвращает объект PortResponse, аналогичный ответу на создание.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
serviceId |
string | Да | ID нового целевого сервиса |
servicePort |
string | Да | Порт сервиса (например, 9000/tcp) |
Пример запроса:
{
"serviceId": "880e8400-e29b-41d4-a716-446655440003",
"servicePort": "9000/tcp"
}
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"name": "http-port",
"host": "abcd-efgh-ijkl.example.com",
"ip": "192.168.1.2",
"nodeIp": "10.0.0.2",
"port": 30080,
"servicePort": "9000/TCP",
"status": "ready",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Порт не найден
GET /v1/port/:portId
Возвращает один порт по его UUID. Ответ — объект PortResponse, включающий имя, хост, IP-адрес, IP-адрес ноды, номер порта, порт сервиса, статус и даты создания и обновления.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"name": "http-port",
"host": "abcd-efgh-ijkl.example.com",
"ip": "192.168.1.2",
"nodeIp": "10.0.0.2",
"port": 30080,
"servicePort": "8080/TCP",
"status": "ready",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Порт не найден
GET /v1/project/:projectId/ports
Возвращает все порты, созданные в указанном проекте. Ответ содержит массив объектов PortResponse с тем же набором полей, что и при получении одного порта.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Ответ:
[
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"name": "http-port",
"host": "abcd-efgh-ijkl.example.com",
"ip": "192.168.1.2",
"nodeIp": "10.0.0.2",
"port": 30080,
"servicePort": "8080/TCP",
"status": "ready",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
]
Ошибки:
404 Not Found— Проект не найден
POST /v1/port/:portId/reload
Перезагружает конфигурацию порта, повторно применяя текущие настройки. Возвращает объект PortResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Ответ:
{
"id": "bb0e8400-e29b-41d4-a716-446655440006",
"name": "http-port",
"host": "abcd-efgh-ijkl.example.com",
"ip": "192.168.1.2",
"nodeIp": "10.0.0.2",
"port": 30080,
"servicePort": "8080/TCP",
"status": "ready",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Порт не найден
DELETE /v1/port/:portId
Удаляет порт по его UUID. При успешном удалении метод возвращает пустой ответ без тела.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Ответ: 204 No Content — пустой ответ при успешном удалении.
Ошибки:
404 Not Found— Порт не найден
GET /v1/port/:portId/waf
Возвращает WAF-конфигурацию порта. Ответ включает идентификатор WAF и правила IP-фильтрации ipRules: каждое правило задаёт адрес (например, 192.168.1.1 или подсеть 10.0.0.0/8) и действие allow либо deny.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Ответ:
{
"id": "ff0e8400-e29b-41d4-a716-446655440007",
"ipRules": [
{
"ip": "192.168.1.1",
"action": "allow"
},
{
"ip": "10.0.0.0/8",
"action": "deny"
}
]
}
Ошибки:
404 Not Found— Порт не найден
PUT /v1/port/:portId/waf
Обновляет WAF-конфигурацию порта, которая состоит из правил IP-фильтрации. Тело запроса принимает список ipRules, где для каждого адреса или подсети указывается действие allow или deny. Возвращает объект PortWafResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
portId |
Path | UUID | Да | ID порта |
Пример запроса:
{
"ipRules": [
{
"ip": "192.168.1.1",
"action": "allow"
},
{
"ip": "10.0.0.0/8",
"action": "deny"
}
]
}
Ответ:
{
"id": "ff0e8400-e29b-41d4-a716-446655440007",
"ipRules": [
{
"ip": "192.168.1.1",
"action": "allow"
},
{
"ip": "10.0.0.0/8",
"action": "deny"
}
]
}
Ошибки:
404 Not Found— Порт не найден