
# Eine gelöschte Verbindung wiederherstellen

`POST /v1/connections/{connection_id}:restore` · Berechtigung `connections:write`

Stellt eine gelöschte Verbindung wieder her. Eine gelöschte Verbindung kann 30 Tage lang wiederhergestellt werden; in dieser Zeit wird sie nicht aufgelistet, kann nicht gelesen werden (`404`) und nicht zum Anmelden verwendet werden. Nach 30 Tagen wird sie endgültig gelöscht.

Die wiederhergestellte Verbindung erhält ihre bisherigen Einstellungen und den `status` = `inactive`. Sie wird nie automatisch aktiviert: Rufen Sie `:activate` auf, wenn Sie bereit sind (bei einer Enterprise-Verbindung werden dort die Testvoraussetzung und das Kontingent des Tarifs geprüft). Die Anwendungslisten der Verbindung und die Rollenzuordnungen der Verbindung werden beim Löschen der Verbindung entfernt und nicht wiederhergestellt.

Der Anfragetext ist optional und hat keine Felder. Der Vorgang ist idempotent: Wenn die Verbindung nicht gelöscht ist, wird nichts geschrieben und die aktuelle Verbindung zurückgegeben.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `connection_id` | string | ja | Verbindungs-ID (`conn_…`). |
| `Idempotency-Key` | header | nein | Optionaler Schlüssel (16-64 Zeichen), der eine wiederholte Anfrage sicher macht. |

Der Anfragetext ist optional; falls vorhanden, muss er `{}` sein.

## Antwort

`200 OK` mit der Verbindung und ihrem `ETag`.

```json
{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "acme-saml",
  "type": "enterprise",
  "strategy": "saml",
  "name": "Acme SAML",
  "display_name": null,
  "status": "inactive",
  "org_id": "org_0k3v8m1q2x9dz4h7s5t6w0y1ac",
  "allowed_email_domains": ["acme.example"],
  "allow_external_domains": false,
  "jit_mode": "create",
  "email_trust": false,
  "default_role_ids": [],
  "trust_idp_mfa": false,
  "allow_idp_initiated": false,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-26T17:00:00.123456Z"
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Anfragetext enthält ein Feld. |
| 404 | `not_found` | Die Verbindung existiert nicht, gehört zu einer anderen Umgebung oder wurde vor mehr als 30 Tagen gelöscht. |
| 409 | `conflict` | Eine andere Verbindung verwendet jetzt denselben `key` oder `name` (oder den einzigen Passkey- bzw. Social-Provider-Platz), oder die zugehörige Organisation wurde gelöscht. |
| 403 | `quota_exceeded` | Die Umgebung hat bereits die maximale Anzahl an Verbindungen erreicht. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder wurden widerrufen. |
| 403 | `insufficient_permissions` | Den Anmeldedaten fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |

## Beispiel

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

CLI: `keenauth connections restore conn_0k3v8m1q2x9dz4h7s5t6w0y1ab`
