
# アプリケーションを一時停止

`POST /v1/applications/{application_id}:suspend` · 権限 `applications:write`

アプリケーションの `status` を `suspended` に設定します。以後、そのアプリケーションは新しいトークンを取得できません。認可、PAR、デバイス認可、トークンエンドポイント(リフレッシュと `client_credentials` を含む)、イントロスペクション、取り消しは、いずれもこのアプリケーションをクライアントとして拒否します。一時停止は、アプリケーションが既に保持しているものも終了させます。KeenAuth は、一時停止より前に開かれた有効なリフレッシュトークンファミリーを取り消し(理由 `client_revoked`)、その `client_id` に印を付けるため、イントロスペクションと userinfo は、その時点より前にこのアプリケーションに発行されたアクセストークンを拒否します。JWT の署名だけを検証するリソースサーバーは、有効期限までそのようなアクセストークンを受け入れ続けます。アプリケーションのクライアント資格情報は保持されるため、再開に新しいシークレットは不要です。リクエストにボディはありません(空または `{}`)。既に一時停止中のアプリケーションを一時停止しても何も変わらず、同じバージョンの現在のアプリケーションを返します。この変更は管理監査ログに `application.updated` として書き込まれ、`application_changed` および `application_status_changed` イベントとして公開されます。

## リクエスト

**ヘッダー**: `If-Match: "<version>"`(任意)。`If-Match` を付けると、変更はそのバージョンに対してのみ適用されます(それ以外は `412`)。付けない場合は最新バージョンが使われ、別の書き込みが同時にアプリケーションを変更すると、リクエストは再試行されます。再試行を安全にするには、`Idempotency-Key` ヘッダーを送信してください。

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

## レスポンス

`200 OK` とアプリケーション(`"status": "suspended"`)、およびその `ETag` を返します。

## エラー

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

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

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg:suspend \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

CLI: `keenauth applications suspend app_6f8d0cjgbmf0gtn2rg6pscp3cg --yes`
