AppDynamics switched from Semantic Versioning to Calendar Versioning starting in February 2020 for some agents and March 2020 for the entire product suite.


    Skip to end of metadata
    Go to start of metadata

    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_typedisplayName, and password. The user ID is generated by the server.

    Format

    POST /controller/api/rbac/v1/users

    Input Parameters

    Parameter NameParameter TypeValueMandatory
    nameRequest 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 NameParameter TypeValueMandatory
    idRequest payload
    Yes
    nameRequest 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 NameParameter TypeValueMandatory
    nameRequest payload
    Yes
    descriptionRequest 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 NameParameter TypeValueMandatory
    idRequest payload
    Yes
    nameRequest payload
    Yes
    descriptionRequest 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 NameParameter TypeValueMandatory
    nameRequest 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 NameParameter TypeValueMandatory
    idRequest payload
    Yes
    nameRequest payload
    Yes
    descriptionRequest 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 :



    • No labels