---
title: "Put role permissions by role id."
method: PUT
path: "/access/roles/{role_id}/permissions"
tags: ["Access Management: Role Operations"]
---

# Put role permissions by role id.

`PUT /access/roles/{role_id}/permissions`

## Request

- Base URL: `https://replace-with-account.api.decodable.co/v1alpha2`
- URL: `https://replace-with-account.api.decodable.co/v1alpha2/access/roles/{role_id}/permissions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/decodable/apis/decodable-control-plane/docs/access/roles/:role_id/permissions/put.ts> (a function with typed inputs; its response is checked against the schema)

Requires permission matching: `role:write:<name>`.

## Request body

- Permission[]
  - `effect` 'allow' | 'deny', required: allow or deny.
  - `pattern` string, required: A three-part, colon(:)-delimited permission selector pattern, using asterisk (*) as wildcard. Takes form: <type>:<action>:<qualified-name>

## Response `200`

Role permissions successfully put.

## Other responses

- `400`: An invalid request was received.
- `403`: Access denied: requesting user lacks a required permission.
- `404`: The requested resource does not exist.
- `default`: An error has occurred.

---

[API](https://skmtc.dev/decodable/apis/decodable-control-plane.md) - [All operations](https://skmtc.dev/decodable/apis/decodable-control-plane/llms.txt) - [OpenAPI document](https://skmtc.dev/decodable/apis/decodable-control-plane/revisions/9718a3019da8?raw)
