On this page:
The Role Based Access Control (RBAC) REST API allows you to manage users, groups, and roles for AppDynamics features. These operations provide more flexibility and automation with RBAC management. Relationship settings such as addUserToGroup
and removeUserToGroup
are supported.
To use the RBAC REST API, you must be the account owner or have administer user permission.
Note that SAML and LDAP user creations are not supported. Also, you can only create permissions through the UI.
For information about the users and groups, see Manage Users and Groups.
Create User
You can create users in the current account. The request payload should specify name
, security_provider_type
, displayName
, and password
. The user ID is generated by the server.
Format
POST /controller/api/rbac/v1/users
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
name | Request payload | Yes | |
security_provider_type | Request payload | "INTERNAL" | Yes |
displayName | Request payload | Yes | |
password | Request payload | Yes |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X POST -d '{"name": "user10", "security_provider_type": "INTERNAL", "displayName": "user10", "password": "welcome"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users Response status code 200 : { "id": 10, "name": "user10", "displayName": "user10", "security_provider_type": "INTERNAL" }
Get User by ID
You can get full user information, including a summary of affiliated groups and roles, using the userId
in the current account.
Format
GET /controller/api/rbac/v1/users/userId
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/4 Response status code 200 : { "id": 4, "name": "user1", "email": "user1@customer1.com", "displayName": "user1", "security_provider_type": "INTERNAL", "roles": [ {"id": 17,"name": "Workflow Executor"}, {"id": 18,"name": "DB Monitoring Administrator"}, {"id": 19,"name": "DB Monitoring User"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 24,"name": "Universal Agent User"}, {"id": 13,"name": "Account Administrator"}, {"id": 14,"name": "Administrator"}, {"id": 15,"name": "User"}, {"id": 16,"name": "Dashboard Viewer"} ], "groups": [ {"id": 1,"name": "group_01"} ] }
Get User by Name
You can get full user information, including a summary of affiliated groups and roles, using the userName
in the current account.
Format
GET /controller/api/rbac/v1/users/name/name
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/name/user1 Response status code 200 : { "id": 4, "name": "user1", "email": "user1@customer1.com", "displayName": "user1", "security_provider_type": "INTERNAL", "roles": [ {"id": 17,"name": "Workflow Executor"}, {"id": 18,"name": "DB Monitoring Administrator"}, {"id": 19,"name": "DB Monitoring User"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 24,"name": "Universal Agent User"}, {"id": 13,"name": "Account Administrator"}, {"id": 14,"name": "Administrator"}, {"id": 15,"name": "User"}, {"id": 16,"name": "Dashboard Viewer"} ], "groups": [ {"id": 1,"name": "group_01"} ] }
Get All Users
You can get a list of all users in the current account. The list includes user summaries, which includes userId
and userName
.
Format
GET /controller/api/rbac/v1/users
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users Response status code 200 : { "users": [ {"id": 4,"name": "user1"}, {"id": 10,"name": "user10"} ] }
Update User
You can update a user by userId
in the current account. Only the user object itself is updated, with the relationship to roles and groups remaining unaffected.
Format
PUT /controller/api/rbac/v1/users/userId
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
id | Request payload | Yes | |
name | Request payload | Yes | |
displayName | Request payload | Yes | |
security_provider_type | Request payload | "INTERNAL" | Yes |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 11,"name": "updated_user9","displayName": "user9","security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/11 Response status code 200 : { "id": 11, "name": "updated_user9", "displayName": "user9", "security_provider_type": "INTERNAL" }
Delete User
You can delete a user by userId in the current account.
Format
DELETE /controller/api/rbac/v1/users/userId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/11 Response status code 200 :
Create Group
You can create a group in the current account. The group ID is generated by the server.
Format
POST /controller/api/rbac/v1/groups
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
name | Request payload | Yes | |
description | Request payload | No | |
security_provider_type | Request payload | "INTERNAL" | Yes |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X POST -d '{"name": "group100","description": "new description", "security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups Response status code 200 : { "id": 2, "name": "group100", "security_provider_type": "INTERNAL", "description": "new description" }
Get Group by ID
You can get full group information by groupId
in the current account.
Format
GET /controller/api/rbac/v1/groups/groupId
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1 Response status code 200 : { "id": 1, "name": "group_03", "security_provider_type": "INTERNAL" "description": "", "roles": [ {"id": 19,"name": "DB Monitoring User"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 13,"name": "Account Administrator"}, {"id": 16,"name": "Dashboard Viewer"} ] }
Get Group by Name
You can get full group information by groupName
in the current account.
Format
GET /controller/api/rbac/v1/groups/name/name
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/name/group_03 Response status code 200 : { "id": 1, "name": "group_03", "security_provider_type": "INTERNAL" "description": "", "roles": [ {"id": 19,"name": "DB Monitoring User"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 13,"name": "Account Administrator"}, {"id": 16,"name": "Dashboard Viewer"} ] }
Get All Groups
You can get all groups in the current account. This only returns group summaries, which includes groupId
and groupName
.
Format
GET /controller/api/rbac/v1/groups
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups Response status code 200 : { "groups": [ {"id": 1,"name": "group_03"}, {"id": 2,"name": "group100"} ] }
Update Group
You can update a group by groupId
in the current account. Only the group itself is updated, while the relationships with users and roles remain unaffected.
Format
PUT /controller/api/rbac/v1/groups/groupId
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
id | Request payload | Yes | |
name | Request payload | Yes | |
description | Request payload | No | |
security_provider_type | Request payload | "INTERNAL" | Yes |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 1, "name": "group2","description": "new description", "security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1 Response status code 200 : { "id": 1, "name": "group2", "security_provider_type": "INTERNAL", "description": "new description", "roles": [ {"id": 19,"name": "DB Monitoring User"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 13,"name": "Account Administrator"}, {"id": 16,"name": "Dashboard Viewer"} ] }
Delete Group
You can delete a group by groupId
in the current account.
Format
DELETE /controller/api/rbac/v1/groups/groupId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1 Response status code 200 :
Add User to Group
You can add a user to a group by userId
and groupId
.
Format
PUT /controller/api/rbac/v1/groups/groupId/users/userId
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/2/users/10 Response status code 200 :
Remove User from Group
You can remove a user from a group by userId
and groupId
.
Format
DELETE /controller/api/rbac/v1/groups/groupId/users/userId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/2/users/10 Response status code 200 :
Create Role
You can create a role in the current account. The ID is generated by the server.
Format
POST /controller/api/rbac/v1/roles
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
name | Request payload | Yes | |
description | Request payload | No |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X POST -d '{"name": "role2","description": "new description"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles Response status code 200 : { "id": 49, "name": "role2", "description": "new description" }
Add Role to User
You can add a role to a user by roleId
and userId
.
Format
PUT /controller/api/rbac/v1/roles/roleId/users/userId
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/users/10 Response status code 200 :
Remove Role from User
You can remove a role from a user by roleId
and userId
.
Format
DELETE /controller/api/rbac/v1/roles/roleId/users/userId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/users/10 Response status code 200 :
Add Role to Group
You can add a role to a group by roleId
and groupId
.
Format
PUT /controller/api/rbac/v1/roles/roleId/groups/groupId
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/groups/2 Response status code 200 :
Remove Role from Group
You can remove a role from a group by roleId
and groupId
.
Format
DELETE /controller/api/rbac/v1/roles/roleId/groups/groupId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/groups/2 Response status code 200 :
Get Role by ID
You can get full role information by roleId
in the current account. This only returns the role object.
Format
GET /controller/api/rbac/v1/roles/roleId
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/15 Response status code 200 : { "id": 15, "name": "User", "description": "Can view applications and dashboards but not modify their configuration" }
Get Role by Name
You can get full role information by roleName
in the current account.
Format
GET /controller/api/rbac/v1/roles/name/name
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/name/User Response status code 200 : { "id": 15,"name": "User", "description": "Can view applications and dashboards but not modify their configuration" }
Get All Roles
You can get all roles in the current account. This only returns role summaries, which includes roleId
and roleName
.
Format
GET /controller/api/rbac/v1/roles
Example
curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles Response status code 200 : { "roles": [ {"id": 13,"name": "Account Administrator"}, {"id": 14,"name": "Administrator"}, {"id": 20,"name": "Analytics Administrator"}, {"id": 16,"name": "Dashboard Viewer"}, {"id": 18,"name": "DB Monitoring Administrator"}, {"id": 19,"name": "DB Monitoring User"}, {"id": 21,"name": "Server Monitoring Administrator"}, {"id": 22,"name": "Server Monitoring User"}, {"id": 23,"name": "Universal Agent Administrator"}, {"id": 24,"name": "Universal Agent User"}, {"id": 15,"name": "User"}, {"id": 17,"name": "Workflow Executor"} ] }
Update Role
You can update a role by roleId
in the current account. This only updates the role object itself, while leaving the relationship with users and groups unaffected.
Format
PUT /controller/api/rbac/v1/roles/roleId
Input Parameters
Parameter Name | Parameter Type | Value | Mandatory |
---|---|---|---|
id | Request payload | Yes | |
name | Request payload | Yes | |
description | Request payload | No |
Example
curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 49, "name": "role1","description": "new description" }' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/49 Response status code 200 : { "id": 49, "name": "role1", "description": "new description" }
Delete Role
You can delete a role in the current account.
Format
DELETE /controller/api/rbac/v1/roles/roleId
Example
curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/49 Response status code 200 :