> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corebanq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update role

> Update role details



## OpenAPI

````yaml put /v1/roles/{role_id}
openapi: 3.0.0
info:
  title: Roles API
  version: 1.0.0
  description: API for role-based access control (RBAC)
servers: []
security:
  - bearerAuth: []
tags:
  - name: Roles
    description: Role management operations
  - name: User Roles
    description: User-role management operations
paths:
  /v1/roles/{role_id}:
    parameters:
      - name: role_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
    put:
      tags:
        - Roles
      summary: Update role
      description: Update role details
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRoleRequest'
      responses:
        '200':
          description: Role updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
        '400':
          $ref: '#/components/responses/ValidationError'
        '403':
          $ref: '#/components/responses/SystemRole'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    UpdateRoleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
        description:
          type: string
        active:
          type: boolean
    Role:
      type: object
      required:
        - id
        - name
        - active
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        active:
          type: boolean
        system:
          type: boolean
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  responses:
    ValidationError:
      description: Invalid input
      content:
        application/json:
          schema:
            $ref: 7355f1ac-435b-4f39-bfee-138ac8037fb0
          example:
            code: roles.invalid_role_name
            message: Invalid role name
    SystemRole:
      description: Cannot modify system role
      content:
        application/json:
          schema:
            $ref: 7355f1ac-435b-4f39-bfee-138ac8037fb0
          example:
            code: roles.cannot_modify_system_role
            message: Cannot modify system role
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: 7355f1ac-435b-4f39-bfee-138ac8037fb0
          example:
            code: roles.role_not_found
            message: Role not found

````