
# Riprendere un'applicazione

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

Riporta lo `status` di un'applicazione sospesa su `active`, così può di nuovo ottenere token. Le sue credenziali client restano valide, ma le famiglie di refresh token revocate dalla sospensione restano revocate: gli utenti dell'applicazione devono accedere di nuovo per ottenere nuovi token. La richiesta non ha corpo (vuoto o `{}`). Riprendere un'applicazione già attiva non cambia nulla e restituisce l'applicazione attuale con la stessa versione. La modifica viene scritta nel registro di audit di gestione come `application.updated` e pubblicata come eventi `application_changed` e `application_status_changed`.

## Richiesta

**Intestazioni**: `If-Match: "<version>"` (facoltativa). Con `If-Match` la modifica si applica solo a quella versione (altrimenti `412`); senza, viene usata l'ultima versione e la richiesta viene ripetuta se un altro scrittore modifica l'applicazione nello stesso momento. Invia un'intestazione `Idempotency-Key` per rendere sicuri i tentativi ripetuti.

| Parametro | In | Obbligatorio | Descrizione |
|---|---|---|---|
| `application_id` | path | sì | ID dell'applicazione, con prefisso `app_`. |

## Risposta

`200 OK` con l'applicazione (`"status": "active"`) e il suo `ETag`.

## Errori

Ogni errore è un corpo `application/problem+json` con un `code` stabile.

| HTTP | `code` | Quando |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | È stato inviato un corpo non JSON valido oppure con un campo. |
| 401 | `unauthenticated` | La chiave API manca, non è valida o è stata revocata. |
| 403 | `insufficient_permissions` | La chiave non ha il permesso `applications:write`. |
| 404 | `not_found` | L'applicazione non esiste in questo ambiente (o l'ID non è valido). |
| 412 | `precondition_failed` | La versione in `If-Match` è obsoleta. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; rispetta `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprova più tardi. |

## Esempio

```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"'`
