ドキュメント本文へスキップ
API

ロールを更新する

すべてのフィールドは任意で、`permissions` は一覧全体を置き換えます。

PATCHapi.openemail.uk/roles/{id}

実際の呼び出しを、ご自身のキーで自分のワークスペースに対して実行します。

PATCH /roles/{id}

すべてのフィールドは任意で、permissions は一覧全体を置き換えます。

roles:write が必要です。フィールドを省略すればそのまま残ります。それが PATCH の意味です。

curl
curl -X PATCH "$OE/roles/role_2b81de079c1f0a4b7e05d386" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"] }'
レスポンス
{  "object": "role",  "id": "role_2b81de079c1f0a4b7e05d386",  "name": "Support",  "description": "Answers the shared inboxes and nothing else.",  "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"],  "builtin": null,  "editable": true,  "deletable": true,  "members": 3,  "apiKeys": 1,  "createdAt": "2026-08-30T10:41:02.000Z",  "updatedAt": "2026-08-30T13:02:19.000Z"}

permissions は一覧全体を置き換えます。1 件だけ付与する呼び出しはなく、今後も作りません。監査されるのは一覧であり、インデックス指定のパッチは、タブを 2 つ開いた瞬間に更新の消失になります。ロールを読み、目的のエントリを変更し、すべてを送り返してください。パーミッションを 1 つ送っても、パーミッションが 1 つ追加されるわけではありません。そのロールはそれ 1 つと、それが含意するものだけを持つ状態になります。

description は任意であるだけでなく null 許容でもあり、その違いこそがパッチの要点です。省略すれば保存された文がそのまま残り、null を送れば消えます。null 許容がなければ、説明を消すにはスペースに置き換えるしかありませんでした。

PATCH が拒否する唯一のロールはオーナーで、そのすべてのフィールドを拒否します。role_immutable、409 に param: "roleId" が付きます。それ以外はシードされたロールも含め、新しいパーミッション一覧と同じくらい気軽に新しい名前も受け付けます。builtin はロールの出自を記録するものであって、何をしてよいかを記録するものではありません。別のロールがすでに持っている名前の場合は role_name_taken になり、409 に param: "name" が付きます。

この編集は、そのロールを持つ誰か(API キーを含む)が次に行うリクエストから反映されます。上限はキャッシュされず、リクエストごとに解決されるからです。したがってロールを狭めることは、その下のキーをローテーションしなくても効く即時の失効になります。広げるほうも同じく即時であり、そちらが覚えておく価値のある半面です。