ControlUp Roles API

The Roles API from ControlUp — 2 operation(s) for roles.

OpenAPI Specification

controlup-roles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dex Roles API
  version: 1.0.0
  description: Dex API Description
  contact: {}
servers:
- url: https://api.controlup.com/v1
tags:
- name: Roles
paths:
  /organizations/{orgId}/roles:
    get:
      operationId: OrgRolesPublicController_getAll
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllRolesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Returns a list of all roles.
      summary: List all roles
      tags:
      - Roles
      security:
      - apiKey: []
      parameters:
      - description: 'The page of results to return.

          The first page is page number 1.'
        in: query
        name: _page
        required: false
        schema:
          default: '1'
          format: int32
          type: integer
          minimum: 1
        example: 1
        style: form
      - description: The number of results returned per page.
        in: query
        name: _limit
        required: false
        schema:
          default: '10'
          format: int32
          type: integer
          minimum: 1
        example: 10
        style: form
      - description: Sorts results according to the specified field.
        in: query
        name: _sortBy
        required: false
        schema:
          default: id
          type: string
          enum:
          - description
          - id
          - createdAt
          - updatedAt
          - name
          - isDefault
          - childOrganizationIds
        example: id
        style: form
      - description: The sort order (ascending / descending) of the field specified by the `_sortBy` parameter.
        in: query
        name: _order
        required: false
        schema:
          default: asc
          type: string
          enum:
          - asc
          - desc
        example: asc
        style: form
      - description: 'A search filter that is applied to all fields.

          Only results that contain the specified string are returned.'
        in: query
        name: _search
        required: false
        schema:
          type: string
        style: form
      - description: The format of returned results.
        in: query
        name: _format
        required: false
        schema:
          default: json
          type: string
          enum:
          - json
          - xml
          - csv
        example: json
        style: form
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: 'Filter roles by a specific tenant manager child organization ID.

          Returns roles that apply to this child organization (either roles with no specific child organizations, or roles that include this child organization).'
        in: query
        name: childOrganizationId
        required: false
        schema:
          type: string
        style: form
      - description: A search filter on the `isDefault` field.
        in: query
        name: isDefault
        required: false
        schema:
          type: array
          items:
            type: boolean
        style: form
      - description: A search filter on the `description` field.
        in: query
        name: description
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/NonEmptyString'
        style: form
      - description: A search filter on the `name` field.
        in: query
        name: name
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/NonEmptyString'
        style: form
      - description: A search filter on the `id` field.
        in: query
        name: id
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/NonEmptyString'
        style: form
    post:
      operationId: OrgRolesPublicController_create
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRoleResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Creates a new role.
      summary: Create a role
      tags:
      - Roles
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleToCreate'
  /organizations/{orgId}/roles/{id}:
    get:
      operationId: OrgRolesPublicController_getOneById
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoleResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Returns the details for a role, including the permissions within the role and the users to which the role is assigned.
      summary: Retrieve a role
      tags:
      - Roles
      security:
      - apiKey: []
      parameters:
      - description: The format of returned results.
        in: query
        name: _format
        required: false
        schema:
          default: json
          type: string
          enum:
          - json
          - xml
          - csv
        example: json
        style: form
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: 'ID of the role to retrieve. You can use [GET /roles](orgrolespubliccontroller_getall) to see the ID of each role.


          Default role IDs:

          * Admin - 1

          * Editor - 2

          * Viewer - 3

          * No Permissions - 4

          * VDI and DaaS Admins - 5

          * Access Real-Time DX Console - 6'
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/PositiveInteger'
    patch:
      operationId: OrgRolesPublicController_update
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRoleResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Updates an existing role by its ID.
      summary: Update a role
      tags:
      - Roles
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ID of the role to update. You can use [GET /roles](orgrolespubliccontroller_getall) to see the ID of each role.
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/PositiveInteger'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleToUpdate'
    delete:
      operationId: OrgRolesPublicController_delete
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse_DeletedActionResponse_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: 'Deletes a role.

        If you delete a role, then the role is removed from any users/groups that are assigned the role.'
      summary: Delete a role
      tags:
      - Roles
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ID of the role to delete. You can use [GET /roles](orgrolespubliccontroller_getall) to see the ID of each role.
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/PositiveInteger'
components:
  schemas:
    DeletedActionResponse:
      properties:
        affectedRows:
          type: number
          format: double
      required:
      - affectedRows
      type: object
    RoleWithData:
      allOf:
      - $ref: '#/components/schemas/RolePublic'
      - properties:
          usersIds:
            items:
              $ref: '#/components/schemas/UUID'
            type: array
            description: IDs of users who are assigned the role.
          groupsIds:
            items:
              $ref: '#/components/schemas/UUID'
            type: array
            description: IDs of IDP groups that are assigned the role.
          permissions:
            items:
              $ref: '#/components/schemas/RolePermissions'
            type: array
            description: A list of all permissions in the role, organized by the top-level permission category.
        required:
        - usersIds
        - groupsIds
        - permissions
        type: object
    API_KEYS:
      enum:
      - manage_api_keys
      - vdi_daas_host_get_metrics_per_folder
      - vdi_daas_host_get_host_counts
      - vdi_daas_user_get_user_activity_status
      - vdi_daas_netscaler_get_netscaler_metrics
      - vdi_daas_netscaler_get_loadbalancer_metrics
      - vdi_daas_netscaler_get_gateway_metrics
      - vdi_daas_machine_get_machine_statistics
      - vdi_daas_machine_get_virtual_environments_sizing_recommendations
      - vdi_daas_machine_get_azure_environment_sizing_recommendations
      - vdi_daas_session_get_session_statistics
      - vdi_daas_apps_get_app_usage_details
      - vdi_daas_apps_get_all_apps_usage_details
      - vdi_daas_apps_get_app_statistics
      - access_dex_settings
      type: string
    ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.Forbidden'
        code:
          $ref: '#/components/schemas/ErrorCode.Forbidden'
        status:
          $ref: '#/components/schemas/HttpStatusCode.FORBIDDEN'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    HttpStatusCode.UNAUTHORIZED:
      enum:
      - 401
      type: number
    APIPaginatedResponse_RolePublic-Array_:
      allOf:
      - $ref: '#/components/schemas/APIResponse_RolePublic-Array_'
      - properties:
          metadata:
            allOf:
            - $ref: '#/components/schemas/PaginatedResponseMetadata'
            - additionalProperties: true
              type: object
        required:
        - metadata
        type: object
    ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.Unauthorized'
        code:
          $ref: '#/components/schemas/ErrorCode.Unauthorized'
        status:
          $ref: '#/components/schemas/HttpStatusCode.UNAUTHORIZED'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    employees:
      items:
        $ref: '#/components/schemas/EMPLOYEES'
      type: array
      description: The "Employees" permission category.
    workflow:
      items:
        $ref: '#/components/schemas/WORKFLOW'
      type: array
      description: The "Workflows" permission category.
    EMPLOYEES:
      enum:
      - access_app_group_ai
      - access_employees
      - manage_experience_score_rules
      - view_experience_score_rules
      type: string
    CUSTOMER_SUCCESS_HUB:
      enum:
      - usage_and_analytics
      - my_success_hub
      type: string
    GetRoleResponse:
      $ref: '#/components/schemas/APIResponse_RoleWithData_'
      example:
        id: 1
        name: Admin
        description: null
        isDefault: true
        usersIds:
        - d1cb6131-7361-4e39-84c7-049e06921a18
        - 775448cf-4f16-472d-904a-2983c10b380e
        groupsIds:
        - 69cdd6bc-e81f-4c0e-8f21-a8f35ce4763c
        - 991419b2-cd58-408c-a5e4-4675916941d5
        permissions:
        - permissionTreeName: dex_access_control
          selectedPermissions:
          - id: view_settings
            scopes:
            - type: device_groups
              values:
              - All Devices
            - type: device_tags
              values:
              - All Devices
          - id: manage_users
            scopes:
            - type: device_groups
              values:
              - All Devices
            - type: device_tags
              values:
              - All Devices
          - id: manage_roles
            scopes:
            - type: device_groups
              values:
              - All Devices
            - type: device_tags
              values:
              - All Devices
          - id: manage_sso_access
            scopes:
            - type: device_groups
              values:
              - All Devices
            - type: device_tags
              values:
              - All Devices
    Scope:
      properties:
        type:
          type: string
          description: The method of targeting devices for the permission scope.
        values:
          items:
            type: string
          type: array
          description: The values of the permission scope targets.
      required:
      - values
      - type
      type: object
    NonEmptyString:
      type: string
      minLength: 1
    api_keys:
      items:
        $ref: '#/components/schemas/API_KEYS'
      type: array
      description: The "API keys" permission category.
    app_dx:
      items:
        $ref: '#/components/schemas/APP_DX'
      type: array
      description: The "ControlUp for Apps" permission category.
    ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden_'
      required:
      - error
      - metadata
      type: object
    REPORTS:
      enum:
      - environment_assessment
      - sizing_recommendations
      - session_count
      - session_activity
      - logon_duration
      - protocol_trends
      - machine_trends
      - machine_statistics
      - host_trends
      - host_statistics
      - top_windows_errors
      - netscaler
      - load_balancing
      - gateway
      - citrix_license_usage
      - app_statistics
      - app_usage_details
      - app_trends
      - published_apps
      - personal_automated_reports
      - all_automated_reports
      - cost_saving_reports
      type: string
    UUID:
      type: string
      format: uuid
      description: 'Stringified UUIDv4.

        See [RFC 4112](https://tools.ietf.org/html/rfc4122)'
      pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$
    REMEDIATION_FLOW:
      enum:
      - manage_remediation_flow_mappings
      - view_remediation_flow_mappings
      type: string
    edge_unified_communications_and_collaboration:
      items:
        $ref: '#/components/schemas/EDGE_UNIFIED_COMMUNICATIONS_AND_COLLABORATION'
      type: array
      description: The "Unified Communications and Collaboration" permission category.
    SECURITY_RISK_MANAGEMENT:
      enum:
      - sdx_overview
      - sdx_devices_remediate
      - sdx_devices_scan
      - sdx_devices_view_devices_page
      - sdx_devices_view_drill_down_device_page
      - sdx_issues_remediate
      - sdx_issues_view_issues_page
      - sdx_issues_view_drill_down_issue_page
      - sdx_templates_view_page
      - sdx_templates_view_drill_down_page
      - sdx_templates_create
      - sdx_templates_edit
      - sdx_templates_delete
      - sdx_templates_disable
      - sdx_templates_scan_categories_misconfig
      - sdx_templates_scan_categories_compliance
      - sdx_templates_scan_categories_vulnerabilities
      - sdx_templates_scan_categories_patches
      - sdx_templates_remediation_categories_misconfig
      - sdx_templates_remediation_categories_compliance
      - sdx_templates_remediation_categories_vulnerabilities
      - sdx_templates_remediation_categories_patches
      - sdx_apps_remediate
      - sdx_apps_view_page
      - sdx_apps_view_drill_down_page
      - sdx_jobs_view_page
      - sdx_jobs_view_drill_down_page
      - sdx_users_view_page
      - sdx_users_view_drill_down_page
      - sdx_settings_manage_devices
      - sdx_settings_license_information
      - sdx_settings_manage_agent
      - sdx_settings_manage_custom_issues
      - sdx_settings_manage_identity_risk
      type: string
    BadRequestErrorMessages:
      enum:
      - Bad Request
      - Invalid Params
      - Unique Field Violation
      type: string
    ENRICH:
      enum:
      - manage_sites
      type: string
    PositiveInteger:
      type: integer
      format: int32
      minimum: 1
    ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized_'
      required:
      - error
      - metadata
      type: object
    ErrorMessage.InternalServerError:
      enum:
      - Internal Server Error
      type: string
    ErrorResponseMetadata:
      properties:
        cuRequestId:
          type: string
        orgId:
          type: string
        userId:
          type: string
        userIp:
          type: string
      required:
      - userIp
      - userId
      - orgId
      - cuRequestId
      type: object
    vdi_and_daas:
      items:
        $ref: '#/components/schemas/VDI_AND_DAAS'
      type: array
      description: The "VDI & DaaS" permission category.
    ErrorMessage.Forbidden:
      enum:
      - Forbidden
      type: string
    CUSTOM_DASHBOARDS:
      enum:
      - view_custom_dashboards
      - edit_custom_dashboards
      - edit_organizational_dashboards
      - view_dashboard_gallery
      type: string
    INCIDENTS:
      enum:
      - incidents_view_desktop_events
      - incidents_view_vdi_events
      - incidents_view_synthetic_events
      - incidents_edit_desktop_events
      - incidents_edit_vdi_events
      - incidents_edit_synthetic_events
      - incidents_view_desktop_alerts_configuration
      - incidents_edit_desktop_alerts_configuration
      type: string
    VDI_AND_DAAS:
      enum:
      - overview_utilization
      - details_utilization
      - access_rtdx_console
      type: string
    ErrorCode.Forbidden:
      enum:
      - 4
      type: number
    EDGE_ASSET_LIBRARY:
      enum:
      - pc_upload_edit_view_delete_from_asset_library
      type: string
    Permission:
      properties:
        id:
          type: string
          description: The name of the permission.
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          type: array
          description: The device targets for the permission. A permission applies to a device only if the device is within one of the permission scopes.
      required:
      - scopes
      - id
      type: object
    ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound_'
      required:
      - error
      - metadata
      type: object
    PaginatedResponseMetadata:
      properties:
        total:
          type: number
          format: double
          description: The total number of results across all pages.
        limitPerPage:
          type: number
          format: double
          description: The maximum number of results returned per page (set by the `_limit` parameter).
        currentPageNumber:
          type: number
          format: double
          description: The page of result returned (set by the `_page` parameter).
        currentPageSize:
          type: number
          format: double
          description: The number of results on the current page.
        remaining:
          type: number
          format: double
          description: The total number of results on all pages higher than the current page.
      required:
      - remaining
      - currentPageSize
      - currentPageNumber
      - limitPerPage
      - total
      type: object
      example:
        total: 18
        limitPerPage: 10
        currentPageNumber: 1
        currentPageSize: 10
        remaining: 8
    sb_monitoring:
      items:
        $ref: '#/components/schemas/SB_MONITORING'
      type: array
      description: The "Synthetic testing" permission category.
    enrich:
      items:
        $ref: '#/components/schemas/ENRICH'
      type: array
      description: The "Enrich" permission category.
    CHATBOT:
      enum:
      - access_chatbot
      type: string
    edge_asset_library:
      items:
        $ref: '#/components/schemas/EDGE_ASSET_LIBRARY'
      type: array
      description: The "Media Library" permission category.
    HttpStatusCode.NOT_FOUND:
      enum:
      - 404
      type: number
    EDGE_DEVICES:
      enum:
      - pc_run_a_command
      - pc_send_message
      - pc_power_actions
      - pc_terminate_a_process
      - pr_run_level_0_script
      - pr_run_level_1_script
      - pr_run_level_2_script
      - pr_run_level_3_script
      - pr_run_level_4_script
      - pr_run_level_5_script
      - pc_set_device_group
      - pc_set_device_tags
      - pc_configure_agent_settings
      - pc_delete_devices
      - pr_allow_remote_shell_connections
      - pr_disable_audit_of_admin_commands
      - pr_allow_remote_control_connections
      - pr_rc_file_transfer
      - pr_rc_elevated_cmd
      - pc_view_only
      - pc_allow_to_not_require_user_consent
      - pr_rc_invite_viewers
      - pr_allow_um_remote_control_connections
      - pr_allow_um_rc_file_transfer
      - pr_view_non_security_events
      - pr_view_security_events
      - pr_create_delete_and_change_alerts
      - pr_view_and_configure_servicenow_incidents
      - pr_view_scripts
      - pr_create_delete_and_change_scripts
      - pr_view_index_data
      - pr_read_indexes
      - pr_delete_indexes
      - pr_prune_data
      - pr_view_custom_reports
      - pr_create_edit_and_delete_custom_reports
      - pr_publish_reports
      - pr_create_edit_and_delete_filter_presets
      - pr_publish_filter_presets
      - pr_export_csv
      - pr_change_production_agent_versions
      - pr_configure_agent_intervals
      - pr_configure_agent_feature_settings
      - pr_configure_auto_deletion_of_old_devices
      - pr_change_custom_settings
      - pr_change_device_dashboards_settings
      - pr_configure_user_activity_collection
      - pr_enable_user-level_data_collection
      - pr_change_extended_settings
      - pr_configure_network_latency_targets
      - pr_configure_servicenow_connector
      - pr_configure_google_cloud_api_connector
      - pr_configure_sustainability_integration_settings
      - pr_license_assignment
      - pr_view_agent_download_page
      - pr_configure_remote_control
      - pr_configure_remote_control_settings
      - pc_view_reports_with_private_information
      - pc_view_user_activity_report_for_all_devices
      - pc_view_ssid_and_mac
      - pr_performance
      - pr_access_processes
      - pr_end_process
      - pr_view_network_traffic
      - pr_view_map
      - pr_storage
      - pr_view_user_files
      - pr_view_user_folders
      - pr_modify_user_files
      - pr_modify_user_folders
      - pr_create_user_files
      - pr_create_user_folders
      - pr_delete_user_files
      - pr_delete_user_folders
      - pr_download_user_files
      - pr_upload_user_files
      - pr_view_system_files
      - pr_view_system_folders
      - pr_modify_system_files
      - pr_modify_system_folders
      - pr_create_system_files
      - pr_create_system_fo

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/controlup/refs/heads/main/openapi/controlup-roles-api-openapi.yml