Viridi Role Controller API

The role-controller API from Viridi — 9 operation(s) for role-controller.

Operations 11

GET /api/role Get Role Policy (getRolePolicy) #
POST /api/role Save Or update Role (saveRole) #
POST /api/role/{roleId}/user/{userId} Assign role to user (assignRoleToUser) #
POST /api/role/{roleId}/default Make Role Default (setDefaultRole) #
GET /api/roles Get Roles (getRoles) #
GET /api/role/{roleId} Get Role (getRoleById) #
DELETE /api/role/{roleId} Delete Role (deleteRole) #
GET /api/role/{roleId}/users Get Role Users (getRoleUsers) #
GET /api/role/{roleId}/assignable Get Assignable Role Users (getAssignableRoleUsers) #
GET /api/role/user/{userId} Get role for user (getRoleAssignedToUser) #
GET /api/role/menu Get Menu (getMenu) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/viridi-parente-role-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

viridi-parente-role-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThingsBoard REST Role Controller API
  description: ThingsBoard open-source IoT platform REST API documentation.
  contact:
    name: ThingsBoard team
    url: https://thingsboard.io
    email: info@thingsboard.io
  license:
    name: Apache License Version 2.0
    url: https://github.com/thingsboard/thingsboard/blob/master/LICENSE
  version: 3.7.0
servers:
- url: https://vista.viridiparente.com
  description: Generated server url
