
# Disattiva una connessione

`POST /v1/connections/{connection_id}:deactivate` · autorizzazione `connections:write`

Imposta lo `status` della connessione su `inactive`. Il corpo della richiesta è facoltativo e non ha campi. L'operazione è idempotente: se la connessione ha già questo stato non viene scritto nulla, la versione resta invariata e viene restituita la connessione corrente. `If-Match` non viene usato; se un altro scrittore modifica la connessione nello stesso momento, la chiamata viene ritentata alcune volte. L'attivazione non verifica che la configurazione del protocollo sia completa.

## Richiesta

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `connection_id` | string | sì | Identificatore della connessione (`conn_…`). |
| `Idempotency-Key` | header | no | Chiave facoltativa (16-64 caratteri) che rende sicura una richiesta ripetuta. |

Il corpo è facoltativo; se presente deve essere `{}`.

## Risposta

`200 OK` con la connessione e il suo `ETag`.

```json
{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "google",
  "type": "social",
  "strategy": "google",
  "name": "Google",
  "display_name": "Sign in with Google",
  "status": "inactive",
  "org_id": null,
  "allowed_email_domains": [],
  "allow_external_domains": false,
  "jit_mode": null,
  "email_trust": null,
  "default_role_ids": [],
  "trust_idp_mfa": null,
  "allow_idp_initiated": null,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-05T09:30:00.123456Z"
}
```

## Errori

| HTTP | code | Quando |
|---|---|---|
| 400 | `unknown_field` | Il corpo contiene un campo. |
| 404 | `not_found` | La connessione non esiste o appartiene a un altro ambiente. |
| 412 | `precondition_failed` | La connessione è stata modificata di continuo in modo concorrente; riprova. |
| 401 | `unauthenticated` | La credenziale manca, non è valida o è stata revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha l'autorizzazione richiesta. |
| 429 | `rate_limited` | È stato superato il limite di richieste; riprova dopo il periodo indicato in `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in `Retry-After`. |

## Esempio

```bash
curl -X POST https://api.eu.keenauth.com/v1/connections/conn_0k3v8m1q2x9dz4h7s5t6w0y1ab:deactivate \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
