Replace the organization custom role permissions

PUT /v1/org-custom-role-permissions · permission roles:write

Replaces the list with permission_ids (the full set, at most 1000). Adding a permission needs the org_custom_roles plan feature (Business); removing permissions is always allowed, and a removed permission is also taken away from every organization role in the same write. Some system permissions can never be given to organization roles (permission_not_allowed). The change is audited as org_custom_role_permissions.updated; each organization role that loses a permission is audited as role.updated.

Request

Field Type Required Description
permission_ids string[] yes The full set of permission IDs (perm_…), at most 1000.

Response

200 OK with the new list.

{
  "permission_ids": [
    "perm_01j9xs0a2b4c6d8e0f2g4h6j8k",
    "perm_01j9xs0a2b4c6d8e0f2g4h6j8m"
  ]
}

Errors

HTTP code When
403 plan_feature_unavailable The set adds a permission and the plan does not include org_custom_roles.
422 permission_not_allowed A permission can never be given to organization roles.
422 validation_failed permission_ids is missing, has a malformed or unknown ID, a duplicate or more than 1000 items.
401 unauthenticated The credential is missing, invalid or revoked.
403 insufficient_permissions The credential lacks the required permission.
429 rate_limited The rate limit was exceeded; retry after the Retry-After period.
503 service_unavailable A dependency is temporarily unavailable; retry after the Retry-After period.

Example

curl -i -X PUT "https://api.eu.keenauth.com/v1/org-custom-role-permissions" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"permission_ids":["perm_01j9xs0a2b4c6d8e0f2g4h6j8k","perm_01j9xs0a2b4c6d8e0f2g4h6j8m"]}'