tags:
- name: role-controller
paths:
  /api/role:
    get:
      tags:
      - role-controller
      summary: Get Role Policy (getRolePolicy)
      description: Fetch the policy JSON from the Role object based on the current assigned role.
      operationId: getRolePolicy
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonNode'
    post:
      tags:
      - role-controller
      summary: Save Or update Role (saveRole)
      description: 'Create or update the Role. When creating user, platform generates Role Id as time-based UUID). The newly created Role Id will be present in the response. Specify existing Role Id to update the role. Referencing non-existing Role Id will cause ''Not Found'' error.Remove ''id'', ''tenantId'' from the request body example (below) to create new Role entity.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: saveRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
  /api/role/{roleId}/user/{userId}:
    post:
      tags:
      - role-controller
      summary: Assign role to user (assignRoleToUser)
      description: Creates assignment of the role to user.
      operationId: assignRoleToUser
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: userId
        in: path
        description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /api/role/{roleId}/default:
    post:
      tags:
      - role-controller
      summary: Make Role Default (setDefaultRole)
      description: 'Marks role default within a tenant scope.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: setDefaultRole
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /api/roles:
    get:
      tags:
      - role-controller
      summary: Get Roles (getRoles)
      description: 'Returns a page of roles owned by tenant.You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See the ''Model'' tab of the Response Class for more details.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: getRoles
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          enum:
          - createdTime, name, isDefault
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          enum:
          - ASC, DESC
      - name: textSearch
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataRole'
  /api/role/{roleId}:
    get:
      tags:
      - role-controller
      summary: Get Role (getRoleById)
      description: Fetch the Role object based on the provided Role Id. If the user has the authority of 'SYS_ADMIN', the server does not perform additional checks. If the user has the authority of 'TENANT_ADMIN', the server checks that the requested user is owned by the same tenant.
      operationId: getRoleById
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
    delete:
      tags:
      - role-controller
      summary: Delete Role (deleteRole)
      description: 'Deletes the Role and all the relations. Referencing non-existing Role Id will cause an error.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: deleteRole
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
  /api/role/{roleId}/users:
    get:
      tags:
      - role-controller
      summary: Get Role Users (getRoleUsers)
      description: 'Returns a page of users assigned to role.You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See the ''Model'' tab of the Response Class for more details.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: getRoleUsers
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: The case insensitive 'substring' filter based on the user email.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          enum:
          - createdTime, firstName, lastName, email
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          enum:
          - ASC, DESC
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataUser'
  /api/role/{roleId}/assignable:
    get:
      tags:
      - role-controller
      summary: Get Assignable Role Users (getAssignableRoleUsers)
      description: 'Returns a page of users assigned to role.You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See the ''Model'' tab of the Response Class for more details.


        Available for users with ''TENANT_ADMIN'' authority.'
      operationId: getAssignableRoleUsers
      parameters:
      - name: roleId
        in: path
        description: A string value representing the role id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: The case insensitive 'substring' filter based on the user email.
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          enum:
          - createdTime, firstName, lastName, email
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          enum:
          - ASC, DESC
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataUser'
  /api/role/user/{userId}:
    get:
      tags:
      - role-controller
      summary: Get role for user (getRoleAssignedToUser)
      description: Returns the role id assigned to a user.
      operationId: getRoleAssignedToUser
      parameters:
      - name: userId
        in: path
        description: A string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
  /api/role/menu:
    get:
      tags:
      - role-controller
      summary: Get Menu (getMenu)
      description: Returns a menu with allowed links by current role.
      operationId: getMenu
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonNode'
components:
  schemas:
    PageDataRole:
      properties:
        data:
          type: array
          description: Array of the entities
          items:
            $ref: '#/components/schemas/Role'
          readOnly: true
        totalPages:
          type: integer
          format: int32
          description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
          readOnly: true
        totalElements:
          type: integer
          format: int64
          description: Total number of elements in all available pages
          readOnly: true
        hasNext:
          type: boolean
          description: '''false'' value indicates the end of the result set'
          readOnly: true
    User:
      description: A JSON value representing the User.
      properties:
        id:
          $ref: '#/components/schemas/UserId'
          description: JSON object with the User Id. Specify this field to update the device. Referencing non-existing User Id will cause error. Omit this field to create new customer.
        createdTime:
          type: integer
          format: int64
          description: Timestamp of the user creation, in milliseconds
          example: 1609459200000
          readOnly: true
        tenantId:
          $ref: '#/components/schemas/TenantId'
          description: JSON object with the Tenant Id.
          readOnly: true
        customerId:
          $ref: '#/components/schemas/CustomerId'
          description: JSON object with the Customer Id.
          readOnly: true
        roleId:
          $ref: '#/components/schemas/RoleId'
        email:
          type: string
          description: Email of the user
          example: user@example.com
        authority:
          type: string
          description: Authority
          enum:
          - SYS_ADMIN
          - TENANT_ADMIN
          - CUSTOMER_USER
          - REFRESH_TOKEN
          - PRE_VERIFICATION_TOKEN
          example: SYS_ADMIN, TENANT_ADMIN or CUSTOMER_USER
        firstName:
          type: string
          description: First name of the user
          example: John
        lastName:
          type: string
          description: Last name of the user
          example: Doe
        phone:
          type: string
          description: Phone number of the user
          example: 38012345123
        name:
          type: string
          description: Duplicates the email of the user, readonly
          example: user@example.com
          readOnly: true
        additionalInfo:
          $ref: '#/components/schemas/JsonNode'
          description: Additional parameters of the user
      required:
      - authority
      - email
    RoleId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          enum:
          - TENANT
          - CUSTOMER
          - USER
          - DASHBOARD
          - ASSET
          - DEVICE
          - ALARM
          - RULE_CHAIN
          - RULE_NODE
          - ROLE
          - ENTITY_VIEW
          - WIDGETS_BUNDLE
          - WIDGET_TYPE
          - TENANT_PROFILE
          - DEVICE_PROFILE
          - ASSET_PROFILE
          - API_USAGE_STATE
          - TB_RESOURCE
          - OTA_PACKAGE
          - EDGE
          - RPC
          - QUEUE
          - NOTIFICATION_TARGET
          - NOTIFICATION_TEMPLATE
          - NOTIFICATION_REQUEST
          - NOTIFICATION
          - NOTIFICATION_RULE
          - QUEUE_STATS
          example: DEVICE
      required:
      - entityType
      - id
    UserId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - USER
          example: USER
      required:
      - entityType
      - id
    Role:
      description: A JSON value representing the Role.
      properties:
        id:
          $ref: '#/components/schemas/RoleId'
        createdTime:
          type: integer
          format: int64
        tenantId:
          $ref: '#/components/schemas/TenantId'
        name:
          type: string
        policy:
          $ref: '#/components/schemas/JsonNode'
        default:
          type: boolean
    PageDataUser:
      properties:
        data:
          type: array
          description: Array of the entities
          items:
            $ref: '#/components/schemas/User'
          readOnly: true
        totalPages:
          type: integer
          format: int32
          description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
          readOnly: true
        totalElements:
          type: integer
          format: int64
          description: Total number of elements in all available pages
          readOnly: true
        hasNext:
          type: boolean
          description: '''false'' value indicates the end of the result set'
          readOnly: true
    CustomerId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - CUSTOMER
          example: CUSTOMER
      required:
      - entityType
      - id
    TenantId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - TENANT
          example: TENANT
      required:
      - entityType
      - id
    JsonNode:
      description: A value representing the any type (object or primitive)
      examples:
      - {}
  securitySchemes:
    HTTP_login_form:
      type: http
      description: Enter Username / Password
      scheme: loginPassword
      bearerFormat: /api/auth/login|X-Authorization