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

# Replace all subject (user or organization) role assignments for the given app



## OpenAPI

````yaml /api-specs/cloud/public-api.json put /api/apps/beta/apps/{appId}/roles
openapi: 3.0.3
info:
  title: Domino Public API
  description: Reference for Domino's public REST API endpoints.
  version: 6.4.0
  x-catalog-key: nucleus
servers:
  - url: https://mycluster.domino.tech
    description: >-
      Replace 'mycluster.domino.tech' with your Domino cluster hostname. For
      Domino Cloud customers, that is `your-subdomain`.domino.tech (e.g.,
      acme.domino.tech). For self-hosted deployments, it is the hostname you
      reach the Domino UI at.
security: []
tags:
  - name: Projects
  - name: Project templates
  - name: Workspaces
  - name: Jobs
  - name: HPC Jobs
  - name: Environments
  - name: Hardware Tiers
  - name: Datasets
  - name: Data Sources
  - name: GenAI
  - name: AI Systems
  - name: Apps
  - name: App versions
  - name: App instances
  - name: Model APIs
  - name: Registered models
  - name: Model deployment
  - name: Extensions
  - name: Cost and billing
  - name: Users and organizations
  - name: Service accounts
  - name: Personal Access Tokens
  - name: Personal Access Tokens (admin)
  - name: Audit Trail
  - name: Custom metrics
  - name: PPM
  - name: Model Monitoring models
  - name: Model Monitoring drift and quality
  - name: Model Monitoring settings
  - name: Model Monitoring authentication
  - name: Governance bundles
  - name: Governance policies
  - name: Governance evidence and results
  - name: Governance operations
  - name: NetApp Volumes
  - name: NetApp Volumes snapshots
  - name: NetApp Volumes filesystems
  - name: NetApp Volumes transfers
  - name: Tags
  - name: Properties
externalDocs:
  description: OpenAPI
  url: https://swagger.io/resources/open-api/
paths:
  /api/apps/beta/apps/{appId}/roles:
    put:
      tags:
        - Apps
      summary: >-
        Replace all subject (user or organization) role assignments for the
        given app
      operationId: setAppSubjectRoles
      parameters:
        - description: The id of the app to set the roles for.
          in: path
          name: appId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppSubjectRolesRequest'
        description: App user role assignments
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppSubjectRolesResponse'
          description: Replaced existing user roles
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
        - DominoApiKey: []
        - BearerAuthentication: []
components:
  schemas:
    AppSubjectRolesRequest:
      properties:
        defaultRole:
          enum:
            - NONE
            - READER
            - VIEWER
          type: string
        notifyChanges:
          type: boolean
        pendingRequests:
          items:
            $ref: '#/components/schemas/AppUserAccessRequest'
          type: array
        subjectRoles:
          items:
            $ref: '#/components/schemas/AppSubjectRole'
          type: array
      required:
        - defaultRole
        - subjectRoles
        - notifyChanges
        - pendingRequests
      type: object
    AppSubjectRolesResponse:
      properties:
        defaultRole:
          enum:
            - NONE
            - READER
            - VIEWER
          type: string
        pendingRequests:
          items:
            $ref: '#/components/schemas/AppUserAccessRequest'
          type: array
        subjectRoles:
          items:
            $ref: '#/components/schemas/AppSubjectRole'
          type: array
      required:
        - defaultRole
        - subjectRoles
        - pendingRequests
      type: object
    AppUserAccessRequest:
      properties:
        userId:
          type: string
      required:
        - userId
      type: object
    AppSubjectRole:
      properties:
        role:
          enum:
            - VIEWER
            - OPERATOR
            - EDITOR
            - OWNER
          type: string
        subjectId:
          type: string
        subjectType:
          enum:
            - USER
            - ORGANIZATION
          type: string
      required:
        - subjectId
        - subjectType
        - role
      type: object
    ErrorV1:
      properties:
        code:
          description: Machine-readable error code.
          example: NOT_FOUND
          type: string
        message:
          description: Human-readable description of the error.
          example: The requested HPC Job could not be found.
          type: string
      required:
        - message
      type: object
  responses:
    '400':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Bad Request
    '401':
      content:
        application/json:
          example:
            code: UNAUTHORIZED
            message: Authentication is required to access this resource.
          schema:
            $ref: '#/components/schemas/ErrorV1'
      description: Unauthorized - authentication is required or has failed.
    '403':
      content:
        application/json:
          example:
            code: FORBIDDEN
            message: You do not have permission to perform this action.
          schema:
            $ref: '#/components/schemas/ErrorV1'
      description: Forbidden - the caller lacks permission to perform this action.
    '404':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Not Found
    '500':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Internal Server Error
  securitySchemes:
    DominoApiKey:
      type: apiKey
      in: header
      name: X-Domino-Api-Key
    BearerAuthentication:
      type: apiKey
      name: Authorization
      in: header

````

## Related topics

- [Return all subjects (users and organizations) and their corresponding assigned roles for the given app](/api-reference/apps/return-all-subjects-users-and-organizations-and-their-corresponding-assigned-roles-for-the-given-app.md)
- [Work with roles](/cloud/admin/identity-and-access/manage-users/roles/index.md)
- [Sharing and access](/cloud/platform-capabilities/features/collaboration/sharing-and-access.md)
- [Roles and security](/cloud/platform-capabilities/features/governance/roles-and-security.md)
