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

# Update

> Update a role by passing a Role object.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/iam/roles/{role_id}
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/iam/roles/{role_id}:
    post:
      tags:
        - Role
      summary: Update
      description: Update a role by passing a Role object.
      operationId: c1.api.iam.v1.Roles.Update
      parameters:
        - in: path
          name: role_id
          required: true
          schema:
            description: The id of the role.
            readOnly: true
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.iam.v1.UpdateRoleRequestInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.iam.v1.UpdateRolesResponse'
          description: >-
            UpdateRolesResponse is the response message containing the updated
            role.
      x-codeSamples:
        - lang: go
          label: Update
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.Roles.Update(ctx, operations.C1APIIamV1RolesUpdateRequest{\n        RoleID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.UpdateRolesResponse != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.roles.update({
                roleId: "<id>",
              });

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.iam.v1.UpdateRoleRequestInput:
      description: >-
        The UpdateRoleRequest message contains the role to update and the update
        mask.
      properties:
        role:
          $ref: '#/components/schemas/c1.api.iam.v1.Role'
        updateMask:
          nullable: true
          readOnly: false
          type: string
      title: Update Role Request
      type: object
      x-speakeasy-name-override: UpdateRoleRequest
    c1.api.iam.v1.UpdateRolesResponse:
      description: UpdateRolesResponse is the response message containing the updated role.
      properties:
        role:
          $ref: '#/components/schemas/c1.api.iam.v1.Role'
      title: Update Roles Response
      type: object
      x-speakeasy-name-override: UpdateRolesResponse
    c1.api.iam.v1.Role:
      description: Role is a role that can be assigned to a user in ConductorOne.
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        displayName:
          description: The display name of the role.
          readOnly: false
          type: string
        id:
          description: The id of the role.
          readOnly: true
          type: string
        name:
          description: The internal name of the role.
          readOnly: true
          type: string
        permissions:
          description: The list of permissions this role has.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        serviceRoles:
          description: The list of serviceRoles that this role has.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        systemApiOnly:
          description: >-
            This Role is intended for API keys usage only, and the user
            interface may not function as expected.
          readOnly: true
          type: boolean
        systemBuiltin:
          description: >-
            The system builtin field. If this field is set, the role is not
            editable.
          readOnly: true
          type: boolean
        updatedAt:
          format: date-time
          readOnly: true
          type: string
      title: Role
      type: object
      x-speakeasy-name-override: Role
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````