
# アプリケーションを更新する

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

JSONマージパッチ(`application/merge-patch+json`、RFC 7396)を使用してアプリケーションを更新します。送信したフィールドは変更され、`null`はnullable フィールドをクリアし、配列は全体的に置き換えられます。`If-Match`は必須です。なければリクエストは`428`で失敗し、古いバージョンなら`412`です。不変フィールドの`key`、`app_type`、`registration_source`、`owner_org_id`は、異なる値を送信した場合、コード`immutable`を含む`422`を返します。何も変更しないパッチはアプリケーションと版をそのまま保ちます。

## リクエスト

**ヘッダー**: `If-Match: "<version>"` (必須)、`Content-Type: application/merge-patch+json`。

**パス**: `application_id`(`app_…`)。

**Body**: 作成ページに記載されている書き込み可能フィールドの任意のサブセット(`key`、`name`、`app_type`、…`connection_ids`)。`null`はnullable フィールドをクリアします。配列はリスト全体を置き換えます。`jwks`はオブジェクトとして置き換えられます。読み取り専用フィールド(`id`、`client_id`、`version`、`created_at`、`updated_at`、`last_token_issued_at`、`last_token_asn`)は拒否されます。

## レスポンス

`200 OK` と更新されたアプリケーション、および新しい`ETag`。

## エラー

| HTTP | `code` | 状況 |
|---|---|---|
| 401 | `unauthenticated` | キーが見つからない、無効、またはアクティベーション解除されている。 |
| 403 | `insufficient_permissions` | キーが必要な権限を持っていない。 |
| 404 | `not_found` | この環境にアプリケーションが存在しない。 |
| 428 | `precondition_required` | `If-Match`ヘッダーがない。 |
| 412 | `precondition_failed` | `If-Match`内の版が古い。 |
| 422 | `validation_failed` | フィールドが無効か、不変フィールドが変更された。 |
| 422 | `policy_conflict` | `allowed_first_factors` に環境の最初のファクターのセットと共通の方法がありません。 |
| 400 | `unknown_field` | パッチにスキーマに含まれないフィールド(`id`などの読み取り専用フィールドを含む)がある。 |
| 415 | `unsupported_media_type` | `Content-Type`が`application/merge-patch+json`ではない。 |

## 例

```bash
curl -X PATCH https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"name":"Portal v2","login_host":null}'
```
