Update RBAC Role

PUT /v1/endpoints/{uuid}/rbac/roles/{role_uuid}

Edit a role's name, description, priority, permissions, or default-assignment flag. Changes take effect on the next request from any client holding this role.

Be careful with permission changes — narrowing permissions is felt by everyone with the role. To stage the change, create a new role with the new permissions, migrate clients over, then delete the old one.

Path parameters

uuid string (uuid) Req
The endpoint's uuid from /endpoints.
role_uuid string (uuid) Req
The role's uuid from /rbac/roles. Resolved under this endpoint only.

Deprecated: the legacy integer id is still accepted in the path until the sunset, answered with Deprecation and Sunset headers. Use the uuid.

Request body

Same fields as create. name is required. Omitting priority or is_default keeps the existing value; sending an empty/zeroed permissions object keeps the existing permissions (it is not cleared).

Response (200 OK)

The updated role (same shape as list entries).

Deprecated: until the sunset this response also carries the legacy integer id and *_id fields. Don't use them; read uuid and the *_uuid fields.

Errors

400 Bad Request
Missing/invalid name, invalid JSON, or a duplicate role name (surfaced as an update failure, not a dedicated 409). An integer role id after the sunset (integer_id_unsupported).
401 Unauthorized
Missing auth.
403 Forbidden
Caller lacks the endpoints:update permission in the active account.
404 Not Found
Endpoint doesn't belong to the calling account, or the role isn't one of this endpoint's (role not found).
Request
curl -X PUT "https://api.ngris.com/v1/endpoints/019bb1e4-e785-77d2-9966-c3cff31d0a0e/rbac/roles/019b6243-8510-7cbb-a69c-6e29c89b0d65" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{ "name": "readonly", "description": "GET-only — Tier 1", "permissions": {"allowed_methods": ["GET"]}, "is_default": false }'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") client.endpoint_rbac.update_role( "019bb1e4-e785-77d2-9966-c3cff31d0a0e", "019b6243-8510-7cbb-a69c-6e29c89b0d65", { "name": "readonly", "description": "GET-only — Tier 1", "permissions": {"allowed_methods": ["GET"]}, "is_default": False, }, )
Response — 200 OK
{ "uuid": "019b6243-8510-7cbb-a69c-6e29c89b0d65", "name": "readonly", "description": "GET-only — Tier 1", "priority": 10, "is_default": false, "permissions": {"allowed_methods": ["GET"]}, "created_at": "2026-04-01T00:00:00Z", "updated_at": "2026-04-29T15:00:00Z" }
Was this helpful?
On this page
Update RBAC Role
Was this helpful?