API
Настройка доступа
Создайте нового пользователя (например,
api_user
) командой:
rude createsuperuser
При необходимости ограничьте права пользователя через панель администратора
Создайте токен доступа к API для данного пользователя:
rude token create [api_user]
Теперь вы можете использовать API, пример использования:
curl -H "Authorization: Token [TOKEN]" http://[SERVER_ADDR]/api/peer/search/?hostname=XXXX
Функции API
Устройства
Поиск по имени хоста
Запрос:
GET /api/peer/search/?hostname=[search]
Ответ:
{"items": [
{
"server_id": "string",
"hostname": "string",
"username": "string",
"domain": "string",
"platform": "string",
"uname": "string",
"version": "string",
"addr": "string",
"uuid": "string"
},
...]}
Задачи
Получение списка с задачами
Запрос:
GET /automation/api/job/
Ответ:
[
{
"id": int,
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [
int
],
"peers": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string"
}
],
"policies": [
int
],
"dynamic_groups": [
int
]
},
...]
Получение информации конкретной задачи
Запрос:
GET /automation/api/job/{id}/
Ответ:
{
"id": int,
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [
int
],
"peers": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string"
}
],
"policies": [
int
],
"dynamic_groups": [
int
]
}
Получение статуса задачи
Запрос:
GET /automation/api/job/{id}/status/
Ответ:
{
"status": "string",
"id": int,
"name": "string"
}
Удаление задачи
Запрос:
DELETE /automation/api/job/{id}/
Ответ:
204 The server successfully processed the request, but is not returning any content.
Создание задачи
Запрос:
POST /automation/api/job/
Тело запроса:
{
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [ "string" ],
"policies": [
int
],
"dynamic_groups": [ int ]
}
Ответ:
{
"id": int,
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string"
}
],
"policies": [
int
],
"dynamic_groups": [ int ]
}
Обновление задачи PUT
Запрос:
PUT /automation/api/job/{id}/
Тело запроса:
{
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [ "string" ],
"policies": [ int ],
"dynamic_groups": [ int ]
}
Ответ:
{
"id": int,
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string"
}
],
"policies": [ int ],
"dynamic_groups": [ int ]
}
Обновление задачи PATCH
Запрос:
PATCH /automation/api/job/{id}/
Тело запроса:
{
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [ "string" ],
"policies": [ int ],
"dynamic_groups": [ int ]
}
Ответ:
{
"id": int,
"name": "string",
"notify": boolean,
"params": "string",
"enabled": boolean,
"run_on_start": boolean,
"groups": [ int ],
"peers": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string"
}
],
"policies": [ int ],
"dynamic_groups": [ int ]
}
Группы
Получение списка групп с добавленными устройствами
Запрос:
GET /account/api/group/
Ответ:
[
{
"name": "string",
"server_set": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
]
},
...]
Получение информации конкретной группы
Запрос:
GET /account/api/group/{id}/
Ответ:
{
"name": "string",
"server_set": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
]
}
Создание группы
Запрос:
POST /account/api/group/
Тело запроса:
{
"name": "string",
"server_set": [
"hostname"
]
}
Ответ:
{
"name": "string",
"server_set": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
]
}
Обновление группы PUT
Запрос:
PUT /account/api/group/{id}/
Тело запроса:
{
"name": "string",
"server_set": [
"hostname"
]
}
Ответ:
{
"name": "string",
"server_set": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
]
}
Обновление группы PATCH
Запрос:
PATCH /account/api/group/{id}/
Тело запроса:
{
"name": "string",
"server_set": [
"hostname"
]
}
Ответ:
{
"name": "string",
"server_set": [
{
"id": int,
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
]
}
Удаление группы
Запрос:
DELETE /account/api/group/{id}/
Ответ:
204 No response body