
# Reanudar una aplicación

`POST /v1/applications/{application_id}:resume` · permiso `applications:write`

Devuelve el `status` de una aplicación suspendida a `active`, para que pueda volver a obtener tokens. Sus credenciales de cliente siguen funcionando, pero las familias de refresh tokens revocadas por la suspensión permanecen revocadas: los usuarios de la aplicación deben volver a iniciar sesión para obtener nuevos tokens. La solicitud no tiene cuerpo (vacío o `{}`). Reanudar una aplicación que ya está activa no cambia nada y devuelve la aplicación actual con la misma versión. El cambio se escribe en el registro de auditoría de gestión como `application.updated` y se publica como los eventos `application_changed` y `application_status_changed`.

## Solicitud

**Cabeceras**: `If-Match: "<version>"` (opcional). Con `If-Match`, el cambio solo se aplica a esa versión (`412` en caso contrario); sin ella, se usa la última versión y la solicitud se reintenta si otro escritor modifica la aplicación al mismo tiempo. Envía una cabecera `Idempotency-Key` para que los reintentos sean seguros.

| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
| `application_id` | path | sí | Identificador de la aplicación, con prefijo `app_`. |

## Respuesta

`200 OK` con la aplicación (`"status": "active"`) y su `ETag`.

## Errores

Todo error es un cuerpo `application/problem+json` con un `code` estable.

| HTTP | `code` | Cuándo |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Se envió un cuerpo que no es JSON válido o tiene un campo. |
| 401 | `unauthenticated` | La clave de API falta, no es válida o ha sido revocada. |
| 403 | `insufficient_permissions` | La clave no tiene el permiso `applications:write`. |
| 404 | `not_found` | La aplicación no existe en este entorno (o el identificador está mal formado). |
| 412 | `precondition_failed` | La versión en `If-Match` está desactualizada. |
| 429 | `rate_limited` | Se superó el límite de frecuencia; respeta `Retry-After`. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintenta más tarde. |

## Ejemplo

```bash
curl -X POST https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg:resume \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H 'If-Match: "4"'
```

CLI: `keenauth applications resume app_6f8d0cjgbmf0gtn2rg6pscp3cg --if-match '"4"'`
