Skip to content

Instantly share code, notes, and snippets.

@arikon
Created May 18, 2016 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arikon/2f078fcf15aae07984c7e1d35def90bf to your computer and use it in GitHub Desktop.
Save arikon/2f078fcf15aae07984c7e1d35def90bf to your computer and use it in GitHub Desktop.
swagger.json
{
"swagger": "2.0",
"basePath": "/api/v1.0",
"info": {
"title": "Sandbox JSON API",
"description": "Описание JSON API для взаимодействия с Sandbox (на данный момент находится в разработке)",
"contact": {
"email": "sandbox@yandex-team.ru"
},
"version": "1.0"
},
"consumes": [
"application/json; charset=utf-8"
],
"produces": [
"application/json; charset=utf-8"
],
"tags": [
{
"name": "authenticate",
"description": "Аутентификация пользователя"
},
{
"name": "batch",
"description": "Массовые операции"
},
{
"name": "client",
"description": "Операции над объектами клиентов"
},
{
"name": "group",
"description": "Операции над объектами пользовательских групп"
},
{
"name": "notification",
"description": "Операции над объектами оповещений"
},
{
"name": "release",
"description": "Операции над объектами релизов"
},
{
"name": "resource",
"description": "Операции над объектами ресурсов"
},
{
"name": "scheduler",
"description": "Операции над объектами планировщиков"
},
{
"name": "suggest",
"description": "Поисковые подсказки"
},
{
"name": "service",
"description": "Различная информация о состоянии сервиса, статистика и административные операции"
},
{
"name": "user",
"description": "Информация о текущем пользователе"
},
{
"name": "task",
"description": "Операции над объектами задач"
},
{
"name": "vault",
"description": "Операции над объектами хранилища секретных данных"
}
],
"paths": {
"/authenticate/ssh-key/{login}/{fingerprint}": {
"post": {
"summary": "Получение псевдо-OAuth токена по SSH-ключу",
"operationId": "ssh_key_authenticate",
"parameters": [
{
"name": "login",
"description": "Идентификатор (логин) пользователя, производящего аутентификацию",
"required": true,
"in": "path",
"type": "string"
},
{
"name": "fingerprint",
"description": "MD5-отпечаток ключа, использованного для получения подписи",
"required": true,
"default": 0,
"type": "string",
"in": "path"
},
{
"name": "cnonce",
"description": "Шестнадцатеричное представление произвольных данных, сгенерированных клиентом для получения подписи",
"required": false,
"default": 0,
"type": "string",
"in": "query"
},
{
"name": "signature",
"description": "Подпись, сгенерированная закрытым ключем с указанным отпечатком, от SHA1 контрольной суммы от имени пользователя, отпечатка ключа и произвольного числа, сгенерированного клиентом",
"schema": {
"type": "string"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "Псевдо-OAuth токен, действующий в течении 3х часов с момента последнего использования",
"schema": {
"type": "string"
}
}
},
"produces": [
"text/plain; charset=utf8"
],
"consumes": [
"application/octet-stream"
],
"tags": [
"authenticate"
]
}
},
"/authenticate/oauth/client": {
"get": {
"summary": "Получение информации, необходимой для генерации OAuth-токенов",
"operationId": "oauth_client_info",
"responses": {
"200": {
"description": "Информация, необходимая для генерации OAuth-токенов",
"schema": {
"$ref": "#/definitions/OAuthClientInfo"
}
}
},
"tags": [
"authenticate"
]
}
},
"/authenticate/oauth/token": {
"post": {
"summary": "Генерация OAuth-токенов",
"operationId": "oauth_token_create",
"parameters": [
{
"name": "code",
"description": "Код, сгенерированный OAuth-сервером",
"schema": {
"$ref": "#/definitions/OAuthTokenCreate"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "OAuth-токен, выданый OAuth-сервером на основе переданного кода",
"schema": {
"type": "string"
}
},
"400": {
"description": "Ошибка получения OAuth-токена с указанием причины."
}
},
"produces": [
"text/plain; charset=utf8"
],
"tags": [
"authenticate"
]
}
},
"/batch/tasks/{operation}": {
"put": {
"summary": "Массовые операции над объектами задач",
"operationId": "batch_results",
"parameters": [
{
"name": "objects_list",
"description": "Список идентификаторов объектов для массовой операции",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
}
},
"in": "body"
},
{
"name": "operation",
"description": "Тип операции",
"required": true,
"type": "string",
"enum": [
"delete",
"stop",
"start",
"increase_priority",
"suspend",
"resume"
],
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/BatchResults"
}
}
}
},
"tags": [
"batch"
]
}
},
"/batch/resources/{operation}": {
"put": {
"summary": "Массовые операции над объектами ресурсов",
"operationId": "batch_results",
"parameters": [
{
"name": "objects_list",
"description": "Список идентификаторов объектов для массовой операции",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
}
},
"in": "body"
},
{
"name": "operation",
"description": "Тип операции",
"required": true,
"type": "string",
"enum": [
"delete",
"restore",
"backup",
"touch",
"reshare",
"do_not_remove"
],
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/BatchResults"
}
}
}
},
"tags": [
"batch"
]
}
},
"/batch/clients/{operation}": {
"put": {
"summary": "Массовые операции над объектами клиентов",
"operationId": "batch_results",
"parameters": [
{
"name": "objects_list",
"description": "Список идентификаторов объектов для массовой операции",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
}
},
"in": "body"
},
{
"name": "operation",
"description": "Тип операции",
"required": true,
"type": "string",
"enum": [
"reload",
"reboot",
"shutdown"
],
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/BatchResults"
}
}
}
},
"tags": [
"batch"
]
}
},
"/batch/schedulers/{operation}": {
"put": {
"summary": "Массовые операции над объектами планировщиков",
"operationId": "batch_results",
"parameters": [
{
"name": "objects_list",
"description": "Список идентификаторов объектов для массовой операции",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
}
},
"in": "body"
},
{
"name": "operation",
"description": "Тип операции",
"required": true,
"type": "string",
"enum": [
"delete",
"stop",
"start"
],
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/BatchResults"
}
}
}
},
"tags": [
"batch"
]
}
},
"/client": {
"get": {
"summary": "Получение списка клиентов",
"description": "Параметры фильтра для списка необходимо указывать в query-параметрах",
"operationId": "clients_list",
"parameters": [
{
"name": "id",
"description": "Фильтр по идентификатор(у,ам) клиентов",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "platform",
"description": "Фильтр по платформе клиента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "busy",
"description": "Флаг для фильтрации занятых клиентов",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "alive",
"description": "Флаг для фильтрации живых клиентов",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "tags",
"description": "Запрос по тэгам клиента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ClientsList"
}
}
},
"tags": [
"client"
]
},
"post": {
"summary": "Регистрация (нового) запуска клиента",
"description": "Метод предназначен для служебных целей",
"operationId": "client_started",
"parameters": [
{
"name": "body",
"description": "Данные для регистрации запуска клиента",
"required": true,
"schema": {
"$ref": "#/definitions/ClientStarted"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/ClientEntity"
},
"headers": {
"location": {
"description": "URL для данных о клиенте",
"type": "string"
}
}
}
},
"tags": [
"client"
]
}
},
"/client/{id}": {
"get": {
"summary": "Детальная информация о клиенте",
"operationId": "client_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор клиента",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ClientEntity"
}
}
},
"tags": [
"client"
]
},
"put": {
"summary": "Обновление информации о клиенте",
"description": "Метод предназначен для служебных целей",
"operationId": "client_ping",
"parameters": [
{
"name": "id",
"description": "Идентификатор клиента",
"required": true,
"type": "string",
"in": "path"
},
{
"name": "body",
"description": "Данные для обновления информации о клиенте",
"required": true,
"schema": {
"$ref": "#/definitions/ClientPing"
},
"in": "body"
}
],
"responses": {
"200": {
"description": "Данные успешно обработаны, передача указаний к действию",
"schema": {
"$ref": "#/definitions/ClientAction"
}
},
"204": {
"description": "Данные успешно обработаны, нет указаний к действиям (режим простоя)"
}
},
"tags": [
"client"
]
}
},
"/client/{id}/comment": {
"put": {
"summary": "Обновление комментария о клиенте",
"description": "При успешном выполнении возвращается ответ без данных со статусом 204",
"operationId": "client_comment_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор клиента",
"required": true,
"type": "string",
"in": "path"
},
{
"name": "comment",
"description": "Содержимое комментария",
"required": true,
"schema": {
"type": "string"
},
"in": "body"
}
],
"consumes": [
"text/plain; charset=utf8"
],
"responses": {
"201": {
"description": "Операция выполнена успешно"
},
"403": {
"description": "Недостаточно прав для изменения данных"
},
"404": {
"description": "Объект не найден"
}
},
"tags": [
"client"
]
}
},
"/client/{id}/service/resources": {
"get": {
"summary": "Служебный интерфейс для получения списка идентификаторов всех зарегистрированных ресурсов на данном сервере",
"operationId": "client_service_resources",
"parameters": [
{
"name": "id",
"description": "Идентификатор клиента",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
}
},
"tags": [
"client"
]
}
},
"/group": {
"get": {
"summary": "Получение списка групп пользователей",
"operationId": "group_list",
"parameters": [
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/GroupList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"group"
]
},
"post": {
"summary": "Регистрация новой группы",
"operationId": "group_create",
"parameters": [
{
"name": "data",
"description": "Информация для регистрации новой группы",
"required": true,
"schema": {
"$ref": "#/definitions/GroupCreate"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"headers": {
"Location": {
"description": "URL на вновь созданный элемент",
"type": "string"
}
},
"schema": {
"$ref": "#/definitions/Group"
}
}
},
"tags": [
"group"
]
}
},
"/group/{name}": {
"get": {
"summary": "Детальная информация о группе пользователей",
"operationId": "group_get",
"parameters": [
{
"name": "name",
"description": "Имя группы",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Group"
}
}
},
"tags": [
"group"
]
},
"put": {
"summary": "Изменение информации о группе пользователей",
"operationId": "group_update",
"parameters": [
{
"name": "name",
"description": "Имя группы",
"required": true,
"type": "integer",
"format": "int32",
"in": "path"
},
{
"name": "body",
"description": "Данные для изменения",
"required": true,
"schema": {
"$ref": "#/definitions/GroupUpdate"
},
"in": "body"
}
],
"responses": {
"200": {
"description": "Если в запросе будет фигурировать заголовок X-Request-Updated-Data, в ответе будет возвращен обновлённый объект",
"schema": {
"$ref": "#/definitions/Group"
}
},
"204": {
"description": "Информация о группе изменена"
}
},
"tags": [
"group"
]
},
"delete": {
"summary": "Удаление группы пользователей",
"operationId": "group_delete",
"parameters": [
{
"name": "name",
"description": "Имя группы",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"204": {
"description": "Информация о группе удалена"
}
},
"tags": [
"group"
]
}
},
"/notification": {
"get": {
"summary": "Получение списка оповещений",
"operationId": "notification_list",
"parameters": [
{
"name": "author",
"description": "Фильтр по (части) имени автора оповещения",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "recipient",
"description": "Фильтр по адресату уведомления",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "transport",
"description": "Фильтр уведомлений, по используемому транспорту",
"required": false,
"type": "string",
"in": "query",
"enum": [
"email",
"jabber"
]
},
{
"name": "sent",
"description": "Фильтр по признаку отправленности уведомления",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "task_id",
"description": "Фильтр по идентификатору задачи из которой был отправленно уведомление",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "created",
"description": "Фильтр с парой значений UTC дат в формате ISO 8601, разделенными двумя точками (..), для указания диапазона времени создания уведомления",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/NotificationList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"notification"
]
},
"post": {
"summary": "Создание оповещения",
"operationId": "notification_create",
"parameters": [
{
"name": "data",
"description": "Информация для регистрации элемента в хранилище",
"required": true,
"schema": {
"$ref": "#/definitions/NotificationCreate"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/Notification"
},
"headers": {
"location": {
"description": "URL на созданное уведомление",
"type": "string"
}
}
}
},
"tags": [
"notification"
]
}
},
"/notification/{id}": {
"get": {
"summary": "Детальная информация об уведомлении",
"operationId": "notification_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор уведомления",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Notification"
}
}
},
"tags": [
"notification"
]
}
},
"/release": {
"get": {
"summary": "Получение списка релизов",
"operationId": "release_list",
"parameters": [
{
"name": "resource_type",
"description": "Фильтр типа релизнутого ресурса",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "task_id",
"description": "Фильтр по идентификатор(у,ам) задач",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "type",
"description": "Фильтр по типу(у,ам) релиза, разделенных запятыми",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "owner",
"description": "Фильтр по владельцу задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "created",
"description": "Фильтр с парой значений UTC дат в формате ISO 8601, разделенными двумя точками (..), для указания диапазона времени создания релиза",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "include_broken",
"description": "Включать ли в выборку релизы с ресурсами в состоянии BROKEN",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "arch",
"description": "Фильтр по архитектуре ресурса",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ReleaseList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"release"
]
},
"post": {
"summary": "Создание релиза",
"operationId": "release_create",
"parameters": [
{
"name": "body",
"description": "Данные о релизе",
"required": true,
"schema": {
"$ref": "#/definitions/ReleaseCreate"
},
"in": "body"
}
],
"responses": {
"202": {
"description": "Начат процесс релиза задачи"
}
},
"tags": [
"release"
]
}
},
"/release/{id}": {
"get": {
"summary": "Информация о релизе",
"description": "Запрос перенаправляется на задачу релиза",
"operationId": "release_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Release"
}
},
"400": {
"description": "Incorrect id"
},
"404": {
"description": "Release not found"
}
},
"tags": [
"release"
]
}
},
"/resource": {
"get": {
"summary": "Получение списка ресурсов",
"description": "Параметры фильтра для списка необходимо указывать в query-параметрах",
"operationId": "resource_list",
"parameters": [
{
"name": "id",
"description": "Фильтр по идентификатор(у,ам) ресурсов",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "type",
"description": "Фильтр типа ресурса",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "arch",
"description": "Фильтр по идентификатору архитектуры ресурса",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "state",
"description": "Фильтр состоянию ресурса",
"required": false,
"type": "string",
"enum": [
"NOT_READY",
"READY",
"BROKEN",
"DELETED"
],
"in": "query"
},
{
"name": "owner",
"description": "Фильтр по владельцу ресурса",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "client",
"description": "Фильтр по клиентам содержащим ресурс",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "task_id",
"description": "Фильтр по идентификатор(у,ам) задач(и) создавшей ресурс",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "created",
"description": "Фильтр с парой значений UTC дат в формате ISO 8601, разделенными двумя точками (..), для указания диапазона времени создания ресурса",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "attrs",
"description": "Фильтр по имени атрибутам ресурса. Словарь JSON, сериализованый в строку",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "any_attr",
"description": "Объединять атрибуты из attrs через логическое ИЛИ. По-умолчанию через И",
"required": false,
"type": "boolean",
"default": false,
"in": "query"
},
{
"name": "attr_name",
"description": "Фильтр по имени атрибута ресурса (устаревший, используй attrs)",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "attr_value",
"description": "Фильтр по значению атрибута ресурса (устаревший, используй attrs)",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "dependant",
"description": "Фильтр по идентификатору задачи которая зависит от ресурсов",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
},
"schema": {
"$ref": "#/definitions/ResourceList"
}
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}": {
"get": {
"summary": "Детальная информация о ресурсе",
"operationId": "resource_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Resource"
}
}
},
"tags": [
"resource"
]
},
"put": {
"summary": "Обновить информацию о времени последнего доступа к ресурсу (touch)",
"operationId": "resource_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
},
"403": {
"description": "Недостаточно прав для операции"
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/attribute": {
"get": {
"summary": "Данные для просмотра атрибутов ресурса",
"operationId": "resource_attribute",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ResourceAttribute"
}
}
}
},
"tags": [
"resource"
]
},
"post": {
"summary": "Создать атрибут ресурса",
"operationId": "resource_attribute_post",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "attr",
"description": "Атрибут ресурса",
"required": true,
"in": "body",
"schema": {
"$ref": "#/definitions/ResourceAttribute"
}
}
],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/ResourceAttribute"
}
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/attribute/{name}": {
"put": {
"summary": "Изменить значение атрибута ресурса",
"operationId": "resource_attribute_put",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "name",
"description": "Имя атрибута",
"required": true,
"type": "string",
"in": "path"
},
{
"name": "body",
"description": "Значение атрибута",
"required": true,
"in": "body",
"schema": {
"$ref": "#/definitions/ResourceAttribute"
}
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
}
},
"tags": [
"resource"
]
},
"delete": {
"summary": "Удалить атрибут ресурса",
"operationId": "resource_attribute_delete",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "name",
"description": "Имя атрибута",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/data/rsync": {
"get": {
"summary": "Список хостов на которых доступен ресурс с rsync-адресами",
"operationId": "resource_data_rsync",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ResourceUrlItem"
}
}
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/data/http": {
"get": {
"summary": "Список хостов на которых доступен ресурс с http-адресами",
"operationId": "resource_data_rsync",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ResourceUrlItem"
}
}
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/source": {
"post": {
"summary": "Добавить хост текущей сессии выполнения задачи в качестве источника данных ресурса",
"operationId": "resource_source_add",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
},
"403": {
"description": "Недостаточно прав для операции"
}
},
"tags": [
"resource"
]
}
},
"/resource/{id}/source/{host}": {
"delete": {
"summary": "Удалить ресурс с указанного хоста",
"operationId": "resource_data_delete",
"parameters": [
{
"name": "id",
"description": "Идентификатор ресурса",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "host",
"description": "Название хоста, с которого необходимо удалить ресурс",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
}
},
"tags": [
"resource"
]
}
},
"/scheduler": {
"get": {
"summary": "Получение списка планировщиков",
"description": "Параметры фильтра для списка необходимо указывать в query-параметрах",
"operationId": "schedulers_list",
"parameters": [
{
"name": "task_type",
"description": "Фильтр по типу задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "id",
"description": "Фильтр по идентификатор(у,ам) планировщик(а,ов)",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "status",
"description": "Фильтр по статус(у,ам) планировщиков, разделенных запятыми",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "owner",
"description": "Фильтр по владельцу планировщика",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "author",
"description": "Фильтр по автору планировщика",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/SchedulersList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"scheduler"
]
},
"post": {
"summary": "Создание планировщика",
"operationId": "scheduler_create",
"parameters": [
{
"name": "data",
"description": "Данные для создания планировщика",
"required": true,
"schema": {
"$ref": "#/definitions/SchedulerNew"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/Scheduler"
},
"headers": {
"Location": {
"description": "URL на созданный планировщик",
"type": "string"
}
}
}
},
"tags": [
"scheduler"
]
}
},
"/scheduler/{id}": {
"get": {
"summary": "Детальная информация о планировщике",
"operationId": "scheduler_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор планировщика",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Scheduler"
}
}
},
"tags": [
"scheduler"
]
},
"put": {
"summary": "Обновление информации о планировщике",
"description": "При успешном выполнении возвращается обновленный объект планировщика, если в запросе присутствовал заголовок X-Request-Updated-Data",
"operationId": "scheduler_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор планировщика",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Описание параметров планировщика подлежащих обновлению",
"required": true,
"schema": {
"$ref": "#/definitions/SchedulerUpdate"
},
"in": "body"
}
],
"responses": {
"200": {
"description": "Если в запросе будет фигурировать заголовок X-Request-Updated-Data, в ответе будет возвращен обновлённый объект",
"schema": {
"$ref": "#/definitions/Scheduler"
}
},
"204": {
"description": "Планировщик обновлён успешно."
},
"400": {
"description": "Bad request."
},
"404": {
"description": "Scheduler {id} not found."
}
},
"tags": [
"scheduler"
]
}
},
"/scheduler/{id}/custom/fields": {
"get": {
"summary": "Данные для просмотра информации о полях задач создаваемых планировщиком",
"description": "Необходимо получать для scheduler view/edit формы",
"operationId": "scheduler_task_custom_view",
"parameters": [
{
"name": "id",
"description": "Идентификатор планировщика",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskCustomFieldMeta"
}
}
}
},
"tags": [
"scheduler"
]
},
"post": {
"summary": "Валидация данных полей задачи формы планировщика",
"operationId": "scheduler_task_fields_validate",
"parameters": [
{
"name": "id",
"description": "Идентификатор планировщика",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для валидации формы задачи",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
},
"in": "body"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateResultItem"
}
}
}
},
"tags": [
"scheduler"
]
},
"put": {
"summary": "Обновление данных полей задачи формы планировщика",
"operationId": "scheduler_task_fields_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор планировщика",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для обновления полей создаваемых задач",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
},
"in": "body"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateResultItem"
}
}
}
},
"tags": [
"scheduler"
]
}
},
"/suggest/quicksearch/{query}": {
"get": {
"summary": "Подсказки для быстрого поиска",
"operationId": "quicksearch_suggest",
"parameters": [
{
"name": "query",
"description": "Поисковый запрос",
"required": true,
"type": "string",
"in": "path"
},
{
"name": "limit",
"description": "Ограничение на количество возвращаемых записей в каждом из блоков",
"required": true,
"type": "integer",
"format": "int32",
"in": "query",
"default": 3
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/QuicksearchSuggest"
}
}
}
},
"tags": [
"suggest"
]
}
},
"/suggest/resource": {
"get": {
"summary": "Подсказки для выбора типа ресурса - возвращает список всех известных типов ресурсов в качестве ключей и их описание в качестве значений",
"operationId": "resource_suggest",
"parameters": [
{
"name": "type",
"description": "Запрос по определенному типу ресурса",
"required": false,
"type": "string",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/SuggestType"
}
}
}
},
"tags": [
"suggest"
]
}
},
"/suggest/task": {
"get": {
"summary": "Подсказки для выбора типа задачи - возвращает список всех известных типов задач в качестве ключей и их описание в качестве значений",
"operationId": "task_suggest",
"parameters": [
{
"name": "type",
"description": "Запрос по определенному типу задачи",
"required": false,
"type": "string",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/SuggestType"
}
}
}
},
"tags": [
"suggest"
]
}
},
"/suggest/group": {
"get": {
"summary": "Подсказки для выбора группы - возвращает список всех известных имен групп",
"operationId": "group_suggest",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/SuggestGroup"
}
}
}
},
"tags": [
"suggest"
]
}
},
"/suggest/client": {
"get": {
"summary": "Подсказки для выбора клиента - возвращает список всех известных имен клиентов, моделей CPU и платформ для заданного запроса",
"operationId": "client_suggest",
"parameters": [
{
"name": "task_type",
"description": "Тип задачи для фильтрации списка подходящих хостов для данного типа задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "platform",
"description": "Фильтр по платформе",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "cpu",
"description": "Фильтр по модели CPU",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "host",
"description": "Фильтр по имени клиента",
"required": false,
"type": "string",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/SuggestClient"
}
}
},
"tags": [
"suggest"
]
}
},
"/service/status/threads": {
"get": {
"summary": "Информация о состоянии сервисных потоков",
"operationId": "service_threads",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ServiceThreadStatus"
}
}
}
},
"tags": [
"service"
]
}
},
"/service/status/operation_mode": {
"get": {
"summary": "Текущий режим функционирования сервиса",
"operationId": "operation_mode",
"responses": {
"200": {
"description": "",
"schema": {
"type": "string",
"enum": [
"normal",
"read_only",
"pre_read_only"
]
}
}
},
"tags": [
"service"
]
},
"put": {
"summary": "Изменение текущего режима функционирования сервиса",
"operationId": "operation_mode_switch",
"parameters": [
{
"name": "mode",
"description": "Требуемый режим функционирования сервиса",
"required": true,
"in": "body",
"schema": {
"type": "string",
"enum": [
"normal",
"read_only",
"pre_read_only"
]
}
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"service"
]
}
},
"/service/status/database/shards": {
"get": {
"summary": "Информация о состоянии mongod процессов",
"operationId": "database",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/DatabaseShard"
}
}
}
},
"tags": [
"service"
]
}
},
"/service/status/database/size": {
"get": {
"summary": "Информация о размере базы данных",
"operationId": "database",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/DatabaseSize"
}
}
}
},
"tags": [
"service"
]
}
},
"/service/status/database/current_op": {
"get": {
"summary": "Информация о суммарной длительности текущих операций базы данных",
"operationId": "database",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/DatabaseCurrentOp"
}
}
}
},
"tags": [
"service"
]
}
},
"/service/status/server": {
"get": {
"summary": "Информация о состоянии Web-сервера, обработавшего запрос",
"operationId": "web_server",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/WebServerStatus"
}
}
},
"tags": [
"service"
]
}
},
"/service/statistics/task/status/absolute": {
"get": {
"summary": "Счетчики по состояниям задач в абсолютных значениях",
"operationId": "task_status_absolute_statistics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TaskStatusStatistics"
}
}
},
"tags": [
"service"
]
}
},
"/service/statistics/task/status/delta": {
"get": {
"summary": "Изменения в счетчиках задач по состояниям плавающим окном за последний час",
"operationId": "task_status_delta_statistics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TaskStatusStatistics"
}
}
},
"tags": [
"service"
]
}
},
"/service/statistics/task/types/not_used": {
"get": {
"summary": "Список типов задач, которые не запускались более N дней",
"operationId": "task_types_not_used_statistics",
"parameters": [
{
"name": "days_ago",
"description": "число дней",
"type": "integer",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTypesNotusedStatistics"
}
}
}
},
"tags": [
"service"
]
}
},
"/service/statistics/storage/external_backup": {
"get": {
"summary": "Статистика о состоянии бэкапа ресурсов в флагом ttl=inf во внешнее хранилище (MDS)",
"operationId": "storage_external_backup_statistics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/ExternalBackupStatistics"
}
}
},
"tags": [
"service"
]
}
},
"/service/statistics/storage/size": {
"get": {
"summary": "Статистика о размере хранилища",
"operationId": "storage_external_backup_statistics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/StorageSizeStatistics"
}
}
},
"tags": [
"service"
]
}
},
"/service/ui/notification": {
"get": {
"summary": "Получение списка зарегистрированных UI-уведомлений",
"operationId": "ui_notification_list",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/UINotification"
}
}
}
},
"tags": [
"service"
]
},
"post": {
"summary": "Регистрация нового UI-уведомления",
"operationId": "ui_notification_create",
"parameters": [
{
"name": "notification",
"description": "UI-уведомление",
"required": true,
"in": "body",
"schema": {
"$ref": "#/definitions/UINotificationCreate"
}
}
],
"responses": {
"201": {
"description": "",
"headers": {
"Location": {
"description": "URL на вновь созданное уведомление",
"type": "string"
}
},
"schema": {
"$ref": "#/definitions/UINotification"
}
}
},
"tags": [
"service"
]
}
},
"/service/ui/notification/{id}": {
"delete": {
"summary": "Удаление UI-уведомления",
"operationId": "ui_notification_delete",
"parameters": [
{
"name": "id",
"description": "24x-символьный уникальный идентификатор сообщения",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"204": {
"description": "Операция завершена успешно"
}
},
"tags": [
"service"
]
}
},
"/service/q": {
"get": {
"summary": "Информация о состоянии планировщика (список задач в очереди)",
"operationId": "service_q",
"parameters": [
{
"name": "client",
"description": "Идентификатор клиента для фильтрации списка",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/QueuedTasksList"
}
}
},
"tags": [
"service"
]
}
},
"/service/shortify/client": {
"post": {
"summary": "Сервис для получения сокращенного списка из списка идентификаторв клиентов",
"operationId": "shortify_clients_list",
"parameters": [
{
"name": "clients_list",
"description": "Список идентификаторов клиентов для сокращения",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"201": {
"description": "",
"schema": {
"type": "string",
"description": "Строчка с сокращенным списком имен хостов клиентов"
}
}
},
"produces": [
"text/plain; charset=utf8"
],
"tags": [
"service"
]
}
},
"/service/binding": {
"get": {
"summary": "Получение списка типов задач и списка привязанных к ним идентификаторов клиентов",
"operationId": "task_type_bindings_list",
"responses": {
"200": {
"description": "Типы задач в качестве ключей и список привязанных к ним идентификаторов клиентов в качестве значений",
"schema": {
"type": "object"
}
}
},
"tags": [
"service"
]
}
},
"/service/binding/{type}": {
"get": {
"summary": "Получение списка идентификаторов клиентов, привязанных к указанному типу задач",
"operationId": "task_type_bindings_get",
"parameters": [
{
"name": "type",
"description": "Тип задачи",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "Список идентификаторов клиентов, привязаных к исполнению данного типа задач",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"tags": [
"service"
]
},
"put": {
"summary": "Изменение списока идентификаторов клиентов, привязанных к указанному типу задач",
"operationId": "task_type_bindings_set",
"parameters": [
{
"name": "type",
"description": "Тип задачи",
"required": true,
"type": "string",
"in": "path"
},
{
"name": "update",
"description": "Список идентификаторов клиентов, привязаных к исполнению данного типа задач",
"in": "body",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "Список идентификаторов клиентов, привязаных к исполнению данного типа задач, в случае, если был передан заголовок X-Request-Updated-Data",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"204": {
"description": "Список идентификаторов успешно изменен"
},
"404": {
"description": "Неизвестный тип задачи"
}
},
"tags": [
"service"
]
}
},
"/service/time/current": {
"get": {
"summary": "Получение текущего времени сервера",
"operationId": "current_time",
"responses": {
"200": {
"description": "Строка с текущим UTC временем сервера в формате ISO 8601",
"schema": {
"type": "string"
}
}
},
"tags": [
"service"
]
}
},
"/user/current": {
"get": {
"summary": "Получение информации о текущем пользователе",
"operationId": "current_user",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/User"
}
}
},
"tags": [
"user"
]
}
},
"/user/current/groups": {
"get": {
"summary": "Подсказки для выбора группы - возвращает список всех известных имен групп, куда входит текущий пользователь",
"operationId": "current_user_groups",
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/SuggestGroup"
}
}
}
},
"tags": [
"user"
]
}
},
"/user/current/preferences/{subnode}": {
"get": {
"summary": "Получение произвольных данных предпочтений (до 64Кб), сохраняемых для текущего пользователя, например, настройки фильтров",
"operationId": "user_preferences",
"parameters": [
{
"name": "subnode",
"description": "Идентификатор узла данных",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "object"
}
}
},
"tags": [
"user"
]
},
"put": {
"summary": "Создание или замена узла с произвольными данными предпочтений (до 64Кб), сохраняемых для текущего пользователя",
"operationId": "user_preferences",
"parameters": [
{
"name": "subnode",
"description": "Идентификатор узла данных",
"required": true,
"type": "string",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "object"
}
}
},
"tags": [
"user"
]
}
},
"/task": {
"get": {
"summary": "Получение списка задач",
"description": "Параметры фильтра для списка необходимо указывать в query-параметрах",
"operationId": "tasks_list",
"parameters": [
{
"name": "type",
"description": "Фильтр типа задачи",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "id",
"description": "Фильтр по идентификатор(у,ам) задач",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "status",
"description": "Фильтр по статус(у,ам) задачи, разделенных запятыми",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "parent",
"description": "Фильтр по идентификатор(у,ам) родительской задачи",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "scheduler",
"description": "Фильтр по идентификатор(у,ам) планировщика",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "requires",
"description": "Фильтр по идентификатор(у,ам) ресурсов, от которых зависит задача",
"required": false,
"type": "integer",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "host",
"description": "Фильтр задач по идентификатору клиента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "arch",
"description": "Фильтр по идентификатору архитектуры клиента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "owner",
"description": "Фильтр по владельцу задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "author",
"description": "Фильтр по автору задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "desc_re",
"description": "Регулярное выражение для поиска по описанию задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "model",
"description": "Фильтр по модели CPU клиента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "children",
"description": "Флаг, включать ли в список дочерние задачи",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "hidden",
"description": "Флаг, включать ли в список скрытые задачи",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "se_tag",
"description": "Фильтр по тегу ограничивающему количество одновременно исполняемых задач",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "important",
"description": "Флаг, исключать ли из списока задачи, не отмеченные как важные",
"required": false,
"type": "boolean",
"in": "query"
},
{
"name": "created",
"description": "Фильтр с парой значений UTC дат в формате ISO 8601, разделенными двумя точками (..), для указания диапазона времени создания задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "updated",
"description": "Фильтр с парой значений UTC дат в формате ISO 8601, разделенными двумя точками (..), для указания диапазона времени последнего изменения задачи",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "fields",
"description": "Модификатор отображения информации о списке задач, ограничивает список выдаваемых полей",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/TasksList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"task"
]
},
"post": {
"summary": "Создание задачи",
"operationId": "task_create",
"parameters": [
{
"name": "data",
"description": "Данные для создания задачи",
"required": true,
"schema": {
"$ref": "#/definitions/TaskNew"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/Task"
},
"headers": {
"Location": {
"description": "URL на вновь созданную задачу",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}": {
"get": {
"summary": "Детальная информация о задаче",
"description": "Данные возвращаются только для объекта задачи, связанные объекты получаются дополнительными запросами",
"operationId": "tasks_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Task"
}
}
},
"tags": [
"task"
]
},
"put": {
"summary": "Обновление информации о задаче",
"description": "При успешном выполнении возвращается ответ без данных со статусом 204",
"operationId": "tasks_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Описание параметров задачи подлежащих обновлению",
"required": true,
"schema": {
"$ref": "#/definitions/TaskUpdate"
},
"in": "body"
}
],
"responses": {
"200": {
"description": "Если в запросе будет фигурировать заголовок X-Request-Updated-Data, в ответе будет возвращен обновлённый объект",
"schema": {
"$ref": "#/definitions/Task"
}
},
"204": {
"description": "Task {id} successfully updated."
},
"400": {
"description": "Incorrect task id {id}."
},
"404": {
"description": "Task {id} not found."
}
},
"tags": [
"task"
]
}
},
"/task/{id}/execution": {
"put": {
"summary": "Обновление инфoрмация для пользователя, переданной кодом задачи в процессе выполнения",
"operationId": "task_execution_description_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Объект описывающий изменения",
"required": true,
"schema": {
"$ref": "#/definitions/TaskExecutionUpdate"
},
"in": "body"
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"task"
]
}
},
"/task/{id}/resources": {
"get": {
"summary": "Информация о ресурсах задачи",
"description": "Формирует HTTP redirect на список ресурсов с соответсвующими фильтрами",
"operationId": "task_resources",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"301": {
"description": "",
"headers": {
"location": {
"description": "URL для получения данных",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/audit": {
"get": {
"summary": "Данные для просмотра зарегистрированных изменений задачи",
"operationId": "task_audit",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskAuditItem"
}
}
}
},
"tags": [
"task"
]
},
"post": {
"summary": "Создание новой записи об изменение статуса задачи",
"operationId": "task_audit_create",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Объект с аудит-записью",
"required": true,
"schema": {
"$ref": "#/definitions/TaskAuditNew"
},
"in": "body"
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"task"
]
}
},
"/task/{id}/audit/hosts": {
"get": {
"summary": "Данные для просмотра хостов на которых исполнялась задача для вкладки Profile",
"operationId": "task_audit_hosts",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskAuditHostsItem"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/custom/fields": {
"get": {
"summary": "Данные для просмотра информации о полях задачи, определяемых пользователем",
"description": "Необходимо получать для task view/edit формы",
"operationId": "task_custom_view",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskCustomFieldMeta"
}
}
}
},
"tags": [
"task"
]
},
"post": {
"summary": "Валидация данных полей формы задачи",
"operationId": "task_fields_validate",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для валидации формы задачи",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
},
"in": "body"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateResultItem"
}
}
}
},
"tags": [
"task"
]
},
"put": {
"summary": "Обновление данных полей формы задачи",
"operationId": "task_fields_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для обновления формы задачи",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
},
"in": "body"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateResultItem"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/custom/footer": {
"get": {
"summary": "Данные для получения дополнительных данных страницы просмотра задачи, определяемых пользователем",
"description": "Необходимо получать для task view form",
"operationId": "task_custom_footer",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskCustomFooter"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/context": {
"get": {
"summary": "Контекст задачи",
"operationId": "task_context",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "object"
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/queue": {
"get": {
"summary": "Информация о положении задачи в очереди",
"operationId": "tasks_queue",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "all",
"description": "Флаг указывающий возвращять ли информацию о клиентах не подходящих для объекта данной задачи, по-умолчанию false",
"required": false,
"type": "boolean",
"in": "query"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskQueueItem"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/dependant": {
"get": {
"summary": "Список зависимостей задачи",
"description": "Запрос перенаправляется на ресурс с зависимостями",
"operationId": "tasks_dependencies",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"301": {
"description": "",
"headers": {
"location": {
"description": "URL представляющий ресурс с зависимостями",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/children": {
"get": {
"summary": "Список дочерних задач",
"description": "Запрос перенаправляется на список задач с фильтром по родительской задаче",
"operationId": "tasks_children",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"301": {
"description": "",
"headers": {
"location": {
"description": "URL представляющий ресурс со списком задач",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/trigger/time": {
"get": {
"summary": "Получение информации о действующих триггерах запуска задачи по наступлении определенного момента времени",
"operationId": "task_time_trigger_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTimeTrigger"
}
}
}
},
"tags": [
"task"
]
},
"post": {
"summary": "Регистрация триггера запуска задачи по наступлении определенного момента времени",
"operationId": "task_time_trigger_create",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для валидации формы задачи",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTimeTriggerCreate"
}
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTimeTrigger"
}
},
"headers": {
"Location": {
"description": "URL для получения данных о действующих триггерах запуска задачи по наступлении определенного момента времени",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/task/{id}/trigger/task": {
"get": {
"summary": "Получение информации о действующих триггерах запуска задачи по изменению статуса других задач",
"operationId": "task_task_trigger_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTaskTrigger"
}
}
}
},
"tags": [
"task"
]
},
"post": {
"summary": "Регистрация триггера запуска задачи по изменению статуса других задач",
"operationId": "task_time_trigger_create",
"parameters": [
{
"name": "id",
"description": "Идентификатор задачи",
"required": true,
"type": "integer",
"format": "int64",
"minimum": 0,
"in": "path"
},
{
"name": "body",
"description": "Данные для валидации формы задачи",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTaskTriggerCreate"
}
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskTaskTrigger"
}
},
"headers": {
"Location": {
"description": "URL для получения данных о действующих триггерах запуска задачи по изменению статуса других задач",
"type": "string"
}
}
}
},
"tags": [
"task"
]
}
},
"/vault": {
"get": {
"summary": "Получение списка элементов хранилища",
"operationId": "vault_list",
"parameters": [
{
"name": "name",
"description": "Фильтр поиска подстроки в названии элемента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "owner",
"description": "Поиск по (части) имени владельца элемента",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "shared",
"description": "Поиск по (части) имени пользователя/группы, кому доступен элемент",
"required": false,
"type": "string",
"in": "query"
},
{
"name": "limit",
"description": "Максимальное количество записей, которые необходимо вернуть в списке",
"required": true,
"type": "integer",
"in": "query"
},
{
"name": "offset",
"description": "Количество записей, которые необходимо упустить из выборки",
"required": false,
"type": "integer",
"in": "query"
},
{
"name": "order",
"description": "Имя поля для сортировки (в соответствии с ключами возвращаемых записей в списке). Префикс `+` означает сортировку по возрастанию, `-`, соответственно, по убыванию.",
"required": false,
"type": "string",
"in": "query",
"collectionFormat": "multi"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/VaultList"
},
"headers": {
"X-Matched-Records": {
"description": "Количество объектов, совпадающих с заданным фильтром",
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
},
"tags": [
"vault"
]
},
"post": {
"summary": "Регистрация элемента в хранилище",
"operationId": "vault_create",
"parameters": [
{
"name": "data",
"description": "Информация для регистрации элемента в хранилище",
"required": true,
"schema": {
"$ref": "#/definitions/VaultCreate"
},
"in": "body"
}
],
"responses": {
"201": {
"description": "",
"headers": {
"location": {
"description": "URL на вновь созданный элемент",
"type": "string"
}
},
"schema": {
"$ref": "#/definitions/Vault"
}
}
},
"tags": [
"vault"
]
}
},
"/vault/{id}": {
"get": {
"summary": "Детальная информация об элементе хранилища",
"operationId": "vault_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор элемента хранилища",
"required": true,
"type": "integer",
"format": "int32",
"in": "path"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/Vault"
}
}
},
"tags": [
"vault"
]
},
"put": {
"summary": "Изменение элемента хранилища",
"operationId": "vault_update",
"parameters": [
{
"name": "id",
"description": "Идентификатор элемента хранилища",
"required": true,
"type": "integer",
"format": "int32",
"in": "path"
},
{
"name": "body",
"description": "Данные для изменения",
"required": true,
"schema": {
"$ref": "#/definitions/VaultUpdate"
},
"in": "body"
}
],
"responses": {
"200": {
"description": "Если в запросе будет фигурировать заголовок X-Request-Updated-Data, в ответе будет возвращен обновлённый объект",
"schema": {
"$ref": "#/definitions/Vault"
}
},
"204": {
"description": "Вольт успешно обновлён."
}
},
"tags": [
"vault"
]
},
"delete": {
"summary": "Удаление элемента хранилища",
"operationId": "vault_delete",
"parameters": [
{
"name": "id",
"description": "Идентификатор элемента хранилища",
"required": true,
"type": "integer",
"format": "int32",
"in": "path"
}
],
"responses": {
"204": {
"description": "Элемент хранилища удален."
}
},
"tags": [
"vault"
]
}
},
"/vault/{id}/data": {
"get": {
"summary": "Сервисный метод получения данных записи из vault",
"operationId": "vault_data_get",
"parameters": [
{
"name": "id",
"description": "Идентификатор элемента хранилища",
"required": true,
"type": "integer",
"format": "int32",
"in": "path"
}
],
"responses": {
"200": {
"description": "Ответ зашифрован уникальным ключем исполняющейся задачи",
"schema": {
"$ref": "#/definitions/Vault"
}
}
},
"produces": [
"application/octet-stream"
],
"tags": [
"vault"
]
}
}
},
"definitions": {
"BatchResults": {
"description": "Результаты выполнения массовой операции",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
},
"status": {
"description": "Результат выполнения операции",
"type": "string",
"enum": [
"SUCCESS",
"WARNING",
"ERROR"
]
},
"message": {
"description": "Сообщение от сервера в случае ошибки или предупреждения",
"type": "string"
}
},
"required": [
"id",
"status"
]
},
"DiskInfo": {
"description": "",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"warning",
"critical"
]
},
"total_space": {
"type": "integer",
"minimum": 0
},
"free_space": {
"type": "integer",
"minimum": 0
}
},
"required": [
"status",
"total_space",
"free_space"
]
},
"ClientOs": {
"description": "Данные об операционной системе клиента",
"properties": {
"name": {
"description": "Дистрибутив операционной системы клиента",
"type": "string"
},
"version": {
"description": "Версия операционной системы клиента",
"type": "string"
}
},
"required": [
"name",
"version"
]
},
"ClientTask": {
"description": "Данные о задаче, исполняемой на клиенте",
"properties": {
"task_id": {
"description": "Идентификатор выполняемой на клиенте задачи",
"type": "integer",
"format": "int32",
"minimum": 0
},
"task_type": {
"description": "Тип выполняемой на клиенте задачи",
"type": "string"
},
"owner": {
"description": "Владелец выполняемой на клиенте задачи",
"type": "string"
},
"url": {
"description": "URL выполняемой на клиенте задачи",
"type": "string"
}
},
"required": [
"task_id",
"task_type",
"owner",
"url"
]
},
"ClientsList": {
"description": "Список клиентов с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/ClientEntity"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"ClientEntity": {
"description": "Элемент списка клиентов",
"properties": {
"id": {
"description": "Идентификатор клиента",
"type": "string"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"os": {
"description": "Операционная система клиента",
"$ref": "#/definitions/ClientOs"
},
"cpu": {
"description": "Модель операционной системы клиента",
"type": "string"
},
"ncpu": {
"description": "Количество ядер процессора клиента",
"type": "integer",
"format": "int32",
"minimum": 0
},
"ram": {
"description": "Объем памяти клиента в байтах",
"type": "integer",
"format": "int32",
"minimum": 0
},
"platform": {
"description": "Идентификатор платформы клиента",
"type": "string"
},
"platforms": {
"description": "Идентификаторы платформ контейнеров клиента",
"type": "array",
"items": {
"type": "string"
}
},
"lxc": {
"description": "Признак, есть ли возможность у данного клиента выполнять задачи в LXC-контейнерах",
"type": "boolean"
},
"fqdn": {
"description": "FQDN сервера",
"type": "array",
"items": {
"type": "string"
}
},
"fileserver": {
"description": "Корневой URL файлового HTTP сервера",
"type": "string"
},
"dc": {
"description": "Трехбуквенный идентификатор вычислительного центра, где расположен сервер, либо null, если информация недоступна",
"type": "string"
},
"task": {
"description": "Исполняет ли клиент задачу",
"$ref": "#/definitions/ClientTask"
},
"alive": {
"description": "Жив ли клиент",
"type": "boolean"
},
"disk": {
"description": "Информация о дисковой памяти",
"$ref": "#/definitions/DiskInfo"
},
"tags": {
"description": "Тэги клиента",
"type": "array",
"items": {
"type": "string"
}
},
"server": {
"description": "Версия кода сервера",
"type": "integer",
"format": "int32",
"minimum": 0
},
"client": {
"description": "Версия кода клиента",
"type": "integer",
"format": "int32",
"minimum": 0
},
"sdk": {
"description": "Версия кода SDK",
"type": "integer",
"format": "int32",
"minimum": 0
},
"tasks": {
"description": "Версия кода задач",
"type": "integer",
"format": "int32",
"minimum": 0
},
"venv": {
"description": "Версия кода VirtualEnvironment",
"type": "integer",
"format": "int32",
"minimum": 0
},
"configs": {
"description": "Версия кода конфигов",
"type": "integer",
"format": "int32",
"minimum": 0
},
"last_activity": {
"description": "Время последнего API-вызова с указанного хоста в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"net_unreachable": {
"description": "Время UTC в формате ISO 8601 последней проверки, выявившей недоступность по сети. Если null, то всё хорошо.",
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"url",
"os",
"cpu",
"ncpu",
"ram",
"platform",
"platforms",
"lxc",
"fqdn",
"fileserver",
"dc",
"task",
"alive",
"disk",
"tags",
"server",
"client",
"sdk",
"tasks",
"venv",
"configs"
]
},
"ClientStarted": {
"description": "Передача данных о запуске (нового) клиента",
"properties": {
"id": {
"description": "Идентификатор клиента",
"type": "string"
},
"uuid": {
"description": "Единожды генерируемый UUID, хранящийся на клиенте",
"type": "string"
}
},
"required": [
"id",
"uuid"
]
},
"ClientPing": {
"description": "Обновление информации о клиенте",
"properties": {
"os": {
"description": "Информация об операционной системе клиенте",
"$ref": "#/definitions/ClientOS"
},
"containers": {
"description": "Информация о работающих контейнерах на клиенте",
"type": "array",
"items": {
"$ref": "#/definitions/ClientOS"
}
},
"hardware": {
"description": "Системная информация о клиенте",
"$ref": "#/definitions/ClientPingHardware"
},
"action": {
"description": "Текущее действие, выполняемое клиентом",
"$ref": "#/definitions/ClientPingAction"
}
},
"required": [
"os",
"hardware"
]
},
"ClientOS": {
"description": "Информация об операционной системе клиенте",
"properties": {
"name": {
"description": "Человеко-читаемая строка, определяющее наименование конкретной версии операционной системы, например \"Windows(R) XP Enterprise Service Pack 3 @ 2008\"",
"type": "string"
},
"family": {
"description": "Идентификатор семейства операционных систем, например, \"Windows\"",
"type": "string",
"enum": [
"osx",
"bsd",
"linux",
"windows"
]
},
"distributive": {
"description": "Идентификатор дистрибутива ОС, например, \"Enterprise\"",
"type": "string"
},
"architecture": {
"description": "архитектура CPU, для которой скомпилированы бинарные файлы",
"type": "string",
"enum": [
"i386",
"x86_64",
"ia64"
]
},
"vendor": {
"description": "Идентификатор поставщика ОС, например, \"Lenovo\"",
"type": "string"
},
"version": {
"description": "Информация о версии операционной системы",
"$ref": "#/definitions/ClientOSVersion"
},
"kernel": {
"description": "Информация о ядре операционной системы",
"$ref": "#/definitions/ClientOSKernel"
}
},
"required": [
"name",
"family",
"architecture",
"version",
"kernel"
]
},
"ClientOSVersion": {
"description": "Информация о версии операционной системы",
"properties": {
"major": {
"description": "Старшая часть версии ОС, например, 5",
"type": "integer",
"format": "int8"
},
"minor": {
"description": "Младшая часть версии ОС, например, 0",
"type": "integer",
"format": "int8"
},
"alias": {
"description": "Идентификатор ОС, например, \"whistler\"",
"type": "string"
}
},
"required": [
"major",
"minor"
]
},
"ClientOSKernel": {
"description": "Информация о ядре операционной системы",
"properties": {
"name": {
"description": "Человеко-читаемая строка, определяющее наименование конкретной версии ядра операционной системы, например \"Windows NT 5.0\"",
"type": "string"
},
"family": {
"description": "Идентификатор семейства ядер ОС, например, \"windows nt\"",
"type": "string"
},
"vendor": {
"description": "Идентификатор производителя ядера ОС, например, \"microsoft\"",
"type": "string"
},
"version": {
"description": "Информация о версии ядра операционной системы",
"$ref": "#/definitions/ClientOSKernelVersion"
}
},
"required": [
"name",
"family",
"version"
]
},
"ClientOSKernelVersion": {
"description": "Информация о версии ядра операционной системы",
"properties": {
"major": {
"description": "Старшая часть версии ядра ОС, например, 5",
"type": "integer",
"format": "int8"
},
"minor": {
"description": "Младшая часть версии ядра ОС, например, 0",
"type": "integer",
"format": "int8"
},
"build": {
"description": "Номер сборки ядра",
"type": "integer",
"format": "int16"
},
"tag": {
"description": "Тэг сборки ядра, например \"SMP\"",
"type": "string"
}
},
"required": [
"major",
"minor"
]
},
"ClientPingHardware": {
"description": "Системная информация о клиенте",
"properties": {
"cpu": {
"description": "Информация o CPU",
"$ref": "#/definitions/ClientPingHardwareCPU"
},
"ram": {
"description": "Информация oб операционной памяти",
"$ref": "#/definitions/ClientPingHardwareRAM"
},
"disk": {
"description": "Информация o дисковой подсистеме",
"$ref": "#/definitions/ClientPingHardwareDisk"
},
"network": {
"description": "Информация o сетевых интерфейсах",
"$ref": "#/definitions/ClientPingHardwareNetwork"
}
},
"required": [
"cpu",
"ram",
"disk",
"network"
]
},
"ClientPingHardwareCPU": {
"description": "Информация o CPU",
"properties": {
"cores": {
"description": "Количество ядер CPU",
"type": "integer",
"format": "int8"
},
"model": {
"description": "Идентификационная строка модели CPU",
"type": "string"
},
"vendor": {
"description": "Наименование производителя CPU",
"type": "string",
"enum": [
"intel",
"amd"
]
},
"frequency": {
"description": "Номинальная тактовая частота в ГГц",
"type": "number"
},
"architecture": {
"description": "Архитектура CPU",
"type": "string",
"enum": [
"i386",
"x86_64",
"ia64"
]
}
},
"required": [
"cores",
"model",
"vendor",
"frequency",
"architecture"
]
},
"ClientPingHardwareRAM": {
"description": "Информация oб операционной памяти",
"properties": {
"total": {
"description": "Количество оперативной памяти в байтах",
"type": "integer",
"format": "int64"
},
"free": {
"description": "Количество доступной оперативной памяти в байтах",
"type": "integer",
"format": "int64"
}
},
"required": [
"total",
"free"
]
},
"ClientPingHardwareDisk": {
"description": "Информация o дисковой подсистеме",
"properties": {
"type": {
"description": "Тип носителя",
"type": "string",
"enum": [
"hdd",
"sdd"
]
},
"total": {
"description": "Общий объем дисковой подсистемы, выделенный для использования задачими",
"type": "integer",
"format": "int64"
},
"free": {
"description": "Объем дисковой подсистемы, доступный для использования задачими",
"type": "integer",
"format": "int64"
}
},
"required": [
"type",
"total",
"free"
]
},
"ClientPingHardwareNetwork": {
"description": "Информация o сетевых интерфейсах",
"properties": {
"fastbone": {
"description": "Признак наличия fastbone",
"type": "boolean"
},
"ipv4": {
"description": "Признак наличия IPv4",
"type": "boolean"
},
"ipv6": {
"description": "Признак наличия IPv6",
"type": "boolean"
},
"fqdn": {
"description": "Полное доменное имя сервера",
"type": "string"
}
},
"required": [
"fastbone",
"ipv4",
"ipv6",
"fqdn"
]
},
"ClientPingAction": {
"description": "Текущее действие, выполняемое клиентом",
"properties": {
"service": {
"description": "Сервисная активность",
"type": "string",
"enum": [
"PREPARING",
"TERMINATING",
"CLEANING"
]
},
"task": {
"description": "Выполнение задачи",
"$ref": "#/definitions/ClientPingActionTask"
}
}
},
"ClientPingActionTask": {
"description": "Информация о выполняющейся задаче",
"properties": {
"id": {
"description": "Идентификатор задачи",
"type": "integer",
"format": "int32"
},
"url": {
"description": "URL для получения данных о задаче",
"type": "string"
},
"action": {
"description": "Действие для задачи",
"type": "string",
"enum": [
"EXECUTE",
"RELEASE",
"DELETE",
"STOP"
]
}
},
"required": [
"id",
"url",
"action"
]
},
"ClientAction": {
"description": "Данные для инициации действия на клиенте",
"properties": {
"id": {
"description": "Идентификатор задачи",
"type": "integer",
"format": "int32"
},
"token": {
"description": "Сессионный токен для аутентификации API-запросов в процессе исполнения задачи",
"type": "string"
},
"vault_key": {
"description": "Ключ для расшифровки секретной информации",
"type": "string"
},
"action": {
"description": "Действие для задачи",
"type": "string",
"enum": [
"EXECUTE",
"RELEASE",
"DELETE",
"STOP"
]
}
},
"required": [
"id",
"token",
"action"
]
},
"KeyChallengeResponse": {
"description": "Информация для аутентификации пользователя с использованием SSH-ключа. Содержит подпись с использование случайного числа, сгенерированого сервервером, идентификатор пользователя и случайного числа, сгенерированного клиентом",
"properties": {
"login": {
"type": "string",
"description": "Логин пользователя, который производит аутентификацию"
},
"digest": {
"type": "string",
"description": "Контрольная сумма случайного числа из ответа сервера первой фазы и номера сессии, в шестнадцатеричном формате"
},
"session_id": {
"type": "string",
"description": "Случайное число, сгенерированное клиентом, в шестнадцатеричном формате"
}
},
"required": [
"login",
"digest",
"session_id"
]
},
"OAuthClientInfo": {
"description": "Информация, необходимая для генерации OAuth-токенов",
"properties": {
"url": {
"type": "string",
"description": "URL OAuth-сервера"
},
"client": {
"type": "string",
"description": "Идентификатор клиентского приложения, зарегистрированного на указанном OAuth-сервере"
}
},
"required": [
"url",
"client"
]
},
"OAuthTokenCreate": {
"description": "Информация, необходимая для генерации OAuth-токена — либо код от OAuth-сервера, либо пара login/password",
"properties": {
"code": {
"type": "string",
"description": "Код ответа OAuth-сервера, для генерации токена по коду"
},
"login": {
"type": "string",
"description": "login пользователя, для генерации токена по паре login/password"
},
"password": {
"type": "string",
"description": "password пользователя, для генерации токена по паре login/password"
}
}
},
"GroupList": {
"description": "Список групп с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/Group"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"Group": {
"description": "Информация о группе пользователей",
"properties": {
"url": {
"description": "URL получения детальной информации о группе",
"type": "string"
},
"name": {
"description": "Имя группы",
"type": "string"
},
"rights": {
"description": "Максимально возможные права на данный ресурс у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"members": {
"description": "Список имен пользователей группы",
"type": "array",
"items": {
"type": "string"
}
},
"email": {
"description": "Email-адрес группы.",
"type": "string"
},
"priority_limits": {
"$ref": "#/definitions/GroupPriorityLimits",
"description": "Максимально допустимые приоритеты задачи, создаваемой в этой группе"
},
"sync": {
"$ref": "#/definitions/GroupSyncSource",
"description": "Внешний источник для синхронизации состава группы"
}
},
"required": [
"url",
"name",
"rights",
"members",
"email",
"priority_limits"
]
},
"GroupPriorityLimits": {
"description": "Максимально допустимые приоритеты задачи, создаваемой в этой группе",
"properties": {
"api": {
"description": "Максимально допустимые приоритеты задачи, создаваемой посредством API",
"$ref": "#/definitions/TaskPriority"
},
"ui": {
"description": "Максимально допустимые приоритеты задачи, создаваемой посредством UI",
"$ref": "#/definitions/TaskPriority"
}
},
"required": [
"api",
"ui"
]
},
"GroupSyncSource": {
"description": "Внешний источник для синхронизации состава группы",
"properties": {
"source": {
"description": "Тип источника для синхронизации",
"type": "string",
"enum": [
"RB",
"STAFF"
]
},
"group": {
"description": "Имя группы во внешнем источнике",
"type": "string"
}
}
},
"GroupCreate": {
"description": "Регистрация группы пользователей",
"properties": {
"name": {
"description": "Имя группы",
"type": "string"
},
"members": {
"description": "Участники группы",
"type": "array",
"items": {
"type": "string"
}
},
"email": {
"description": "Email-адрес группы, если задан",
"type": "string"
},
"sync": {
"$ref": "#/definitions/GroupSyncSource",
"description": "Внешний источник для синхронизации состава группы"
}
},
"required": [
"name",
"members"
]
},
"GroupUpdate": {
"description": "Изменение информации о группе пользователей",
"properties": {
"name": {
"description": "Имя группы",
"type": "string"
},
"members": {
"description": "Участники группы",
"type": "array",
"items": {
"type": "string"
}
},
"email": {
"description": "Email-адрес группы, если задан",
"type": "string"
},
"sync": {
"$ref": "#/definitions/GroupSyncSource",
"description": "Внешний источник для синхронизации состава группы"
}
}
},
"NotificationList": {
"description": "Список элементов хранилища с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/NotificationListItem"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"NotificationListItem": {
"description": "Информация об оповещении",
"properties": {
"id": {
"description": "Уникальный идентификатор уведомления",
"type": "string"
},
"url": {
"description": "URL получения детальной информации об уведомлении",
"type": "string"
},
"created": {
"description": "Время создания уведомления",
"type": "string",
"format": "date-time"
},
"recipients": {
"description": "Список получателей уведомления",
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"description": "Тема уведомления",
"type": "string"
},
"transport": {
"description": "Трансопрт доставки уведомления",
"type": "string",
"enum": [
"email",
"jabber"
]
},
"type": {
"description": "Вид представления уведомления",
"type": "string",
"enum": [
"plain",
"html"
]
},
"sent": {
"description": "Флаг уведомляющий было ли отправленно оповещение",
"type": "boolean"
},
"task_id": {
"description": "Идентификатор задачи из которой сгенерировано уведомление",
"type": "integer"
}
},
"required": [
"id",
"url",
"created",
"recipients",
"subject",
"transport",
"type",
"sent"
]
},
"Notification": {
"description": "Информация об оповещении",
"properties": {
"id": {
"description": "Уникальный идентификатор уведомления",
"type": "string"
},
"author": {
"description": "Автор уведомления",
"type": "string"
},
"created": {
"description": "Время создания уведомления",
"type": "string",
"format": "date-time"
},
"recipients": {
"description": "Список получателей уведомления",
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"description": "Тема уведомления",
"type": "string"
},
"body": {
"description": "Содержание уведомления",
"type": "string"
},
"transport": {
"description": "Трансопрт доставки уведомления",
"type": "string",
"enum": [
"email",
"jabber"
]
},
"type": {
"description": "Вид представления уведомления",
"type": "string",
"enum": [
"plain",
"html"
]
},
"sent": {
"description": "Флаг уведомляющий было ли отправленно оповещение",
"type": "boolean"
},
"host": {
"description": "Хост с которого инициировалась отправка уведомления",
"type": "string"
},
"headers": {
"description": "Заголовки уведомления",
"type": "array",
"items": {
"type": "string"
}
},
"charset": {
"description": "Используемый набор символов в уведомлении",
"type": "string",
"enum": [
"us-ascii",
"utf-8"
]
},
"view": {
"description": "Вид уведомления",
"type": "string",
"enum": [
"DEFAULT",
"EXECUTION",
"RELEASE"
]
},
"task_id": {
"description": "Идентификатор задачи из которой сгенерировано уведомление",
"type": "integer"
},
"inconsistent": {
"description": "Флаг неконсистентности уведомления, проставляемый сервисным потоком mailman",
"type": "boolean"
}
},
"required": [
"id",
"author",
"created",
"recipients",
"subject",
"body",
"transport",
"type",
"sent",
"host",
"headers",
"charset",
"view",
"task_id",
"inconsistent"
]
},
"NotificationCreate": {
"description": "Информация о создаваемом оповещении",
"properties": {
"recipients": {
"description": "Список получателей уведомления",
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"description": "Тема уведомления",
"type": "string"
},
"body": {
"description": "Содержание уведомления",
"type": "string"
},
"transport": {
"description": "Трансопрт доставки уведомления",
"type": "string",
"enum": [
"email",
"jabber"
]
},
"type": {
"description": "Вид представления уведомления",
"type": "string",
"enum": [
"plain",
"html"
]
},
"headers": {
"description": "Заголовки уведомления",
"type": "array",
"items": {
"type": "string"
}
},
"charset": {
"description": "Используемый набор символов в уведомлении",
"type": "string",
"enum": [
"us-ascii",
"utf-8"
]
},
"view": {
"description": "Вид уведомления",
"type": "string",
"enum": [
"DEFAULT",
"EXECUTION",
"RELEASE"
]
},
"task_id": {
"description": "Идентификатор задачи из которой сгенерировано уведомление",
"type": "integer"
}
},
"required": [
"recipients",
"subject",
"body",
"transport",
"type",
"headers",
"charset"
]
},
"ResourceBase": {
"description": "Базовые данные о ресурсе. Вообще, это должен быть базовый класс для типов `ResourceListItem` и `Resource`, однако, судя по всему, swagger-ui не понимает наследования, поэтому свойства этого класса будут тупо скопированы",
"properties": {
"id": {
"description": "Глобальный идентификатор ресурса",
"type": "integer",
"format": "int64"
},
"rights": {
"description": "Максимально возможные права на данный ресурс у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"task": {
"description": "Ссылка на задачу создавшую ресурс",
"$ref": "#/definitions/ResourceTask"
},
"http": {
"description": "Список http-ссылок на ресурс",
"$ref": "#/definitions/ResourceDataLinks"
},
"arch": {
"description": "Идентификатор архитектуры для которой создан ресурс",
"type": "string"
},
"state": {
"description": "Текущее состояние ресурса",
"type": "string",
"enum": [
"NOT_READY",
"READY",
"BROKEN",
"DELETED"
]
},
"type": {
"description": "Класс (тип) ресурса",
"type": "string"
},
"description": {
"description": "Описание ресурса",
"type": "string"
},
"owner": {
"description": "Владелец ресурса",
"type": "string"
},
"time": {
"$ref": "#/definitions/ResourceTime",
"description": "Временные метки задач"
},
"attributes": {
"description": "Аттрибуты ресурса",
"type": "object"
},
"size": {
"description": "Размер ресурса в байтах",
"type": "integer",
"format": "int64"
},
"md5": {
"description": "MD5 ресурса",
"type": "string"
},
"skynet_id": {
"description": "skynet id",
"type": "string"
}
},
"required": [
"id",
"rights",
"task",
"arch",
"state",
"type",
"description",
"owner",
"time",
"attributes",
"size"
]
},
"ResourceTime": {
"description": "Базовые временные метки ресурса",
"properties": {
"created": {
"description": "Время создания ресурса в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"accessed": {
"description": "Время последнего использования ресурса в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"expires": {
"description": "Приблизительное время, когда ресурс будет помечен, как устаревший в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
}
},
"required": [
"created",
"accessed",
"expires"
]
},
"ResourceList": {
"description": "Список ресурсов с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/ResourceListItem"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"ResourceListItem": {
"description": "Элемент списка ресурсов",
"allOf": [
{
"$ref": "#/definitions/ResourceBase"
}
],
"properties": {
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
}
},
"required": [
"url"
]
},
"ResourceUrlItem": {
"description": "Элемент списка адресов ресурса",
"properties": {
"url": {
"description": "Адрес ресурса",
"type": "string"
},
"host": {
"description": "Название хоста на котором находится ресурс",
"type": "string"
},
"storage": {
"description": "Является ли хост хранилищем",
"type": "boolean"
},
"state": {
"description": "Состояние ресурса на хосте",
"type": "string",
"enum": [
"OK",
"MARK_TO_DELETE"
]
},
"alive": {
"description": "Жив ли хост",
"type": "boolean"
}
},
"required": [
"url",
"host",
"storage",
"state",
"alive"
]
},
"Resource": {
"description": "Детальная информация о ресурсе",
"allOf": [
{
"$ref": "#/definitions/ResourceBase"
}
],
"properties": {
"sources": {
"description": "Список идентификаторов клиентов, являющихся источниками данных ресурса",
"type": "array",
"items": {
"type": "string"
}
},
"file_name": {
"description": "Относительный путь к файл ресурса",
"type": "string"
},
"rsync": {
"description": "Список rsync-ссылок на ресурс",
"$ref": "#/definitions/ResourceDataLinks"
}
},
"required": [
"sources",
"file_name",
"md5"
]
},
"ResourceTask": {
"description": "Ссылка на задачу создавшую ресурс",
"properties": {
"id": {
"description": "Глобальный идентификатор задачи создавшей ресурс",
"type": "integer",
"format": "int64"
},
"url": {
"description": "URI для получения данных",
"type": "string"
},
"status": {
"description": "Статус задачи, создавшей ресурс",
"type": "string"
}
},
"required": [
"id",
"url",
"status"
]
},
"ResourceAttribute": {
"description": "Атрибут ресурса",
"properties": {
"name": {
"type": "string",
"description": "Имя атрибута"
},
"value": {
"type": "string",
"description": "Значение атрибута"
}
},
"required": [
"name",
"value"
]
},
"ResourceDataLinks": {
"description": "Список ссылок на ресурс",
"properties": {
"links": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"links"
]
},
"SchedulerNew": {
"description": "Данные для создания планировщика (одно из двух)",
"properties": {
"task_type": {
"description": "Тип задач для которых создается планировщик",
"type": "string"
},
"source": {
"description": "Идентификатор планировщика для копирования",
"type": "integer",
"format": "int64"
}
}
},
"SchedulersList": {
"description": "Список планировщиков с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/SchedulerListItem"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"SchedulerListItem": {
"description": "Элемент списка планировщиков",
"properties": {
"id": {
"description": "Глобальный идентификатор планировщика",
"type": "integer",
"format": "int64"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"rights": {
"description": "Максимально возможные права на данный планировщик у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"status": {
"description": "Текущее состояние планировщика",
"type": "string",
"enum": [
"STOPPED",
"WATCHING",
"WAITING",
"FAILURE",
"UNKNOWN",
"DELETED"
]
},
"task": {
"description": "Свойства задач создаваемых планировщиком.",
"$ref": "#/definitions/SchedulerTask"
},
"owner": {
"description": "Владелец планировщика",
"type": "string"
},
"author": {
"description": "Автор (создатель) планировщика",
"type": "string"
},
"time": {
"description": "Характеристики времени планировщика.",
"$ref": "#/definitions/SchedulerTime"
},
"schedule": {
"description": "Интервалы запусков/перезапусков задач плнировщиком.",
"$ref": "#/definitions/SchedulerInterval"
}
},
"required": [
"id",
"url",
"rights",
"status",
"task",
"owner",
"author",
"time",
"schedule"
]
},
"SchedulerInterval": {
"description": "Интервальные свойства планировщика.",
"properties": {
"start_time": {
"description": "Время запуска планировщика в UTC в формате ISO 8601. Если не задано, то запускается сразу",
"format": "date-time",
"type": "string"
},
"repetition": {
"description": "Интервал запусков задач планировщиком",
"$ref": "#/definitions/Repetition"
},
"retry": {
"description": "Интервал запуска задач планировщиком в случае если предыдущая задача планировщика завершилась ошибкой",
"$ref": "#/definitions/Retry"
},
"fail_on_error": {
"description": "Переводить планировщик в состояние FAILURE в случае крушения задачи",
"type": "boolean"
},
"sequential_run": {
"description": "Запускать новую задачу только после завершения старой",
"type": "boolean"
}
},
"required": [
"repetition"
]
},
"Repetition": {
"description": "Должен содержать одно из значений no=true | Interval | Weekly",
"properties": {
"interval": {
"description": "Интервалы времени в секундах через которые происходит запуск задач.",
"type": "integer"
},
"weekly": {
"description": "Недельное расписание запусков задач. 0 - Mon, 1 - Tue, ... 6 - Sun",
"type": "array",
"items": {
"type": "integer",
"format": "int16",
"minimum": 0,
"maximum": 6
}
}
}
},
"Retry": {
"description": "Параметры перезапуска задачи после крушения предыдущей задачи.",
"properties": {
"ignore": {
"type": "boolean",
"description": "Крушение будет проигнорировано, перезапуск будет происходить в обычном режиме."
},
"interval": {
"description": "Перезапуск через заданный интервал времени в секундах.",
"type": "integer"
}
}
},
"SchedulerTime": {
"description": "Свойства планировщика выражающиеся временем.",
"properties": {
"created": {
"description": "Время создания задачи в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"next": {
"description": "Время следующего запуска задачи",
"type": "string",
"format": "date-time"
},
"last": {
"description": "Время последнего запуска задачи",
"type": "string",
"format": "date-time"
}
},
"required": [
"created",
"next"
]
},
"SchedulerTask": {
"description": "Информация о задаче созданной планировщиком",
"properties": {
"last": {
"description": "Последняя запущенная планировщиком задача.",
"$ref": "#/definitions/SchedulerLastTask"
},
"type": {
"description": "Тип задач запускаемых планировщиком",
"type": "string"
},
"description": {
"description": "Определяемое пользователем описание планировщика",
"type": "string"
}
},
"required": [
"type",
"description"
]
},
"SchedulerLastTask": {
"description": "Информация о последней запущенной задаче планировщиком.",
"properties": {
"id": {
"description": "Глобальный идентификатор задачи",
"type": "integer",
"format": "int64"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"status": {
"description": "Текущее состояние задачи",
"type": "string"
}
}
},
"Scheduler": {
"description": "Информация о планировщике",
"properties": {
"id": {
"description": "Глобальный идентификатор планировщика",
"type": "integer",
"format": "int64"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"rights": {
"description": "Максимально возможные права на планировщик у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"owner": {
"description": "Владелец планировщика",
"type": "string"
},
"author": {
"description": "Автор (создатель) планировщика",
"type": "string"
},
"schedule": {
"description": "Интервалы запусков/перезапусков задач планировщиком.",
"$ref": "#/definitions/SchedulerInterval"
},
"time": {
"description": "Характеристики времени планировщика.",
"$ref": "#/definitions/SchedulerTime"
},
"task": {
"description": "Общие настройки задач",
"$ref": "#/definitions/TaskConfig"
}
},
"required": [
"id",
"url",
"rights",
"author",
"schedule",
"time",
"task"
]
},
"TaskConfig": {
"description": "Общие настройки задач запускаемых планировщиком",
"properties": {
"type": {
"description": "Тип задач запускаемых планировщиком",
"type": "string"
},
"description": {
"description": "Определяемое пользователем описание планировщика",
"type": "string"
},
"owner": {
"description": "Владелец задачи",
"type": "string"
},
"priority": {
"$ref": "#/definitions/TaskPriority"
},
"requirements": {
"$ref": "#/definitions/TaskRequirementsBase"
},
"important": {
"description": "Флаг важности задачи",
"type": "boolean"
},
"kill_timeout": {
"description": "Максимально разрешенное время исполнения задачи в секундах",
"type": "integer",
"format": "int32"
},
"fail_on_any_error": {
"description": "Переводить задачу в состояние FAILURE в случае возникновения любой ошибки",
"type": "boolean"
},
"hidden": {
"description": "Признак скрытой задачи",
"type": "boolean"
},
"notifications": {
"description": "Настройки уведомлений",
"type": "array",
"items": {
"$ref": "#/definitions/TaskNotifications",
"description": "Правило уведомлений"
}
},
"custom_fields": {
"description": "Определяемые пользователем поля задачи (shortcut to PUT request for '/scheduler/{id}/custom/fields' path)",
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
}
},
"required": [
"type",
"description",
"owner",
"priority",
"requirements",
"kill_timeout",
"fail_on_any_error",
"hidden"
]
},
"SchedulerUpdate": {
"description": "Информация об обновляемой задаче",
"properties": {
"owner": {
"description": "Владелец планировщика и создаваемых им задач",
"type": "string"
},
"schedule": {
"description": "Интервалы запусков/перезапусков задач плнировщиком.",
"$ref": "#/definitions/SchedulerInterval"
},
"task": {
"description": "Данные обновления настроек задач. (owner будет наследоваться из планировщика)",
"$ref": "#/definitions/TaskUpdate"
}
}
},
"ReleaseTemplate": {
"description": "Подсказка для заполнения формы создания релиза",
"properties": {
"types": {
"description": "Список типов релизов",
"type": "array",
"items": {
"type": "string"
}
},
"cc": {
"description": "Список получателей оповещения о релизе",
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"description": "Тема сообщения к релизу",
"type": "string"
},
"message": {
"description": "Содержимое сообщения к релизу",
"type": "string"
}
},
"required": [
"types"
]
},
"ReleaseResource": {
"description": "Идентификатор ресурса и список пользователей которые могут его релизить",
"properties": {
"resource_id": {
"description": "Идентификатор ресурса",
"type": "integer"
},
"type": {
"description": "Тип ресурса",
"type": "string"
},
"description": {
"description": "Описание ресурса",
"type": "string"
},
"releasers": {
"description": "Список логинов пользователей, которые могут производить релиз ресурса",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"resource_id"
]
},
"Release": {
"description": "Информация связанная с релизами задачи",
"properties": {
"resources": {
"description": "Список ресурсов к релизу, с пользователями которые могут производить их релиз",
"type": "array",
"items": {
"$ref": "#/definitions/ReleaseResource"
}
},
"author": {
"description": "Автор релиза",
"type": "string"
},
"type": {
"description": "Тип релиза",
"type": "string"
},
"created": {
"description": "Время создания релиза в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"subject": {
"description": "Тема сообщения к релизу",
"type": "string"
},
"message": {
"description": "Содержимое сообщения к релизу",
"type": "string"
}
}
},
"ReleaseCreate": {
"description": "Информация о релизе при создании",
"properties": {
"to": {
"description": "Список адресов получателей уведомления о релизе",
"type": "array",
"items": {
"type": "string"
}
},
"cc": {
"description": "Список адресов получателей уведомления о релизе в копии",
"type": "array",
"items": {
"type": "string"
}
},
"subject": {
"description": "Тема указанная при релизе",
"type": "string"
},
"message": {
"description": "Содержимое сообщения к релизу",
"type": "string"
},
"type": {
"description": "Тип релиза",
"type": "string"
},
"task_id": {
"description": "Идентификатор задачи",
"type": "integer",
"format": "int64",
"minimum": 1
},
"params": {
"description": "Дополнительные параметры передаваемые в метод `on_release` задачи",
"type": "object"
}
},
"required": [
"subject",
"type",
"task_id"
]
},
"ReleaseList": {
"description": "Список релизов",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/ReleaseListItem"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"ReleaseListItem": {
"description": "Элемент списка релизов",
"properties": {
"task_id": {
"description": "Идентификатор задачи из которой был создан релиз",
"type": "integer",
"format": "int64",
"minimum": 1
},
"type": {
"description": "Тип релиза",
"type": "string"
},
"subject": {
"description": "Тема указанная при релизе",
"type": "string"
},
"author": {
"description": "Автор релиза",
"type": "string"
},
"created": {
"description": "Время создания релиза в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
}
},
"required": [
"task_id",
"type",
"subject",
"author",
"created"
]
},
"ServiceThreadStatus": {
"description": "Информация о состоянии сервисного потока",
"properties": {
"id": {
"type": "string",
"description": "Идентификатор сервисного потока"
},
"run_time": {
"description": "Информация о времени запуска сервисного потока",
"$ref": "#/definitions/ServiceThreadStatusTime"
},
"locks": {
"description": "Информация о блокировках (первый в списке владеет блокировкой)",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"run_time",
"locks"
]
},
"ServiceThreadStatusTime": {
"description": "Информация о времени запуска сервисного потока",
"properties": {
"last": {
"description": "Время последнего запуска в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"next": {
"description": "Время следующего запуска в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
}
},
"required": [
"last",
"next"
]
},
"DatabaseShard": {
"description": "Информация о шарде MongoDB",
"properties": {
"id": {
"description": "Идентификатор шарда",
"type": "string"
},
"updated": {
"description": "Время последнего обновления информации о шарде в UTC в формате ISO 8601",
"type": "string",
"format": "date-time"
},
"replicaset": {
"description": "Информация о процессах mongod в составе replica set'а данного шарда",
"type": "array",
"items": {
"$ref": "#/definitions/DatabaseShardReplicaInstance"
}
}
},
"required": [
"id",
"updated",
"replicaset"
]
},
"DatabaseSize": {
"description": "Информация о размере базы данных",
"properties": {
"indexsize": {
"description": "Размер всех индексов в батайх",
"type": "integer",
"format": "int64"
},
"datasize": {
"description": "Размер всех данных в байтах",
"type": "integer",
"format": "int64"
},
"filesize": {
"description": "Размер всех файлов БД в байтах",
"type": "integer",
"format": "int64"
},
"avgobjsize": {
"description": "Средний размер объекта в байтах",
"type": "number"
}
}
},
"DatabaseCurrentOp": {
"description": "Информация о длительности запросов к базе данных",
"properties": {
"duration": {
"description": "",
"type": "number"
},
"read": {
"description": "",
"type": "integer",
"format": "int64"
},
"current_op": {
"description": "",
"type": "integer",
"format": "int64"
},
"read_lock": {
"description": "",
"type": "number"
},
"write_lock": {
"description": "",
"type": "number"
}
}
},
"DatabaseShardReplicaInstance": {
"description": "Информация о процессе mongod в составе replica set'а данного шарда",
"properties": {
"id": {
"description": "Идентификатор процесса mongod в формате <hostname>:<port>",
"type": "string"
},
"uptime": {
"description": "Время работы процесса в секундах с момента запуска",
"type": "integer",
"format": "int64"
},
"optime": {
"description": "Идентификатор последней синхронизированной записи журнала операций в формате <timestamp>.<operation_number>",
"type": "string"
},
"ping": {
"description": "Время прохождения последней команды ping до данного сервера в миллисекундах",
"type": "integer",
"format": "int64"
},
"sync_source": {
"description": "Идентификатор процесса mongod в формате <hostname>:<port>, с которого происходит синхронизация данных",
"type": "string"
},
"last_heartbeat": {
"description": "Время последнего информационного пакета данного процесса UTC в формате ISO 8601",
"type": "string",
"format": "date-time"
},
"state": {
"description": "Состояние данного процесса",
"type": "string",
"enum": [
"STARTUP",
"PRIMARY",
"SECONDARY",
"RECOVERING",
"STARTUP2",
"UNKNOWN",
"ARBITER",
"DOWN",
"ROLLBACK",
"REMOVED"
]
},
"elected": {
"description": "Время в формате UTC в формате ISO 8601 выбора данного процесса в качестве PRIMARY",
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"uptime",
"optime",
"ping",
"sync_source",
"last_heartbeat",
"state"
]
},
"WebServerStatus": {
"description": "Информация о состоянии Web-сервера",
"properties": {
"host": {
"description": "Идентификатор Web-сервера, обработавшего запрос",
"type": "string"
},
"uptime": {
"description": "Время работы сервера в секундах, с точностью до миллисекунд",
"type": "number"
},
"requests": {
"description": "Информация об обработанных сервером запросах",
"$ref": "#/definitions/WebServerStatusRequests"
},
"processes": {
"description": "Информация о потребляемых серверными процессами системных ресурсах",
"$ref": "#/definitions/WebServerStatusProcesses"
}
},
"required": [
"host",
"uptime",
"requests",
"processes"
]
},
"WebServerStatusRequests": {
"description": "Информация об обработанных сервером запросах",
"properties": {
"count": {
"description": "Счетчики обработанных сервером запросов",
"$ref": "#/definitions/WebServerStatusRequestsCount"
},
"rate": {
"description": "Скорость обработки запросов сервером",
"$ref": "#/definitions/WebServerStatusRequestsRate"
},
"processing": {
"description": "Количество запросов, обрабатываемых сервером в данный момент",
"type": "integer",
"format": "int64"
},
"queued": {
"description": "Примерное количество запросов, ожидающих обработки в данный момент",
"type": "integer",
"format": "int64"
}
},
"required": [
"count",
"rate",
"processing",
"queued"
]
},
"WebServerStatusRequestsCount": {
"description": "Счетчики обработанных сервером запросов",
"properties": {
"low_priority": {
"description": "Количество запросов высокоприоритетных (UI) запросов, обработанных сервером с момента запуска",
"type": "integer",
"format": "int64"
},
"high_priority": {
"description": "Количество запросов низкоприоритетных (API) запросов, обработанных сервером с момента запуска",
"type": "integer",
"format": "int64"
}
},
"required": [
"low_priority",
"high_priority"
]
},
"WebServerStatusRequestsRate": {
"description": "Скорость обработки запросов сервером",
"properties": {
"s5": {
"description": "Среднее количество запросов, обработанных сервером за последние 5 секунд",
"type": "integer",
"format": "int64"
},
"s15": {
"description": "Среднее количество запросов, обработанных сервером за последние 15 секунд",
"type": "integer",
"format": "int64"
},
"s30": {
"description": "Среднее количество запросов, обработанных сервером за последние 30 секунд",
"type": "integer",
"format": "int64"
}
},
"required": [
"s5",
"s15",
"s30"
]
},
"WebServerStatusProcesses": {
"description": "Информация о потребляемых серверными процессами системных ресурсах",
"properties": {
"self": {
"description": "Информация о потребляемых системных ресурсах процессом web-сервера",
"$ref": "#/definitions/WebServerStatusProcessInfo"
},
"service": {
"description": "Информация о потребляемых системных ресурсах сервисным процессом web-сервера",
"$ref": "#/definitions/WebServerStatusProcessInfo"
},
"workers": {
"description": "Скорость обработки запросов сервером",
"type": "array",
"items": {
"$ref": "#/definitions/WebServerStatusProcessInfo"
}
}
},
"required": [
"self",
"service",
"workers"
]
},
"WebServerStatusProcessInfo": {
"description": "Информация о потребляемых системных ресурсах процессом web-сервера",
"properties": {
"cpu": {
"description": "Информация о потреблении CPU процессом",
"$ref": "#/definitions/WebServerStatusProcessInfoCPU"
},
"memory": {
"description": "Информация о потреблении памяти процессом",
"$ref": "#/definitions/WebServerStatusProcessInfoMemory"
}
},
"required": [
"cpu",
"memory"
]
},
"WebServerStatusProcessInfoCPU": {
"description": "Информация о потреблении CPU процессом",
"properties": {
"s5": {
"description": "Среднее потребление CPU в процентах за последние 5 секунд",
"$ref": "#/definitions/WebServerStatusProcessInfoCPUDetails"
},
"s15": {
"description": "Среднее потребление CPU в процентах за последние 15 секунд",
"$ref": "#/definitions/WebServerStatusProcessInfoCPUDetails"
},
"s30": {
"description": "Среднее потребление CPU в процентах за последние 30 секунд",
"$ref": "#/definitions/WebServerStatusProcessInfoCPUDetails"
}
},
"required": [
"s5",
"s15",
"s30"
]
},
"WebServerStatusProcessInfoCPUDetails": {
"description": "Детальная информация о потреблении CPU процессом",
"properties": {
"system": {
"description": "Среднее потребление системного времени процессом в процентах",
"type": "number"
},
"user": {
"description": "Среднее потребление пользовательского времени процессом в процентах",
"type": "number"
},
"idle": {
"description": "Средний простой процесса в процентах",
"type": "number"
}
},
"required": [
"system",
"user",
"idle"
]
},
"WebServerStatusProcessInfoMemory": {
"description": "Информация о потреблении памяти процессом",
"properties": {
"vms": {
"description": "Объем доступной процессу виртуальной памяти в килобайтах",
"type": "integer",
"format": "int64"
},
"rss": {
"description": "Объем использованной процессом оперативной памяти в килобайтах",
"type": "integer",
"format": "int64"
}
},
"required": [
"vms",
"rss"
]
},
"TaskStatusStatistics": {
"description": "Счетчики по состояниям задач",
"properties": {
"draft": {
"description": "Количество задач в группе статусов DRAFT",
"$ref": "#/definitions/TaskStatusStatisticsDraft"
},
"queue": {
"description": "Количество задач в группе статусов QUEUE",
"$ref": "#/definitions/TaskStatusStatisticsQueue"
},
"execute": {
"description": "Количество задач в группе статусов EXECUTE",
"$ref": "#/definitions/TaskStatusStatisticsExecute"
},
"wait": {
"description": "Количество задач в группе статусов WAIT",
"$ref": "#/definitions/TaskStatusStatisticsWait"
},
"break": {
"description": "Количество задач в группе статусов BREAK",
"$ref": "#/definitions/TaskStatusStatisticsBreak"
},
"finish": {
"description": "Количество задач в группе статусов FINISH",
"$ref": "#/definitions/TaskStatusStatisticsFinish"
}
},
"required": [
"draft",
"queue",
"execute",
"wait",
"break",
"finish"
]
},
"TaskStatusStatisticsDraft": {
"description": "Количество задач в группе статусов DRAFT",
"properties": {
"draft": {
"description": "Количество задач в состоянии DRAFT",
"type": "integer",
"format": "int64"
}
},
"required": [
"draft"
]
},
"TaskStatusStatisticsQueue": {
"description": "Количество задач в группе статусов QUEUE",
"properties": {
"enqueuing": {
"description": "Количество задач в состоянии ENQUEUING",
"type": "integer",
"format": "int64"
},
"enqueued": {
"description": "Количество задач в состоянии ENQUEUED",
"type": "integer",
"format": "int64"
}
},
"required": [
"enqueuing",
"enqueued"
]
},
"TaskStatusStatisticsExecute": {
"description": "Количество задач в группе статусов EXECUTE",
"properties": {
"preparing": {
"description": "Количество задач в состоянии PREPARING",
"type": "integer",
"format": "int64"
},
"executing": {
"description": "Количество задач в состоянии EXECUTING",
"type": "integer",
"format": "int64"
},
"temporary": {
"description": "Количество задач в состоянии TEMPORARY",
"type": "integer",
"format": "int64"
},
"finishing": {
"description": "Количество задач в состоянии FINISHING",
"type": "integer",
"format": "int64"
}
},
"required": [
"preparing",
"executing",
"temporary",
"finishing"
]
},
"TaskStatusStatisticsWait": {
"description": "Количество задач в группе статусов WAIT",
"properties": {
"wait_res": {
"description": "Количество задач в состоянии WAIT_RES",
"type": "integer",
"format": "int64"
},
"wait_task": {
"description": "Количество задач в состоянии WAIT_TASK",
"type": "integer",
"format": "int64"
},
"wait_time": {
"description": "Количество задач в состоянии WAIT_TIME",
"type": "integer",
"format": "int64"
}
},
"required": [
"wait_res",
"wait_task",
"wait_time"
]
},
"TaskStatusStatisticsFinish": {
"description": "Количество задач в группе статусов FINISH",
"properties": {
"success": {
"description": "Количество задач в состоянии SUCCESS",
"type": "integer",
"format": "int64"
},
"releasing": {
"description": "Количество задач в состоянии RELEASING",
"type": "integer",
"format": "int64"
},
"released": {
"description": "Количество задач в состоянии RELEASED",
"type": "integer",
"format": "int64"
},
"not_released": {
"description": "Количество задач в состоянии NOT_RELEASED",
"type": "integer",
"format": "int64"
},
"failure": {
"description": "Количество задач в состоянии FAILURE",
"type": "integer",
"format": "int64"
},
"deleting": {
"description": "Количество задач в состоянии DELETING",
"type": "integer",
"format": "int64"
},
"deleted": {
"description": "Количество задач в состоянии DELETED",
"type": "integer",
"format": "int64"
}
},
"required": [
"success",
"releasing",
"released",
"not_released",
"failure",
"deleting",
"deleted"
]
},
"TaskStatusStatisticsBreak": {
"description": "Количество задач в группе статусов BREAK",
"properties": {
"exception": {
"description": "Количество задач в состоянии EXCEPTION",
"type": "integer",
"format": "int64"
},
"no_res": {
"description": "Количество задач в состоянии NO_RES",
"type": "integer",
"format": "int64"
},
"timeout": {
"description": "Количество задач в состоянии TIMEOUT",
"type": "integer",
"format": "int64"
},
"stopping": {
"description": "Количество задач в состоянии STOPPING",
"type": "integer",
"format": "int64"
},
"stopped": {
"description": "Количество задач в состоянии STOPPED",
"type": "integer",
"format": "int64"
}
},
"required": [
"exception",
"no_res",
"timeout",
"stopping",
"stopped"
]
},
"ExternalBackupStatistics": {
"description": "Информация о состоянии бэкапа ресурсов в флагом ttl=inf во внешнее хранилище (MDS)",
"properties": {
"immortal_resource_size": {
"description": "Размер в байтах всех ресурсов с флагом ttl=inf",
"type": "integer",
"format": "int64"
},
"external_backup_size": {
"description": "Размер в байтах всех забэкапленых ресурсов",
"type": "integer",
"format": "int64"
}
}
},
"StorageSizeStatistics": {
"description": "",
"properties": {
"storage_ready_resources_size": {
"description": "Размер (в байтах) всех READY-ресурсов в хранилище",
"type": "integer",
"format": "int64"
},
"client_side_ready_resources_size": {
"description": "Размер (в байтах) всех READY-ресурсов на клиетах",
"type": "integer",
"format": "int64"
},
"ready_resources_size": {
"description": "Размер (в байтах) всех READY-ресурсов в Sandbox",
"type": "integer",
"format": "int64"
},
"size_pure": {
"description": "",
"type": "integer",
"format": "int64"
},
"size_total": {
"description": "",
"type": "integer",
"format": "int64"
},
"size_unique": {
"description": "",
"type": "integer",
"format": "int64"
},
"disk_total": {
"description": "",
"type": "integer",
"format": "int64"
},
"amount_unique": {
"description": "",
"type": "integer",
"format": "int64"
},
"disk_free": {
"description": "",
"type": "integer",
"format": "int64"
},
"amount_pure": {
"description": "",
"type": "integer",
"format": "int64"
},
"delta": {
"description": "",
"type": "integer",
"format": "int64"
},
"disk_used": {
"description": "",
"type": "integer",
"format": "int64"
},
"amount_total": {
"description": "",
"type": "integer",
"format": "int64"
}
}
},
"UINotification": {
"description": "Информация о зарегистрированном UI-уведомлении",
"properties": {
"id": {
"description": "24x-символьный уникальный идентификатор сообщения",
"type": "string"
},
"severity": {
"description": "Важность сообщения",
"type": "string",
"enum": [
"INFO",
"WARNING",
"CRITICAL"
]
},
"content": {
"description": "Содержимое сообщение в формате HTML и кодировке UTF8",
"type": "string"
}
},
"required": [
"id",
"severity",
"content"
]
},
"UINotificationCreate": {
"description": "Информация о новом UI-уведомлении",
"properties": {
"severity": {
"description": "Важность сообщения",
"type": "string",
"enum": [
"INFO",
"WARNING",
"CRITICAL"
]
},
"content": {
"description": "Содержимое сообщение в формате HTML и кодировке UTF8",
"type": "string"
}
},
"required": [
"severity",
"content"
]
},
"QueuedTasksList": {
"description": "Список задач в очереди планировщика",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/QueuedTask"
}
}
},
"required": [
"skipped",
"limit",
"total",
"items"
]
},
"QueuedTask": {
"description": "Информация о задаче в очереди планировщика",
"properties": {
"id": {
"description": "Глобальный идентификатор задачи",
"type": "integer",
"format": "int64"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"priority": {
"description": "Приоритет задачи",
"$ref": "#/definitions/TaskPriority"
},
"clients": {
"description": "Список подходящих задаче клиентов, отсортированный по host_match_score, в форме пар (идентификатор клиента, cпециализированный вес клиента (host_match_score) для данной задачи)",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"required": [
"id",
"url",
"priority",
"clients"
]
},
"TaskPriority": {
"description": "Приоритет задачи",
"properties": {
"class": {
"description": "Класс приоритета задачи",
"type": "string",
"enum": [
"USER",
"SERVICE",
"BACKGROUND"
]
},
"subclass": {
"description": "Подкласс приоритета задачи",
"type": "string",
"enum": [
"HIGH",
"NORMAL",
"LOW"
]
}
}
},
"TaskTypesNotusedStatistics": {
"description": "Список неиспользуемых типов задач",
"properties": {
"type": {
"description": "Название типа задачи",
"type": "string"
},
"last_run": {
"description": "Время последнего запуска задач данного типа в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
}
}
},
"QuicksearchSuggest": {
"description": "Варианты подсказок для быстрого поиска",
"properties": {
"task": {
"$ref": "#/definitions/QuicksearchSuggestObject",
"description": "Совпадение с объектом задачи"
},
"task_type": {
"$ref": "#/definitions/SuggestType",
"description": "Совпадение с классом задач"
},
"resource": {
"$ref": "#/definitions/QuicksearchSuggestObject",
"description": "Совпадение с объектом ресурса"
},
"resource_type": {
"$ref": "#/definitions/SuggestType",
"description": "Совпадение с классом ресурса"
},
"group": {
"$ref": "#/definitions/SuggestGroup",
"description": "Совпадение с именем группы"
}
}
},
"QuicksearchSuggestObject": {
"description": "Описание совпадения с объектом",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Идентификатор объекта"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"type": {
"type": "string",
"description": "Класс (тип) объекта"
},
"status": {
"type": "string",
"description": "Состояние объекта"
},
"owner": {
"type": "string",
"description": "Владелец объекта"
},
"match": {
"$ref": "#/definitions/QuicksearchSuggestObjectMatch",
"description": "Информация для отображения совпадения поискового запроса"
}
},
"required": [
"id",
"url",
"type",
"status",
"owner",
"match"
]
},
"SuggestType": {
"description": "Описание совпадения с классом (типом) объектов",
"properties": {
"type": {
"type": "string",
"description": "Класс (тип) объектов"
},
"color": {
"type": "string",
"description": "Цвет типа задачи для отображении в графиках и статистике"
},
"owners": {
"description": "Список владельцев задачи",
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string",
"description": "Описание класса объектов, заданное в коде задачи"
}
},
"required": [
"type",
"color",
"owners",
"description"
]
},
"QuicksearchSuggestObjectMatch": {
"description": "Информация для отображения совпадения поискового запроса",
"properties": {
"highlights": {
"$ref": "#/definitions/QuicksearchSuggestObjectMatchHighlight",
"description": "Информация для отображения подстроки совпадения запроса"
},
"score": {
"type": "number",
"description": "Итоговая оценка совпадения"
}
},
"required": [
"highlights",
"score"
]
},
"QuicksearchSuggestObjectMatchHighlight": {
"description": "Информация для отображения подстроки совпадения запроса",
"properties": {
"type": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
},
"description": "Список пар (первый и последний символ) подстроки совпадения типа объекта"
},
"description": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
},
"description": "Список пар (первый и последний символ) подстроки совпадения описания объекта"
}
}
},
"SuggestGroup": {
"description": "Описание совпадения с группой пользователей",
"properties": {
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"name": {
"type": "string",
"description": "Имя группы"
},
"priority_limits": {
"$ref": "#/definitions/GroupPriorityLimits",
"description": "Максимально допустимые приоритеты задачи, создаваемой в этой группе"
}
},
"required": [
"url",
"name",
"priority_limits"
]
},
"SuggestClient": {
"description": "Доступные варианты выбора имен клиентов, моделей CPU и платформ для заданного запроса",
"properties": {
"platforms": {
"type": "array",
"description": "Список доступных платформ для заданного фильтра",
"items": {
"type": "string"
}
},
"cpu_models": {
"type": "array",
"description": "Список доступных моделей CPU для заданного фильтра",
"items": {
"type": "string"
}
},
"hosts": {
"type": "array",
"description": "Список доступных клиентов для заданного фильтра",
"items": {
"type": "string"
}
}
},
"required": [
"platforms",
"cpu_models",
"hosts"
]
},
"TaskNew": {
"description": "Данные для создания задачи. Задаётся либо type, либо source, либо scheduler_id",
"properties": {
"type": {
"description": "Тип задачи (взаимоисключающий с параметрами source и scheduler_id)",
"type": "string"
},
"source": {
"description": "Идентификатор задачи для копирования (взаимоисключающий с параметрами type и scheduler_id)",
"type": "integer",
"format": "int64"
},
"scheduler_id": {
"description": "Идентификатор планировщика, из которого берётся шаблон задачи (взаимоисключающий с параметрами source и type)",
"type": "integer",
"format": "int64"
},
"children": {
"description": "Отметить новую задачу как дочернюю по отношению к задаче в текущей сессии авторизации",
"type": "boolean"
},
"context": {
"description": "Значения, которыми будет обновлён контекст задачи после её создания.",
"type": "object"
}
}
},
"TaskBase": {
"description": "Базовые данные о задаче. Вообще, это должен быть базовый класс для типов `TaskListItem` и `Task`, однако, судя по всему, swagger-ui не понимает наследования, поэтому свойства этого класса будут тупо скопированы",
"properties": {
"id": {
"description": "Глобальный идентификатор задачи",
"type": "integer",
"format": "int64"
},
"url": {
"description": "Ссылка для получения данных об объекте",
"type": "string"
},
"parent": {
"description": "Ссылка на родительскую задачу",
"$ref": "#/definitions/TaskParent"
},
"rights": {
"description": "Максимально возможные права на данную задачу у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"priority": {
"$ref": "#/definitions/TaskPriority"
},
"requirements": {
"$ref": "#/definitions/TaskRequirements"
},
"important": {
"description": "Флаг важности задачи",
"type": "boolean"
},
"status": {
"description": "Текущее состояние задачи",
"type": "string"
},
"type": {
"description": "Класс (тип) задачи",
"type": "string"
},
"scores": {
"description": "Оценка успешности выполнения последних 10 запусков",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"description": {
"description": "Определяемое пользователем описание задачи",
"type": "string"
},
"author": {
"description": "Автор задачи",
"type": "string"
},
"owner": {
"description": "Владелец задачи",
"type": "string"
},
"time": {
"$ref": "#/definitions/TaskTime",
"description": "Временные метки задач"
},
"execution": {
"$ref": "#/definitions/TaskExecution",
"description": "Данные об исполняющейся задачи"
}
},
"required": [
"id",
"rights",
"priority",
"requirements",
"important",
"status",
"type",
"scores",
"description",
"author",
"owner",
"time"
]
},
"TaskExecution": {
"description": "Данные об исполняющейся задачи",
"properties": {
"client": {
"description": "Идентификатор клиента, исполняющего задачу",
"$ref": "#/definitions/ClientRef"
},
"current": {
"type": "integer",
"format": "int32",
"description": "Прошедшее время в секундах с момента начала исполнения задачи"
},
"estimated": {
"type": "integer",
"format": "int32",
"description": "Ожидаемое время в секундах исполнения задачи"
},
"action": {
"$ref": "#/definitions/TaskExecutionAction",
"description": "Определяемое кодом задачи текущее действие"
},
"ps_url": {
"type": "string",
"description": "Ссылка на HTTP-ручку отдающую список процессов задачи"
},
"shell_url": {
"type": "string",
"description": "Ссылка на Shell для отладки задачи из UI"
}
},
"required": [
"client",
"current",
"estimated"
]
},
"TaskExecutionAction": {
"description": "Определяемое кодом задачи текущее действие",
"properties": {
"message": {
"description": "Текстовое описание текущего действия",
"type": "string"
},
"duration": {
"type": "integer",
"format": "int32",
"description": "Прошедшее время в секундах с момента начала исполнения действия"
}
},
"required": [
"message",
"duration"
]
},
"TaskExecutionUpdate": {
"description": "Данные для обновления информации об исполняющейся задаче",
"properties": {
"description": {
"type": "string",
"description": "Инфoрмация для пользователя, о процессе выполнения задачи"
},
"action": {
"type": "string",
"description": "Определяемое кодом задачи текущее действие"
},
"disk_usage": {
"description": "Информация по потреблению дискового пространства задачей в процессе ее выполнени",
"$ref": "#/definitions/TaskResultsDiskUsage"
}
}
},
"TaskTime": {
"description": "Базовые временные метки задач",
"properties": {
"created": {
"description": "Время создания задачи в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"updated": {
"description": "Время последнего изменения задачи в UTC в формате ISO 8601",
"format": "date-time",
"type": "string"
}
},
"required": [
"created",
"updated"
]
},
"TaskRelease": {
"description": "Информация связанная с релизами задачи.",
"properties": {
"resources": {
"description": "Список ресурсов к релизу, с пользователями которые могут производить их релиз.",
"type": "array",
"items": {
"$ref": "#/definitions/ReleaseResource"
}
},
"template": {
"description": "Информация для заполнения информации о релизе.",
"$ref": "#/definitions/ReleaseTemplate"
},
"url": {
"description": "Ссылка для получения данных о релизе",
"type": "string"
},
"id": {
"description": "Id релиза",
"type": "integer",
"format": "int64"
}
}
},
"TasksList": {
"description": "Список задач с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/TaskListItem"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"TaskListItem": {
"description": "Элемент списка задач",
"allOf": [
{
"$ref": "#/definitions/TaskBase"
}
],
"properties": {
"children": {
"type": "array",
"description": "Список дочерних задач с их статусами",
"items": {
"type": "object",
"properties": {
"key": {
"type": "integer",
"format": "int64",
"description": "Идентификатор дочерней задачи"
},
"value": {
"type": "string",
"description": "Состояние дочерней задачи"
}
},
"required": [
"key",
"value"
]
}
},
"short_task_result": {
"type": "object",
"description": "Результат метода task.get_short_task_result(). Присутствует только в запросах, сделаных пользователями, авторизованными через WEB (для new UI)."
}
},
"required": [
"url"
]
},
"Task": {
"description": "Детальная информация о задаче",
"allOf": [
{
"$ref": "#/definitions/TaskBase"
}
],
"properties": {
"release": {
"$ref": "#/definitions/TaskRelease",
"description": "Информация о релизе к задаче."
},
"scheduler": {
"description": "Ссылка планировщик, породивший задачу",
"$ref": "#/definitions/TaskParent"
},
"kill_timeout": {
"description": "Максимально разрешенное время исполнения задачи в секундах",
"type": "integer",
"format": "int32"
},
"fail_on_any_error": {
"description": "Переводить задачу в состояние FAILURE в случае возникновения любой ошибки",
"type": "boolean"
},
"tasks_archive_resource": {
"description": "ID ресурса с архивом кода задач (SANDBOX_TASKS_ARCHIVE) к исполнению",
"type": "integer"
},
"hidden": {
"description": "Признак скрытой задачи",
"type": "boolean"
},
"se_tags": {
"description": "Доступные теги для ограничения количества одновременно исполняемых задач",
"type": "array",
"items": {
"type": "string",
"description": "Доступные теги для ограничения количества одновременно исполняемых задач"
}
},
"se_tag": {
"description": "Тег для ограничения количества одновременно исполняемых задач",
"type": "string"
},
"lock_host": {
"description": "Хост который взял задачу на исполнение (имеет значение если задача в состоянии ENQUEUED)",
"type": "string"
},
"max_restarts": {
"description": "Максимальное количество автоматических перезапусков из статуса TEMPORARY",
"type": "integer"
},
"notifications": {
"description": "Настройки уведомлений",
"$ref": "#/definitions/TaskNotifications"
},
"results": {
"description": "Результаты выполнения задачи",
"$ref": "#/definitions/TaskResults"
},
"short_task_result": {
"type": "object",
"description": "Результат метода task.get_short_task_result(). Присутствует только в запросах, сделаных пользователями, авторизованными через WEB (для new UI)."
},
"resources": {
"description": "Ресурсы, порожденные задачей",
"$ref": "#/definitions/TaskSubCollection"
},
"dependant": {
"description": "Список задач, зависящих от данной задачи",
"$ref": "#/definitions/TaskSubCollection"
},
"children": {
"description": "Список дочерних задач",
"$ref": "#/definitions/TaskSubCollection"
},
"audit": {
"description": "История зарегистрированных событий для данной задачи",
"$ref": "#/definitions/TaskSubCollection"
},
"queue": {
"description": "Информация о состоянии очереди для данной задачи",
"$ref": "#/definitions/TaskSubCollection"
},
"logs": {
"description": "Список с доступными файлами логов исполнения задачи",
"type": "array",
"items": {
"$ref": "#/definitions/TaskLogItem",
"description": "Ссылка на лог исполнения задачи"
}
}
},
"required": [
"url",
"kill_timeout",
"fail_on_any_error",
"tasks_archive_resource",
"hidden",
"notifications"
]
},
"TaskUpdate": {
"description": "Информация об обновляемой задаче",
"properties": {
"priority": {
"$ref": "#/definitions/TaskPriority"
},
"important": {
"description": "Флаг важности задачи",
"type": "boolean"
},
"description": {
"description": "Определяемое пользователем описание задачи",
"type": "string"
},
"owner": {
"description": "Владелец задачи",
"type": "string"
},
"kill_timeout": {
"description": "Максимально разрешенное время исполнения задачи в секундах",
"type": "integer",
"format": "int32"
},
"fail_on_any_error": {
"description": "Переводить задачу в состояние FAILURE в случае возникновения любой ошибки",
"type": "boolean"
},
"tasks_archive_resource": {
"description": "ID ресурса с архивов кода задач (SANDBOX_TASKS_ARCHIVE) к исполнению",
"type": "integer"
},
"hidden": {
"description": "Признак скрытой задачи",
"type": "boolean"
},
"se_tag": {
"description": "Тег для ограничения количества одновременно исполняемых задач",
"type": "string"
},
"max_restarts": {
"description": "Максимальное количество автоматических перезапусков из статуса TEMPORARY",
"type": "integer"
},
"requirements": {
"description": "Требования задачи для запуска",
"$ref": "#/definitions/TaskRequirementsUpdate"
},
"notifications": {
"description": "Настройки уведомлений",
"type": "array",
"items": {
"$ref": "#/definitions/TaskNotifications",
"description": "Правило уведомлений"
}
},
"custom_fields": {
"description": "Обновление определяемых пользователем полей задачи (shortcut to PUT request for '/task/{id}/custom/fields' path)",
"type": "array",
"items": {
"$ref": "#/definitions/TaskFieldValidateItem"
}
}
}
},
"TaskParent": {
"description": "Ссылка на родительскую задачу",
"properties": {
"id": {
"description": "Глобальный идентификатор родительской задачи",
"type": "integer",
"format": "int64"
},
"url": {
"description": "URI для получения данных",
"type": "string"
}
}
},
"TaskResults": {
"description": "Результаты выполнения задачи",
"properties": {
"info": {
"description": "Инфoрмация для пользователя, переданная кодом задачи в процессе выполнения",
"type": "string"
},
"traceback": {
"description": "Python Traceback исключения, приведшего к остановке задачи",
"type": "string"
},
"disk_usage": {
"description": "Информация по потреблению дискового пространства задачей в процессе ее выполнени",
"$ref": "#/definitions/TaskResultsDiskUsage"
}
},
"required": [
"disk_usage"
]
},
"TaskResultsDiskUsage": {
"description": "Информация по потреблению дискового пространства задачей в процессе ее выполнени",
"properties": {
"max": {
"description": "Максимальное количество места, потребленного задачей в процессе выполнения в байтах",
"type": "integer",
"format": "int64",
"minimum": 0
},
"last": {
"description": "Количество места, потребленного задачей при завершении в байтах",
"type": "integer",
"format": "int64",
"minimum": 0
}
}
},
"TaskRequirementsBase": {
"description": "Базовая информация о требованиях задачи для запуска",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы, где возможно исполнение задачи"
}
}
},
"TaskRequirements": {
"description": "Требования задачи для запуска",
"allOf": [
{
"$ref": "#/definitions/TaskRequirementsBase"
}
],
"properties": {
"resources": {
"$ref": "#/definitions/TaskSubCollection",
"description": "Зависимости задачи от внешних по отношению к ней ресурсов"
},
"cpu_model": {
"type": "string",
"description": "Модель CPU, где возможно исполнение задачи"
},
"host": {
"type": "string",
"description": "Идентификатор клиента, где возможно исполнение задачи"
},
"disk_space": {
"type": "integer",
"format": "int64",
"description": "Требования задачи к свободному месту на диске"
},
"ram": {
"type": "integer",
"format": "int64",
"description": "Требование задачи к RAM в байтах"
},
"ramdrive": {
"$ref": "#/definitions/TaskRequirementsRamdisk",
"description": "Требования задачи к наличию RAM-диска"
}
},
"required": [
"disk_space"
]
},
"TaskRequirementsRamdisk": {
"description": "Требования задачи к наличию RAM-диска",
"properties": {
"type": {
"description": "Тип требуемого RAM-диска",
"type": "string",
"enum": [
"tmpfs"
]
},
"size": {
"type": "integer",
"format": "int64",
"description": "Необходимый объем RAM-диска в байтах"
}
},
"required": [
"type",
"size"
]
},
"TaskRequirementsUpdate": {
"description": "Обновляемые требования задачи для запуска",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы,​ где возможно исполнение задачи"
},
"cpu_model": {
"type": "string",
"description": "Модель CPU,​ где возможно исполнение задачи"
},
"host": {
"type": "string",
"description": "Идентификатор клиента,​ где возможно исполнение задачи"
},
"disk_space": {
"type": "string",
"description": "Требования задачи к свободному месту на диске с суфиксом MB,​ GB,​ TB"
},
"ram": {
"type": "integer",
"format": "int64",
"description": "Требование задачи к RAM в байтах"
}
}
},
"TaskNotifications": {
"description": "Настройки уведомлений",
"properties": {
"transport": {
"type": "string",
"description": "Метод доставки уведомлений",
"enum": [
"jabber",
"email"
]
},
"statuses": {
"type": "array",
"description": "Список статусов задачи, при достижении которых происходит отправка данного типа уведомлений",
"items": {
"type": "string",
"description": "Статус задачи"
}
},
"recipients": {
"type": "array",
"description": "Список логинов для получения уведомлений",
"items": {
"type": "string",
"description": "Логин пользователя для уведомления"
}
}
},
"required": [
"transport",
"statuses",
"recipients"
]
},
"TaskSubCollection": {
"description": "Ссылка на коллекцию объектов, владеемых задачей",
"properties": {
"url": {
"type": "string",
"description": "URL для получения коллекции"
},
"count": {
"type": "integer",
"format": "int32",
"description": "Количество элементов в коллекции"
}
},
"required": [
"url",
"count"
]
},
"TaskLogItem": {
"description": "Ссылка на лог исполнения задачи",
"properties": {
"name": {
"type": "string",
"description": "Имя файла или директории"
},
"node_type": {
"type": "string",
"description": "Тип места назначаения ссылки",
"enum": [
"file",
"directory"
]
},
"url": {
"type": "string",
"description": "Ссылка для получения данных"
},
"size": {
"type": "integer",
"format": "int64",
"description": "Размер в байтах (только для директорий)"
}
},
"required": [
"name",
"node_type",
"url",
"size"
]
},
"TaskCustomFieldMeta": {
"description": "Данные c информацией о поле задачи, определяемых пользователем",
"properties": {
"type": {
"type": "string",
"description": "Поле, определяющее метод отображения информации поля"
},
"name": {
"type": "string",
"description": "Идентификатор поля"
},
"title": {
"type": "string",
"description": "Краткое описание поля"
},
"description": {
"type": "string",
"description": "Подробное описание поля"
},
"required": {
"type": "boolean",
"description": "Признак обязательности поля"
},
"sub_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Список полей с условной активацией по значению данного поля"
},
"modifers": {
"type": "object",
"description": "Различные модификаторы режима отображения/валидации поля"
},
"context": {
"type": "object",
"description": "Контекстно-зависимая информация для отображания поля"
},
"value": {
"type": "object",
"description": "Значение поля"
}
},
"required": [
"type",
"name",
"title",
"required",
"value"
]
},
"TaskCustomFooter": {
"description": "Данные c информацией, необходимой для отображения дополнительной секции формы задачи, определяемой пользователем",
"properties": {
"content": {
"type": "object",
"description": "Данные, необходимые для отображения"
},
"helper": {
"type": "string",
"description": "Идентификатор процессора для данных"
}
},
"required": [
"content",
"helper"
]
},
"TaskAuditItem": {
"description": "Данные для просмотра зарегистрированных изменений задачи",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Время события в UTC в формате ISO 8601"
},
"message": {
"type": "string",
"description": "Дополнительное описание события"
},
"status": {
"type": "string",
"description": "Состояние, в которое перешла задача по событию"
},
"author": {
"type": "string",
"description": "Инициатор события"
},
"target": {
"type": "string",
"description": "Хост, обработавший событие"
},
"request_id": {
"type": "string",
"description": "Уникальный идентификатор запроса, переданный клиентом (для XMLRPC или REST API)"
},
"source": {
"type": "string",
"description": "Сетевой адрес инициатора события"
},
"iface": {
"type": "string",
"description": "Интерфейс, посредством которого инициировано событие",
"enum": [
"sys",
"rpc",
"api",
"web"
]
}
},
"required": [
"time",
"target",
"iface"
]
},
"TaskAuditHostsItem": {
"description": "Данные для просмотра хостов на которых исполнялась задача для вкладки Profile",
"properties": {
"host": {
"type": "string",
"description": "Хост, исполнявший задачу (FQDN или IP адрес)"
},
"from": {
"type": "string",
"format": "date-time",
"description": "Время начала исполнения в UTC в формате ISO 8601"
},
"till": {
"type": "string",
"format": "date-time",
"description": "Время окончания исполнения в UTC в формате ISO 8601"
},
"partition": {
"type": "string",
"description": "Раздел на диске с артефактами задач"
}
},
"required": [
"host",
"from",
"partition"
]
},
"TaskAuditNew": {
"description": "Данные для создания нового изменения статуса задачи и его изменения",
"properties": {
"message": {
"type": "string",
"description": "Дополнительное описание события"
},
"status": {
"type": "string",
"description": "Состояние, в которое переходит задача"
},
"lock": {
"type": "boolean",
"description": "Блокировать объект задачи на сессию отправляющего хоста"
},
"force": {
"type": "boolean",
"description": "Не проверять корректность перехода состояния задачи"
}
},
"required": [
"status"
]
},
"TaskQueueItem": {
"description": "Элемент очереди с информацией о клиенте, подходящим для задачи",
"properties": {
"client": {
"$ref": "#/definitions/ClientRef"
},
"alive": {
"type": "boolean",
"description": "Признак доступности клиента"
},
"platform": {
"type": "boolean",
"description": "Признак соответствия платформы клиента требованиям задачи"
},
"cpu": {
"type": "boolean",
"description": "Признак соответствия процессора клиента требованиям задачи"
},
"free_space": {
"type": "boolean",
"description": "Признак наличия свободного места на диске клиента в соответствии требованиям задачи"
},
"position": {
"$ref": "#/definitions/QueuePosition",
"description": "Информация о положении задачи в очереди клиента"
}
},
"required": [
"client",
"alive",
"platform",
"cpu",
"free_space"
]
},
"ClientRef": {
"description": "Информация о клиенте",
"properties": {
"id": {
"type": "string",
"description": "Идентификатор клиента"
},
"url": {
"type": "string",
"description": "Ссылка для получения данных об объекте"
}
},
"required": [
"id",
"url"
]
},
"QueuePosition": {
"description": "Информация о положении задачи в очереди клиента",
"properties": {
"index": {
"type": "integer",
"format": "int32",
"description": "Текущее положение в очереди"
},
"size": {
"type": "integer",
"format": "int32",
"description": "Размер очереди"
}
},
"required": [
"index",
"size"
]
},
"TaskFieldValidateItem": {
"description": "Данные для валидации поля формы задачи",
"properties": {
"name": {
"type": "string",
"description": "Наименование поля задачи"
},
"value": {
"type": "object",
"description": "Данные поля"
}
},
"required": [
"name",
"value"
]
},
"TaskFieldValidateResultItem": {
"description": "Результат валидации поля задачи",
"properties": {
"name": {
"type": "string",
"description": "Наименование поля задачи"
},
"status": {
"description": "Результат выполнения операции",
"type": "string",
"enum": [
"SUCCESS",
"WARNING",
"ERROR"
]
},
"message": {
"description": "Сообщение от сервера в случае ошибки или предупреждения",
"type": "string"
}
},
"required": [
"name",
"status"
]
},
"TaskTimeTrigger": {
"description": "Данные триггера запуска задачи по наступлении определенного момента времени",
"properties": {
"id": {
"description": "Уникальный 16ти-знаковый идентификатор триггера",
"type": "string"
},
"period": {
"description": "Данные о момент срабатывания триггера в секундах",
"$ref": "#/definitions/TaskTimeTriggerPeriod"
},
"time": {
"description": "Данные о времени триггера",
"$ref": "#/definitions/TaskTimeTriggerTime"
}
},
"required": [
"id",
"period",
"time"
]
},
"TaskTimeTriggerPeriod": {
"description": "Данные о момент срабатывания триггера в секундах",
"properties": {
"original": {
"description": "Момент срабатывания триггера в секундах от момента регистрации",
"format": "int32",
"type": "integer"
},
"remaining": {
"description": "Оставшееся время до срабатывания триггера в секундах от момента регистрации",
"format": "int32",
"type": "integer"
}
},
"required": [
"original",
"remaining"
]
},
"TaskTimeTriggerTime": {
"description": "Данные о времени триггера",
"properties": {
"registered": {
"description": "UTC время регистрации триггера в формате ISO 8601",
"format": "date-time",
"type": "string"
},
"expected": {
"description": "Ожидаемое UTC время срабатывание триггера в формате ISO 8601",
"format": "date-time",
"type": "string"
}
},
"required": [
"registered",
"expected"
]
},
"TaskTimeTriggerCreate": {
"description": "Данные для регистрации триггера запуска задачи по наступлении определенного момента времени",
"properties": {
"period": {
"description": "Момент срабатывания триггера в секундах от момента регистрации",
"format": "int32",
"type": "integer"
}
},
"required": [
"period"
]
},
"TaskTaskTrigger": {
"description": "Данные триггера запуска задачи по изменению статуса других задач",
"properties": {
"id": {
"description": "Уникальный 16ти-знаковый идентификатор триггера",
"type": "string"
},
"target": {
"description": "Идентификатор наблюдаемой задачи",
"format": "int32",
"type": "integer"
},
"statuses": {
"description": "Список ожидаемых статусов задачи",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"target",
"statuses"
]
},
"TaskTaskTriggerCreate": {
"description": "Данные для регистрации триггера запуска задачи по изменению статуса других задач",
"properties": {
"target": {
"description": "Идентификатор наблюдаемой задачи",
"format": "int32",
"type": "integer"
},
"statuses": {
"description": "Список ожидаемых статусов задачи",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"target",
"statuses"
]
},
"User": {
"description": "Информация о пользователе",
"properties": {
"login": {
"type": "string",
"description": "Логин пользователя, который авторизован в данный момент в системе"
},
"role": {
"type": "string",
"description": "Роль текущего пользователя. Роль 'trusted' позволяет выбирать приоритет задач выше USER.NORMAL",
"enum": [
"administrator",
"trusted",
"regular",
"anonymous"
]
}
},
"required": [
"login",
"role"
]
},
"VaultList": {
"description": "Список элементов хранилища с мета-информацией",
"properties": {
"skipped": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для пропускания из выборки"
},
"limit": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Указанное в запросе количество записей для возврата"
},
"total": {
"type": "integer",
"format": "int32",
"minimum": 0,
"description": "Количество записей во всей выборке"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/Vault"
}
}
},
"required": [
"skipped",
"limit",
"total"
]
},
"Vault": {
"description": "Информация об элементе хранилища",
"properties": {
"id": {
"description": "Уникальный идентификатор элемента",
"type": "integer",
"format": "int32"
},
"url": {
"description": "URL получения детальной информации об элементе хранилища",
"type": "string"
},
"name": {
"description": "Имя элемента",
"type": "string"
},
"rights": {
"description": "Максимально возможные права на данный ресурс у текущего пользователя",
"type": "string",
"enum": [
"read",
"write"
]
},
"data_length": {
"description": "Длина данных в элементе хранилища",
"type": "integer",
"format": "int32"
},
"owner": {
"description": "Пользователь или группа, кто может модифицировать данные элемента",
"type": "string"
},
"shared": {
"description": "Список пользователей/групп, кому доступен элемент",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"url",
"name",
"rights",
"data_length",
"owner",
"shared"
]
},
"VaultCreate": {
"description": "Регистрация нового элемента хранилища",
"properties": {
"name": {
"description": "Имя элемента хранилища",
"type": "string"
},
"owner": {
"description": "Пользователь или группа, кто может модифицировать данные элемента",
"type": "string"
},
"data": {
"description": "Данные элемента хранилища",
"type": "string"
},
"shared": {
"description": "Список пользователей/групп, кому доступен элемент",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"owner",
"data"
]
},
"VaultUpdate": {
"description": "Изменение информации об элементе хранилища",
"properties": {
"name": {
"description": "Имя элемента хранилища",
"type": "string"
},
"owner": {
"description": "Пользователь или группа, кто может модифицировать данные элемента",
"type": "string"
},
"data": {
"description": "Данные элемента хранилища",
"type": "string"
},
"shared": {
"description": "Список пользователей/групп, кому доступен элемент",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment