
# アプリケーションの接続を置き換え

`PUT /v1/applications/{application_id}/connections` · 権限 `applications:write` および `connections:write`

アプリケーションで有効な接続の一覧全体を、1 回のステップで置き換えます。`connection_ids` の順序は、ホストされるログインページのボタンの順序になります。空の一覧はすべての接続を無効にします。各接続は同じ環境に存在する必要があります。別の環境の接続は存在しない接続として扱われ(`/connection_ids` で `422`)、何も書き込まれません。アプリケーションが既に持っている一覧を送信しても何も変わらず、バージョンは保たれます。この変更は管理監査ログに `application.updated` として書き込まれ、`application_changed` イベントとして公開されます。接続を削除すると、次回のサインインから有効になります。

## リクエスト

**ヘッダー**: `If-Match: "<version>"`(任意)。`If-Match` を指定すると、アプリケーションがそのバージョンのままの場合にのみ一覧が書き込まれます(それ以外は `412`)。指定しない場合は、バージョンに関係なく一覧が書き込まれます。再試行を安全にするには `Idempotency-Key` ヘッダーを送信してください。

| パラメーター | 位置 | 必須 | 説明 |
|---|---|---|---|
| `application_id` | path | はい | アプリケーション ID。接頭辞は `app_`。 |

**ボディ**

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `connection_ids` | 文字列の配列 | はい | 接続 ID(`conn_…`)。一意であり、最大 100 件、ボタンの順序で指定します。 |

## レスポンス

`200 OK` と、アプリケーションおよびその新しい `ETag`。

## エラー

すべてのエラーは、安定した `code` を持つ `application/problem+json` ボディです。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | ボディが有効な JSON でない、または不明なフィールドがある。 |
| 401 | `unauthenticated` | API キーがない、無効、または取り消されている。 |
| 403 | `insufficient_permissions` | キーに `applications:write` または `connections:write` がない。 |
| 404 | `not_found` | この環境にアプリケーションが存在しない(または ID の形式が不正)。 |
| 412 | `precondition_failed` | `If-Match` のバージョンが古い。 |
| 422 | `validation_failed` | `connection_ids` がない、100 件を超える、ID の形式が不正または重複している、またはこの環境にない接続が含まれている。 |
| 429 | `rate_limited` | レート制限を超えた。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できない。後で再試行してください。 |

## 例

```bash
curl -X PUT https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/connections \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"connection_ids":["conn_01h455vb4pex5vsknk084sn02q"]}'
```

CLI: `keenauth applications put-connections app_6f8d0cjgbmf0gtn2rg6pscp3cg --connection-ids conn_01h455vb4pex5vsknk084sn02q`(すべての接続を無効にするには、`--data -` と共に `{"connection_ids":[]}` を送信します)
