# Сгенерировать новый секрет клиента

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Сгенерировать новый секрет клиента

`POST /api/v1/security/oauth/clients/{id}/rotate-secret`

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

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

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `id` | path | да | string | Внутренний идентификатор записи клиента |
| `idempotency-key` | header | нет | string | Ключ идемпотентности для безопасного повтора запроса: 8–255 символов из набора A-Za-z0-9_.:+/=-, ответ кэшируется на 24 ч |

**Ответы**

- `200` — Секрет перевыпущен (`application/json`, RotateOAuthClientSecretResponse)
  - `client`: OAuthClient, обязательное
    - `allowedAudiences`: массив string, обязательное — Ресурсы (RFC 8707), для которых клиент может получать токены; пусто — все ресурсы платформы
    - `applicationType`: "web" | "native" | "spa" | null — Тип приложения: web, native или spa
    - `clientId`: string, обязательное — Публичный client_id для OAuth-запросов
    - `clientType`: "public" | "confidential", обязательное — Тип клиента: confidential — хранит секрет (сервер), public — без секрета (SPA, мобильные)
    - `clientUri`: string, nullable — Сайт приложения
    - `contacts`: массив string, обязательное — Контактные email ответственных
    - `createdAt`: string (date-time), обязательное — Когда создан, ISO 8601
    - `description`: string, nullable — Описание назначения клиента
    - `grantTypes`: массив string, обязательное — Разрешённые OAuth grant-типы
    - `id`: string, обязательное — Внутренний идентификатор записи клиента
    - `isActive`: boolean, обязательное — Активен ли клиент
    - `jwksUri`: string, nullable — JWKS-URL клиента для private_key_jwt
    - `lastUsedAt`: string (date-time), nullable — Последнее использование, ISO 8601
    - `logoUri`: string, nullable — Логотип приложения
    - `name`: string, обязательное — Название клиента
    - `policyUri`: string, nullable — Политика конфиденциальности приложения
    - `redirectUris`: массив string, обязательное — Разрешённые redirect URI для authorization_code
    - `requireDpop`: boolean, обязательное — Обязательна ли DPoP-привязка токенов
    - `requirePkce`: boolean, обязательное — Обязателен ли PKCE для authorization_code
    - `scopes`: массив string, обязательное — Разрешённые scope
    - `tokenEndpointAuthMethod`: string, nullable — Способ аутентификации на token endpoint (RFC 7591)
    - `tosUri`: string, nullable — Условия использования приложения
    - `updatedAt`: string (date-time), обязательное — Когда обновлён, ISO 8601
  - `clientSecret`: string, обязательное — Новый секрет — показывается только один раз; прежний аннулирован
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
