---
title: "Update App Resource Role"
method: PUT
path: "/v2/app-resource-roles/{id}"
tags: ["App Resource Role API"]
---

# Update App Resource Role

`PUT /v2/app-resource-roles/{id}`

Update an existing app resource role.

## Path parameters

- `id` string, required — The ID of the role.

## Request body

- object
  - `name` string, nullable — The name of the role. Omit to leave unchanged.
  - `description` string, nullable — A description of the role. Omit to leave unchanged.
  - `requestsEnabled` boolean, nullable — Whether requests are enabled for the role. Omit to leave unchanged.
  - `accessPolicyId` string, nullable — The default access policy for the role (optional).
  - `provisioningMethod` union — Provisioning configuration for a role. Exactly one method should be set.
    - object
      - `builtinWorkflow` SvflowPubapimodelsBuiltinWorkflowProvisioning, required — Provisioning is handled by the service's builtin workflow integration.
    - object
      - `customWorkflow` SvflowPubapimodelsCustomWorkflowProvisioning, required — Provisioning is handled by custom workflows for provision + deprovision.
        - `provisionWorkflowId` string — The workflow ID to provision access.
        - `deprovisionWorkflowId` string — The workflow ID to deprovision access.
    - object
      - `linkedRoles` SvflowPubapimodelsLinkedRolesProvisioning, required — Provisioning depends on prerequisite roles being provisioned first.
        - `linkedRoleIds` string[] — The IDs of prerequisite roles.
    - object
      - `manual` SvflowPubapimodelsManualProvisioning, required — Provisioning is handled manually by assigned users/groups.
        - `assignees` SvflowPubapimodelsManualProvisioningAssignee[] — Users and groups that should be assigned/notified for manual provisioning.
          - `assigneeId` string — The ID of the user or group.
          - `assigneeType` 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_UNSPECIFIED' | 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_USER' | 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_GROUP'
  - `externalId` string, nullable — The external ID of the role in the external system (optional).
  - `externalData` string, nullable — Data from the external system as a JSON string (optional).
  - `requireFormConfirmation` boolean, nullable
  - `owners` SvflowPubapimodelsOwnerTargetSet — The complete owner set for a subject, replaced wholesale. Wrapping the list in a message lets update requests distinguish "owners unchanged" (absent) from "remove all owners" (present with an empty list).
    - `owners` SvflowPubapimodelsOwnerTarget[]
      - `targetId` string — The ID of the owner (user or group).
      - `targetType` 'ACCESS_RELATIONSHIP_TARGET_TYPE_UNSPECIFIED' | 'ACCESS_RELATIONSHIP_TARGET_TYPE_USER' | 'ACCESS_RELATIONSHIP_TARGET_TYPE_GROUP'

## Response `200`

Success

- SvflowPublicapiUpdateAppResourceRoleResponse
  - `data` SvflowPubapimodelsRole — Role represents a requestable role on an app resource.
    - `id` string — The ID of the role.
    - `resourceId` string — The ID of the resource that the role belongs to.
    - `name` string — The name of the role.
    - `description` string — A description of the role.
    - `requestsEnabled` boolean — Whether requests are enabled for the role.
    - `accessPolicyId` string, nullable — The default access policy for the role.
    - `provisioningMethod` union — Provisioning configuration for a role. Exactly one method should be set.
      - object
        - `builtinWorkflow` SvflowPubapimodelsBuiltinWorkflowProvisioning, required — Provisioning is handled by the service's builtin workflow integration.
      - object
        - `customWorkflow` SvflowPubapimodelsCustomWorkflowProvisioning, required — Provisioning is handled by custom workflows for provision + deprovision.
          - `provisionWorkflowId` string — The workflow ID to provision access.
          - `deprovisionWorkflowId` string — The workflow ID to deprovision access.
      - object
        - `linkedRoles` SvflowPubapimodelsLinkedRolesProvisioning, required — Provisioning depends on prerequisite roles being provisioned first.
          - `linkedRoleIds` string[] — The IDs of prerequisite roles.
      - object
        - `manual` SvflowPubapimodelsManualProvisioning, required — Provisioning is handled manually by assigned users/groups.
          - `assignees` SvflowPubapimodelsManualProvisioningAssignee[] — Users and groups that should be assigned/notified for manual provisioning.
            - `assigneeId` string — The ID of the user or group.
            - `assigneeType` 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_UNSPECIFIED' | 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_USER' | 'MANUAL_PROVISIONING_ASSIGNEE_TYPE_GROUP'
    - `externalId` string, nullable — The external ID of the role in the external system (optional).
    - `externalData` string, nullable — Data from the external system as a JSON string (computed by server).
    - `requireFormConfirmation` boolean
    - `tagIds` string[] — IDs of the tags currently attached to this role.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/serval/apis/serval-public-api.md) · [All operations](https://skmtc.net/serval/apis/serval-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/serval/serval-public-api/versions/0549515e9384/schema)
