# Вернуть версию агента

> Создаёт новую версию с именем и настройками указанной версии. История не переписывается. Заголовок If-Match с текущей версией обязателен.

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Вернуть версию агента

`POST /api/v1/security/agents/{agentId}/versions/{version}/restore`

Создаёт новую версию с именем и настройками указанной версии. История не переписывается. Заголовок If-Match с текущей версией обязателен.

**Авторизация:** dpop или oauth2: `security.teams:read`, `security.teams:write`

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `agentId` | path | да | string (uuid) | Идентификатор агента |
| `version` | path | да | integer | Номер версии, которую нужно вернуть |
| `if-match` | header | нет | string | ETag текущей версии агента из заголовка ответа, например "3" |
| `idempotency-key` | header | нет | string | Ключ идемпотентности для безопасного повтора запроса: 8–255 символов из набора A-Za-z0-9_.:+/=-, ответ кэшируется на 24 ч |

**Ответы**

- `200` — Агент после отката (`application/json`, Agent)
  - `config`: AgentConfig, обязательное
    - `avatar`: "ball" | "triangle" | "square" | "star" | "asterisk" | "corner" | null, обязательное — Аватар своего агента; null — аватар пресета
    - `capabilities`: object, обязательное
      - `browser`: boolean, обязательное — Стелс-браузер для работы с сайтами
      - `web`: boolean, обязательное — Поиск и чтение страниц в интернете
    - `instructions`: string, обязательное — Дополнительные инструкции агенту
    - `preset`: "paralegal" | "civilist" | "litigator" | "investigator" | "compliance" | "legal-engineer" | "custom", обязательное — Персона агента
    - `sources`: массив AgentSource, обязательное — Материалы команды, на которые агент опирается
      - `id`: string, обязательное — Идентификатор материала
      - `kind`: "knowledge" | "folder" | "document", обязательное — knowledge — база знаний, folder — папка, document — документ
      - `title`: string, обязательное — Название материала
    - `tools`: AgentToolPolicy, обязательное — Права агента на инструменты
      - `domains`: object, обязательное — Режим для всех инструментов раздела, например {"mail": "ask"}; важнее режима по виду действий
      - `effects`: object, обязательное — Режим по умолчанию для каждого вида действий
      - `tools`: object, обязательное — Режим отдельного инструмента, например {"tasks.delete_task": "deny"}; важнее режима раздела
  - `createdAt`: string, обязательное — Когда агент создан, ISO 8601
  - `id`: string (uuid), обязательное
  - `isDefault`: boolean, обязательное — Агент команды по умолчанию
  - `name`: string, обязательное — Имя агента
  - `permissions`: AgentPermissions, обязательное
    - `canEdit`: boolean, обязательное — Настраивает агента: персону, инструкции, возможности, подтверждения
    - `canManage`: boolean, обязательное — Управляет доступом к агенту
    - `canSchedule`: boolean, обязательное — Ставит агенту задачи по расписанию
    - `canUse`: boolean, обязательное — Пользуется агентом
  - `status`: "active" | "suspended", обязательное — active — агент работает; suspended — приостановлен
  - `suspendReason`: string, nullable, обязательное — Причина приостановки
  - `suspendedAt`: string, nullable, обязательное — Когда агент приостановлен, ISO 8601
  - `suspendedBy`: string (uuid), nullable, обязательное — Кто приостановил агента
  - `updatedAt`: string, обязательное — Когда настройки агента менялись в последний раз, ISO 8601
  - `version`: integer, обязательное — Номер текущей версии настроек
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
