Package com.collabnet.ce.soap60.webservices.rbac

# Class RbacAppSoap

java.lang.Object
com.collabnet.ce.soap60.webservices.WebService
com.collabnet.ce.soap60.webservices.rbac.RbacAppSoap

All Implemented Interfaces:
  `IRbacAppSoap`

public class RbacAppSoap extends WebService implements IRbacAppSoap
SOAP APIs for Role Based Access Control (RBAC).

Change History
Version 18.2

- getIntegratedAppPermissions: New operation added to get list of integratedApp permissions for the user associated with specified projects.

Version 17.8

- removeIntegratedApplicationPermission: New operation added to remove an integrated application permission from role.

Version 8.0

- getRoleData: New operation added in 8.0 to get the requested Role data.
- listClusterForDefaultAccessPermissions: New operation added in 8.0.
- addIntegratedApplicationPermission:New operation added in 8.0.

Version 6.1

- createRole2: Removed and merged into createRole.
- getRoleMemberList2: Renamed to getProjectRoleMemberList.
- getRoleMemberListForProject: Removed, use getRoleMemberList instead.
- getRoleGroupUsers2: Removed and merged into getRoleGroupUsers.
- getMemberInfo: Removed, use getUserRoleList instead.
- addUser2: Renamed to addUserToProjectRole.
- removeUser2: Renamed to removeUserFromProjectRole.

Version 6.0.1

- getRoleMemberList2:New operation added in 6.0.1
- listGroupRolesByProjectGroup:New operation added in 6.0.1

Version 6.0

- createRole2: New operation added in 6.0
- addUser2: New operation added in 6.0
- removeUser2: New operation added in 6.0
- getInheritedRoleList: New operation added in 6.0
- getSiteWideRoleList: New operation added in 6.0
- createSiteWideRole: New operation added in 6.0
- getUserSiteWideRoleList: New operation added in 6.0
- createGlobalRole: New operation added in 6.0
- getGlobalRoleList: New operation added in 6.0
- getProjectsForAction:New operation added in 6.0
- grantRolesToMembers:New operation added in 6.0
- revokeRolesFromMembers:New operation added in 6.0
- getMemberInfo:New operation added in 6.0
- getRoleMemberListForProject:New operation added in 6.0
- setAutomaticallyGrantOnRequest:New operation added in 6.0
- getAutomaticallyGrantOnRequest:New operation added in 6.0
- getPendingRequestedRoles:New operation added in 6.0
- approveRoleRequest:New operation added in 6.0
- rejectRoleRequest:New operation added in 6.0
- requestRole:New operation added in 6.0
- getIntegratedAppPermissionsForProject:New operation added in 6.0
- setRoleData:New operation added in 6.0
- getGlobalRolesForAssignment:New operation added in 6.0

Version 5.4

- getRoleMemberList2: Added in 5.4 to return new `User2SoapList` objects.
- getRoleGroupUsers2: Added in 5.4 to return new `User2SoapList` objects.
- getProjectsByIntegratedAppPermission: Return a list of projects for a given integrated application permission.
- getIntegratedAppPermissionsForProject: Return a list of integrated application permissions in a project.

Version 5.2

- getUserRoleList: Modified in 5.2 to allow non project admins to call method on own self
- setRolePaths: New operation added in 5.2
- listRolePaths: New operation added in 5.2

Version 4.4

- addCluster2: Operation removed in 4.4. Use addCluster instead
- addCluster: Operation modified in 4.4 to remove parameter resourceName
- deleteRole: New operation added in 4.4
- removeCluster: New operation added in 4.4
- listClusters: New operation added in 4.4

Since:
  4.1-HOTFIX4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RbacAppSoap()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCluster(String sessionId, String roleId, String operationCluster, String folderId)`
  Adds an operation cluster to a role, expanding the permission set that the role grants access to.
  `void`
  `addGroup(String sessionId, String groupId, String roleId, String projectOrProjectGroupId)`
  Adds a user group to a role, within the Project/ProjectGroup scope.
  `void`
  `addIntegratedApplicationPermission(String sessionId, String roleId, String integratedAppName, String permission)`
  Adds an integrated application permission to a role, expanding the permission set that the role grants access to.
  `void`
  `addUser(String sessionId, String roleId, String username)`
  Adds a user to the role, giving them all of the permissions of that role
  `void`
  `addUserToProjectRole(String sessionId, String roleId, String username, String projectOrProjectGroupId)`
  Adds a user to the role in the given project context, giving them all of the permissions of that role in that project
  `void`
  `approveRoleRequest(String sessionId, String requestId, String projectId)`
  Approves a role request
  `RoleSoapDO`
  `createGlobalRole(String sessionId, String title, String description, boolean preventInheritance, boolean requestable)`
  Creates a global role.
  `RoleSoapDO`
  `createRole(String sessionId, String projectOrProjectGroupId, String title, String description, boolean preventInheritance, boolean requestable, boolean autoGrant)`
  Creates a role in a given project
  `RoleSoapDO`
  `createSiteWideRole(String sessionId, String title, String description, boolean preventInheritance)`
  Creates a site-wide role.
  `void`
  `deleteRole(String sessionId, String roleId)`
  Deletes a role.
  `boolean`
  `getAutomaticallyGrantOnRequest(String sessionId, String roleId, String projectId)`
  Gets the role's Automatically Grant On Request for the given project.
  `RoleSoapList`
  `getGlobalRoleList(String sessionId)`
  Returns a list of all the global roles available on the site.
  `RoleSoapList`
  `getGlobalRolesForAssignment(String sessionId, String projectOrProjectGroupId)`
  Returns a list of global roles available in the project or project group for user/user group assignment.
  `RoleSoapList`
  `getGroupRoleList(String sessionId, String groupId, String projectIdOrProjectGroupId)`
  Returns a list of roles the user group is associated with in a project or projectGroup.
  `RoleSoapList`
  `getInheritedRoleList(String sessionId, String projectId)`
  Gets a list of roles inherited from any of the parent projects.
  `IntegratedAppProjectPermissionSoapList`
  `getIntegratedAppPermissions(String sessionId, String[] projectIds, String baseUrl)`
  Returns list of integratedApp permissions for the user associated with specified projects
  `String[]`
  `getIntegratedAppPermissionsForProject(String sessionId, String projectId, String linkId)`
  Returns integratedApp permissions for the user associated with a project
  `RoleRequestSoapList`
  `getPendingRequestedRoles(String sessionId, String projectId)`
  Lists the pending requested roles for the given projectId
  `UserSoapList`
  `getProjectRoleMemberList(String sessionId, String roleId, String projectOrProjectGroupId)`
  Returns a list of users that are in a specified role in the given project or project group.
  `String[]`
  `getProjectsByIntegratedAppPermission(String sessionId, String perm, String integratedAppName)`
  Returns the list of projects by integratedApp permission.
  `ProjectSoapList`
  `getProjectsForAction(String sessionId, String operationString, String userName)`
  Gets the list of all projects in which the given user has given permission.
  `RoleSoapDO`
  `getRoleData(String sessionId, String roleId)`
  Get a role data.
  `UserGroupSoapList`
  `getRoleGroupList(String sessionId, String roleId)`
  Returns a list of user groups that belong to the specified role.
  `UserSoapList`
  `getRoleGroupUsers(String sessionId, String projectIdOrProjectGroupId, String roleId)`
  Returns a list of users who are part of a group and associated with the specified role.
  `RoleSoapList`
  `getRoleList(String sessionId, String projectOrProjectGroupId)`
  Gets a list of Roles in a project context.
  `UserSoapList`
  `getRoleMemberList(String sessionId, String roleId)`
  Returns a list of users that are assigned to the specified role.
  `RoleSoapList`
  `getSiteWideRoleList(String sessionId)`
  Returns a list of all the site-wide roles available on the site.
  `RoleSoapList`
  `getUserRoleList(String sessionId, String projectOrProjectGroupId, String username)`
  Returns a list of roles that a user is a member of in the specified project or project group.
  `RoleSoapList`
  `getUserSiteWideRoleList(String sessionId, String username)`
  Returns a list of roles that a user is a member of site wide role.
  `void`
  `grantRolesToMembers(String sessionId, UserRolesSoapDO[] userRolesSoapDOs, String projectId)`
  Grants roles to list of users in a given project and user is made as member of the project if not already.
  `RoleCluster2SoapList`
  `listClusterForDefaultAccessPermissions(String sessionId, String projectId)`
  Gets the list of operation cluster with default access permission.
  `RoleClusterSoapList`
  `listClusters(String sessionId, String roleId)`
  Gets the list of operation cluster assigned to a role.
  `RoleGroupSoapList`
  `listGroupRolesByProject(String sessionId, String projectId)`
  Returns a list of user groups and the roles it is associated with in a project.
  `RoleGroupSoapList`
  `listGroupRolesByProjectGroup(String sessionId, String projectGroupId)`
  Returns a list of user groups and the roles it is associated with in a project group.
  `SoapNamedValues`
  `listRolePaths(String sessionId, String roleId, String repositoryId)`
  Gets the list of paths for a role.
  `void`
  `rejectRoleRequest(String sessionId, String requestId, String projectId)`
  Rejects a role request
  `void`
  `removeCluster(String sessionId, String roleId, String operationCluster, String folderId)`
  Removes an operation cluster to a role, removing the permission set.
  `void`
  `removeGroup(String sessionId, String groupId, String roleId, String projectOrProjectGroupId)`
  Removes the user group for the role, within the Project/ProjectGroup scope
  `void`
  `removeIntegratedApplicationPermission(String sessionId, String roleId, String integratedAppName, String permission)`
  Removes an integrated application permission from the given role.
  `void`
  `removeUser(String sessionId, String roleId, String username)`
  Removes a user from a role The behavior of this API is as follows.
  `void`
  `removeUserFromProjectRole(String sessionId, String roleId, String username, String projectOrProjectGroupId)`
  Removes a user from a role in the given project Same as `removeUser` but also takes projectOrProjectGroupId as an additional parameter.
  `void`
  `requestRole(String sessionId, String roleId, String projectId)`
  Requests a role
  `void`
  `revokeRolesFromMembers(String sessionId, UserRolesSoapDO[] userRolesSoapDOs, String projectId)`
  Removes roles from users in the project
  `void`
  `setAutomaticallyGrantOnRequest(String sessionId, String roleId, String projectId, boolean autoGrant)`
  Sets the role's Automatically Grant On Request for the given project.
  `void`
  `setRoleData(String sessionId, RoleSoapDO roleData)`
  Saves a role object.
  `void`
  `setRolePaths(String sessionId, String roleId, String repositoryId, SoapNamedValues rolePaths)`
  Sets the list of paths for a role.

  ### Methods inherited from class com.collabnet.ce.soap60.webservices.WebService

  `assertNormalProject, assertProjectGroup, canGiveFullUserDetails, checkGeneralPermission, checkPermission, checkPermission, checkSiteWidePermission, createUserSessionKey, downloadFile, filterInvalidProjMembers, generateFolderName, getAccessControlService, getApplicationRegistryService, getAttachment, getAuthenticationService, getCategorization, getCoreService, getDiscussion, getDocMan, getDocumentRootFolder, getFileStorageService, getFolderKey, getFolderPath, getFolderPath, getFolderPath, getFrs, getIntegrationData, getItemPath, getItemPath, getLocale, getMonitoring, getNews, getNulledMinSoapDate, getObjectKey, getObjectPath, getOperation, getPages, getPlanning, getPluggableComponent, getProjectId, getProjectPath, getProjectPath, getRbac, getSearch, getStoredFileSize, getStoredFileText, getTagService, getTeam, getTemplate, getTracker, getUser, getUserData, getUsername, getUserService, getWiki, hasPermission, hasSiteWidePermission, isFolderResource, isProjectGroup, isProjectId, isStrEmpty, isSuperUser, isValidEmail, makeStoredFileDO, makeStoredFileDOs, requireProjectAdminPermission, setPartialOrFullUserData, setUserNameToResponse, storeFile, storeTextFile, validateChoice, validateChoice, validateIconFile, validateString, validateStringArray, validateStringWithTrim, validateTokenAndExactUsername, validateTokenAndExactUsername, validateWikiPageName, verifyLicense`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RbacAppSoap

    public RbacAppSoap()

- ## Method Details

  - ### createRole

    public RoleSoapDO createRole(String sessionId, String projectOrProjectGroupId, String title, String description, boolean preventInheritance, boolean requestable, boolean autoGrant) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Creates a role in a given project
    Specified by:
      `createRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `projectOrProjectGroupId` - The project /project group Id to create the role in
      `title` - The title of the role
      `description` - A description of the role
      `preventInheritance` - If the role's permission is prevented from applying to private subprojects.
      `requestable` - If the role is available upon request:Only applicable for Project Roles Not for Project Groups.
      `autoGrant` - If the role is granted automatically on request:Only applicable for Project Roles Not for Project Groups.
    Returns:
      The Role2SoapDO that was created
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the projectId is invalid or the created roleId is invalid.
      `ObjectAlreadyExistsFault` - If the role exists with the specified title in the project
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      4.1-HOTFIX4

  - ### createSiteWideRole

    public RoleSoapDO createSiteWideRole(String sessionId, String title, String description, boolean preventInheritance) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Creates a site-wide role. Users with site-admin permissions or users having rolecreate permissions for creating site-wide role will be able to create site-wide role.
    Specified by:
      `createSiteWideRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `title` - The title of the site-wide role
      `description` - A description of the role
      `preventInheritance` - If the role's permission is prevented from applying to private projects.
    Returns:
      The Role2SoapDO that was created
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the created roleId is invalid
      `ObjectAlreadyExistsFault` - If the role exists with the specified title in the project
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0

  - ### createGlobalRole

    public RoleSoapDO createGlobalRole(String sessionId, String title, String description, boolean preventInheritance, boolean requestable) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Creates a global role. Only Super-users or users having Role-Create permission can create global role.
    Specified by:
      `createGlobalRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `title` - The title of the global role
      `description` - The description of the global role
      `preventInheritance` - If the role's permission is prevented from applying to private projects.
      `requestable` - If the role is available upon request
    Returns:
      The Role2SoapDO that was created
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the created roleId is invalid
      `ObjectAlreadyExistsFault` - If the global role exists with the specified title
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0

  - ### setRoleData

    public void setRoleData(String sessionId, RoleSoapDO roleData) throws InvalidSessionFault, VersionMismatchFault, PermissionDeniedFault, IllegalArgumentFault, NoSuchObjectFault, SystemFault
    Saves a role object. Project Admins in the case of a project-level role and users having Role - Edit permissions through a site-wide role in the case of SiteWide/Global roles are allowed to save.
    Specified by:
      `setRoleData` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleData` - the role object to save
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `VersionMismatchFault` - The role version being edited is not the latest one
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `IllegalArgumentFault` - If one of the parameters is invalid
      `NoSuchObjectFault` - When the roleId is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### getRoleData

    public RoleSoapDO getRoleData(String sessionId, String roleId) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault, IllegalArgumentFault
    Get a role data.
    Specified by:
      `getRoleData` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The id of the role to be fetch
    Returns:
      The RoleSoapDO that was fetched
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the roleId is invalid
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - When the roleId is invalid
    Since:
      8.0

  - ### deleteRole

    public void deleteRole(String sessionId, String roleId) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Deletes a role.
    Specified by:
      `deleteRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The id of the role to be deleted
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the projectId is invalid
    Since:
      4.4

  - ### addCluster

    public void addCluster(String sessionId, String roleId, String operationCluster, String folderId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Adds an operation cluster to a role, expanding the permission set that the role grants access to.
    Specified by:
      `addCluster` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The role id to add the cluster to
      `operationCluster` - The cluster name to add to the role. See OperationClusterConstants.
      `folderId` - the folder id for the specified cluster. Pass in empty string to apply to all folders of the same type in the project. Note that passing in an empty folder id will not replace existing folder specific clusters.
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the cluster already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      4.4

  - ### addIntegratedApplicationPermission

    public void addIntegratedApplicationPermission(String sessionId, String roleId, String integratedAppName, String permission) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Adds an integrated application permission to a role, expanding the permission set that the role grants access to.
    Specified by:
      `addIntegratedApplicationPermission` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The role id to add the integrated application permission to
      `integratedAppName` - The integrated application name (e.g: 'Pebble Blog')
      `permission` - The integrated application permission name to add to the role. (e.g: 'Blog Reader' for Pebble Blog integrated application)
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the cluster already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      8.0

  - ### removeIntegratedApplicationPermission

    public void removeIntegratedApplicationPermission(String sessionId, String roleId, String integratedAppName, String permission) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Removes an integrated application permission from the given role.
    Specified by:
      `removeIntegratedApplicationPermission` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The role id from which the integrated application permission to be removed
      `integratedAppName` - The integrated application name (e.g: 'Pebble Blog')
      `permission` - The integrated application permission to be removed from the role. (e.g: 'Blog Reader' for Pebble Blog integrated application)
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the cluster already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      17.8

  - ### removeCluster

    public void removeCluster(String sessionId, String roleId, String operationCluster, String folderId) throws InvalidSessionFault, IllegalArgumentFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Removes an operation cluster to a role, removing the permission set.
    Specified by:
      `removeCluster` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The role id to remove the cluster to
      `operationCluster` - The cluster name to add to the role
      `folderId` - the folder id for the specified cluster. Pass in empty string to remove a cluster defined for all folders. Note that passing in an empty folder id will not remove existing folder specific clusters.
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
    Since:
      4.4

  - ### listClusters

    public RoleClusterSoapList listClusters(String sessionId, String roleId) throws InvalidSessionFault, IllegalArgumentFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Gets the list of operation cluster assigned to a role.
    Specified by:
      `listClusters` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - The ID of the role for which clusters will be listed
    Returns:
      list of clusters for a role
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
    Since:
      4.4

  - ### listClusterForDefaultAccessPermissions

    public RoleCluster2SoapList listClusterForDefaultAccessPermissions(String sessionId, String projectId) throws InvalidSessionFault, IllegalArgumentFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Gets the list of operation cluster with default access permission.
    Specified by:
      `listClusterForDefaultAccessPermissions` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `projectId` - The ID of the project for which clusters will be listed
    Returns:
      list of clusters for a project
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
      `NoSuchObjectFault` - When the roleId is invalid
      `SystemFault`
      `PermissionDeniedFault`
    Since:
      8.0

  - ### addUser

    public void addUser(String sessionId, String roleId, String username) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Adds a user to the role, giving them all of the permissions of that role
    Specified by:
      `addUser` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `roleId` - The role id to add the user to
      `username` - The username of the user to add to the role
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the user already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      4.1-HOTFIX4

  - ### grantRolesToMembers

    public void grantRolesToMembers(String sessionId, UserRolesSoapDO[] userRolesSoapDOs, String projectId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Grants roles to list of users in a given project and user is made as member of the project if not already.
    Specified by:
      `grantRolesToMembers` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `userRolesSoapDOs` - user to roles data container, simulation of map - key as user and lists of roles as values
      `projectId` - project to which users would be the members with the given roles.
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the user already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0

  - ### removeUser

    public void removeUser(String sessionId, String roleId, String username) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Removes a user from a role The behavior of this API is as follows. 1) Removing users is not supported for global role. When a global role's id is passed to this API it will throw a NoSuchObjectFault.
    Specified by:
      `removeUser` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `roleId` - The role id to add the user to
      `username` - The username of the user to add to the role
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      4.3-HOTFIX1

  - ### revokeRolesFromMembers

    public void revokeRolesFromMembers(String sessionId, UserRolesSoapDO[] userRolesSoapDOs, String projectId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Removes roles from users in the project
    Specified by:
      `revokeRolesFromMembers` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `userRolesSoapDOs` - user to roles data container, simulation of map - key as user and lists of roles to remove as values
      `projectId` - project in which roles would be removed from the users.
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0

  - ### addUserToProjectRole

    public void addUserToProjectRole(String sessionId, String roleId, String username, String projectOrProjectGroupId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Adds a user to the role in the given project context, giving them all of the permissions of that role in that project

    Same as `addUser` but also takes projectOrProjectGroupId as an additional parameter. If a Project Group's role is being assigned in a normal project (even if it is a member of this Project Group) or in another Project Group a SystemFault will be thrown. Because A Project Group's role can only be assigned within that Project Group and nowhere else.

    Also site-wide role are not supported. For site-wide role use addUser method.

    Specified by:
      `addUserToProjectRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `roleId` - The role id to add the user to
      `username` - The username of the user to add to the role
      `projectOrProjectGroupId` - projectId (or) Project group ID. The project/Project Group in which the role has to be added to the user. The permission check varies accordingly for Project- User with Edit Role permissions. ProjectGroup-ProjectGroup.Admin Permission
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `ObjectAlreadyExistsFault` - If the user already exists in the role
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0 (renamed from addUser2 in 6.1)
    See Also:
      - `addUser(String, String, String)`

  - ### removeUserFromProjectRole

    public void removeUserFromProjectRole(String sessionId, String roleId, String username, String projectOrProjectGroupId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Removes a user from a role in the given project Same as `removeUser` but also takes projectOrProjectGroupId as an additional parameter.
    Specified by:
      `removeUserFromProjectRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId
      `roleId` - The role id to add the user to
      `username` - The username of the user to add to the role
      `projectOrProjectGroupId` - projectId (or) Project group ID. The project/Project Group in which the role has to be removed from the user. The permission check varies accordingly: for Project - User with Edit Role permissions. for ProjectGroup - ProjectGroup.Admin Permission
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0 (renamed from removeUser2 in 6.1)
    See Also:
      - `removeUser(String, String, String)`

  - ### addGroup

    public void addGroup(String sessionId, String groupId, String roleId, String projectOrProjectGroupId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault
    Adds a user group to a role, within the Project/ProjectGroup scope.

    If a Project Group's role is being assigned in a normal project (even if it is a member of this Project Group) or in another Project Group a SystemFault will be thrown. Because A Project Group's role can only be assigned within that Project Group and nowhere else.

    Specified by:
      `addGroup` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId.
      `groupId` - the user group to be added.
      `roleId` - The role to which the user group is to be added.
      `projectOrProjectGroupId` - The project/projectgroup id to which the role belongs.
    Throws:
      `IllegalArgumentFault` - If one of the parameters is invalid.
      `InvalidSessionFault` - If the session is invalid.
      `PermissionDeniedFault` - If the user does not have permission to perform the operation.
      `SystemFault` - When an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid.
      `ObjectAlreadyExistsFault` - If the user group already exists in the role.
    Since:
      4.4-SP1

  - ### removeGroup

    public void removeGroup(String sessionId, String groupId, String roleId, String projectOrProjectGroupId) throws IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Removes the user group for the role, within the Project/ProjectGroup scope
    Specified by:
      `removeGroup` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User sessionId.
      `groupId` - the user group to be added.
      `roleId` - The role to which the user group is to be added.
      `projectOrProjectGroupId` - The project/projectgroup id to which the role belongs.
    Throws:
      `IllegalArgumentFault` - If one of the parameters is invalid.
      `InvalidSessionFault` - If the session is invalid.
      `NoSuchObjectFault` - When the roleId is invalid.
      `PermissionDeniedFault` - If the user does not have permission to perform the operation.
      `SystemFault` - When an unexpected system level error occurs.
    Since:
      4.4-SP1

  - ### getRoleList

    public RoleSoapList getRoleList(String sessionId, String projectOrProjectGroupId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, ObjectAlreadyExistsFault, IllegalArgumentFault
    Gets a list of Roles in a project context. This call required project admin permissions.
    Specified by:
      `getRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `projectOrProjectGroupId` - The Project/Project Group Id to list roles from
    Returns:
      The RoleSoapList describing all roles in the project
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the projectId is invalid
      `ObjectAlreadyExistsFault` - If the role exists with the specified title in the project
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      4.3

  - ### getInheritedRoleList

    public RoleSoapList getInheritedRoleList(String sessionId, String projectId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Gets a list of roles inherited from any of the parent projects. This call requires project admin permission.
    Specified by:
      `getInheritedRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `projectId` - The project Id to list the inherited roles from
    Returns:
      The Role2SoapList describing all inherited roles in the project
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the projectId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      6.0

  - ### getRoleMemberList

    public UserSoapList getRoleMemberList(String sessionId, String roleId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of users that are assigned to the specified role.

    The behavior of this API is as follows. 1) Retrieving users assigned to a global role is not supported. When a global role's id is passed to this API it will throw a IllegalArgumentFault 2) When invoked on a project role (i.e., a role created in a project) returns all the users assigned to this role in that project and any users assigned to this role in any of the sub projects of the project in which this role is created. 3) When invoked on a site-wide role returns all the users assigned to that site-wide role. 4) When invoked on a role created in a Project Group, returns all the users assigned to that role in the Project Group.

    Specified by:
      `getRoleMemberList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `roleId` - Role id.
    Returns:
      List of users in the specified role.
    Throws:
      `IllegalArgumentFault` - Role id is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation
      `NoSuchObjectFault` - when the specified role id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      4.3-SP1

  - ### getProjectRoleMemberList

    public UserSoapList getProjectRoleMemberList(String sessionId, String roleId, String projectOrProjectGroupId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of users that are in a specified role in the given project or project group. 1. Supports depreciated method getRoleMemberListForProject 2. Supports project roles assigned in the project where the role is created. 3. Supports inherited role assignments in any of its subprojects. 4. Assignments to roles created in Project Groups. 5. Global role assignments in projects and project groups.
    Specified by:
      `getProjectRoleMemberList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `roleId` - Role id.
      `projectOrProjectGroupId` - Project or Project Group Id
    Returns:
      List of users in the specified role in the given project or project group.
    Throws:
      `IllegalArgumentFault` - Role id is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation
      `NoSuchObjectFault` - when the specified role id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0.1 (renamed from getRoleMemberList2 in 6.1)

  - ### getUserRoleList

    public RoleSoapList getUserRoleList(String sessionId, String projectOrProjectGroupId, String username) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of roles that a user is a member of in the specified project or project group. In order to view the list of roles another user belongs to, the caller must be an admin of that project or project group.
    Specified by:
      `getUserRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectOrProjectGroupId` - Project or Project Group id.
      `username` - Name of the user.
    Returns:
      List of roles that a user is a member of.
    Throws:
      `IllegalArgumentFault` - Username is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation
      `NoSuchObjectFault` - when the specified project or project group id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      4.3-SP1

  - ### getUserSiteWideRoleList

    public RoleSoapList getUserSiteWideRoleList(String sessionId, String username) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of roles that a user is a member of site wide role. To view the site wide role members the uses must have admin permissions or role view permissions.
    Specified by:
      `getUserSiteWideRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `username` - Name of the user.
    Returns:
      List of site-wide roles that a user is a member of.
    Throws:
      `IllegalArgumentFault` - Username is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation
      `NoSuchObjectFault` - when the specified project id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### getSiteWideRoleList

    public RoleSoapList getSiteWideRoleList(String sessionId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault
    Returns a list of all the site-wide roles available on the site. The user must have site admin permission or site-wide role admin permission to list all the site-wide roles.
    Specified by:
      `getSiteWideRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
    Returns:
      List of site-wide roles available
    Throws:
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have the permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### getGlobalRoleList

    public RoleSoapList getGlobalRoleList(String sessionId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault
    Returns a list of all the global roles available on the site. The user must have site admin permission or site-wide role admin/view permission to list all the global roles.
    Specified by:
      `getGlobalRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
    Returns:
      List of global roles available
    Throws:
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have the permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### getGlobalRolesForAssignment

    public RoleSoapList getGlobalRolesForAssignment(String sessionId, String projectOrProjectGroupId) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of global roles available in the project or project group for user/user group assignment. The user must be an admin of that project or project group to get the list.
    Specified by:
      `getGlobalRolesForAssignment` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectOrProjectGroupId` - the project or project group from which to get the global roles list
    Returns:
      List of global roles available
    Throws:
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have the permission to perform the operation
      `NoSuchObjectFault` - when the specified project or project group id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### getGroupRoleList

    public RoleSoapList getGroupRoleList(String sessionId, String groupId, String projectIdOrProjectGroupId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Returns a list of roles the user group is associated with in a project or projectGroup.
    Specified by:
      `getGroupRoleList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `groupId` - User Group id.
      `projectIdOrProjectGroupId` - Project id or project group id.
    Returns:
      List of roles the user group is associated with.
    Throws:
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the specified project id or project group id is invalid.
      `IllegalArgumentFault` - If one of the parameters is invalid.
    Since:
      4.4-SP1

  - ### getRoleGroupList

    public UserGroupSoapList getRoleGroupList(String sessionId, String roleId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns a list of user groups that belong to the specified role.
    Specified by:
      `getRoleGroupList` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `roleId` - Role id.
    Returns:
      List of user groups associated with a role.
    Throws:
      `IllegalArgumentFault` - roleId is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the specified project id is invalid.
    Since:
      4.4-SP1

  - ### listGroupRolesByProject

    public RoleGroupSoapList listGroupRolesByProject(String sessionId, String projectId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns a list of user groups and the roles it is associated with in a project.
    Specified by:
      `listGroupRolesByProject` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectId` - Project id.
    Returns:
      list of user groups and the roles it is associated with
    Throws:
      `IllegalArgumentFault` - projectId is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the specified project id is invalid.
    Since:
      4.4-SP1

  - ### getRoleGroupUsers

    public UserSoapList getRoleGroupUsers(String sessionId, String projectIdOrProjectGroupId, String roleId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Returns a list of users who are part of a group and associated with the specified role.
    Specified by:
      `getRoleGroupUsers` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectIdOrProjectGroupId` - Project or Project Group's id.
      `roleId` - Role id.
    Returns:
      List of users in the specified role.
    Throws:
      `IllegalArgumentFault` - Role id is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation
      `NoSuchObjectFault` - when the specified role id is invalid
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      4.4-SP1

  - ### listRolePaths

    public SoapNamedValues listRolePaths(String sessionId, String roleId, String repositoryId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Gets the list of paths for a role.
    Specified by:
      `listRolePaths` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - the key of the role the role paths belongs to
      `repositoryId` - the repository id
    Returns:
      role path in soap named values format
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      5.2

  - ### setRolePaths

    public void setRolePaths(String sessionId, String roleId, String repositoryId, SoapNamedValues rolePaths) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Sets the list of paths for a role.
    Specified by:
      `setRolePaths` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - the key of the role the role paths belongs to
      `repositoryId` - the repository id
      `rolePaths` - list of role paths
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the roleId is invalid
      `IllegalArgumentFault` - If one of the parameters is invalid
    Since:
      5.2

  - ### getProjectsForAction

    public ProjectSoapList getProjectsForAction(String sessionId, String operationString, String userName) throws InvalidSessionFault, PermissionDeniedFault, IllegalArgumentFault, SystemFault, NoSuchObjectFault
    Gets the list of all projects in which the given user has given permission.
    Specified by:
      `getProjectsForAction` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `operationString` - Operation in format type.category.name, except for integrated application, which is in format PluggableLink.<id of the integrated app>.<permission name>.<permission name>.
      `userName` - the user who would have cluster permission in the returned project list
    Returns:
      List of projects
    Throws:
      `InvalidSessionFault` - when the session is invalid
      `PermissionDeniedFault` - when the user doesn't have permission to perform the operation
      `IllegalArgumentFault` - when the arguments are null or empty.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the userName doesn't exist.
    Since:
      6.0

  - ### requestRole

    public void requestRole(String sessionId, String roleId, String projectId) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, IllegalArgumentFault, SystemFault
    Requests a role
    Specified by:
      `requestRole` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - the role id
      `projectId` - project in which to make the request
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the roleId or projectId is invalid
      `IllegalArgumentFault` - incorrect parameters
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      6.0

  - ### setAutomaticallyGrantOnRequest

    public void setAutomaticallyGrantOnRequest(String sessionId, String roleId, String projectId, boolean autoGrant) throws InvalidSessionFault, SystemFault, PermissionDeniedFault, NoSuchObjectFault, IllegalArgumentFault
    Sets the role's Automatically Grant On Request for the given project.
    Specified by:
      `setAutomaticallyGrantOnRequest` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - the role id
      `projectId` - the project to which automatically grant property to be set
      `autoGrant` - true to set it available upon request
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the projectId is invalid
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - when the role is not available upon request
    Since:
      6.0

  - ### getAutomaticallyGrantOnRequest

    public boolean getAutomaticallyGrantOnRequest(String sessionId, String roleId, String projectId) throws InvalidSessionFault, SystemFault, PermissionDeniedFault, NoSuchObjectFault, IllegalArgumentFault
    Gets the role's Automatically Grant On Request for the given project.
    Specified by:
      `getAutomaticallyGrantOnRequest` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `roleId` - the role id
      `projectId` - the project to which automatically grant property to be set
    Returns:
      Auto grant flag of role
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the projectId is invalid
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - when there is a request for global role with Projects project id.
    Since:
      6.0

  - ### getPendingRequestedRoles

    public RoleRequestSoapList getPendingRequestedRoles(String sessionId, String projectId) throws InvalidSessionFault, IllegalArgumentFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
    Lists the pending requested roles for the given projectId
    Specified by:
      `getPendingRequestedRoles` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `projectId` - project in which the pending requested roles needs to be retrieved
    Returns:
      List of pending requested roles.
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When projectId is invalid
      `IllegalArgumentFault` - incorrect parameters
      `SystemFault` - unexpected error occurs
    Since:
      6.0

  - ### approveRoleRequest

    public void approveRoleRequest(String sessionId, String requestId, String projectId) throws InvalidSessionFault, IllegalArgumentFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Approves a role request
    Specified by:
      `approveRoleRequest` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `requestId` - Role request Id
      `projectId` - project in which the role request was raised
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the projectId is invalid
      `IllegalArgumentFault` - incorrect parameters
      `SystemFault` - unexpected error occurs
    Since:
      6.0

  - ### rejectRoleRequest

    public void rejectRoleRequest(String sessionId, String requestId, String projectId) throws InvalidSessionFault, IllegalArgumentFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Rejects a role request
    Specified by:
      `rejectRoleRequest` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session Id
      `requestId` - Role request Id
      `projectId` - project in which the role request was raised
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `NoSuchObjectFault` - When the projectId is invalid
      `IllegalArgumentFault` - incorrect parameters
      `SystemFault` - unexpected error occurs
    Since:
      6.0

  - ### listGroupRolesByProjectGroup

    public RoleGroupSoapList listGroupRolesByProjectGroup(String sessionId, String projectGroupId) throws IllegalArgumentFault, InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns a list of user groups and the roles it is associated with in a project group.
    Specified by:
      `listGroupRolesByProjectGroup` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectGroupId` - Project group id.
    Returns:
      list of user groups and the roles it is associated with
    Throws:
      `IllegalArgumentFault` - projectGroupId is not specified or invalid.
      `InvalidSessionFault` - if the session is invalid.
      `PermissionDeniedFault` - if the user does not have permission to perform the operation.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the specified project group id is invalid.
    Since:
      6.0.1

  - ### getProjectsByIntegratedAppPermission

    public String[] getProjectsByIntegratedAppPermission(String sessionId, String perm, String integratedAppName) throws InvalidSessionFault, SystemFault, NoSuchObjectFault, IllegalArgumentFault
    Returns the list of projects by integratedApp permission.
    Specified by:
      `getProjectsByIntegratedAppPermission` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session key.
      `perm` - permission criteria
      `integratedAppName` - the IntegratedApp plugName.
    Returns:
      string array of id of projects in which the current user has given permission to given integrated app.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - When the plugName is invalid
      `IllegalArgumentFault` - When the userId is invalid
    Since:
      5.4

  - ### getIntegratedAppPermissionsForProject

    public String[] getIntegratedAppPermissionsForProject(String sessionId, String projectId, String linkId) throws InvalidSessionFault, NoSuchObjectFault
    Returns integratedApp permissions for the user associated with a project
    Specified by:
      `getIntegratedAppPermissionsForProject` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session key.
      `projectId` - the projectId
      `linkId` - the linkId between integrated app and project
    Returns:
      String array of permissions for given integrated application
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault`
    Since:
      5.4

  - ### getIntegratedAppPermissions

    public IntegratedAppProjectPermissionSoapList getIntegratedAppPermissions(String sessionId, String[] projectIds, String baseUrl) throws IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, SystemFault
    Returns list of integratedApp permissions for the user associated with specified projects
    Specified by:
      `getIntegratedAppPermissions` in interface `IRbacAppSoap`
    Parameters:
      `sessionId` - User session key.
      `projectIds` - the projectIds
      `baseUrl` - the base url of the integrated application
    Returns:
      List of integrated application permission on the specified projects for current user
    Throws:
      `IllegalArgumentFault` - when baseUrl is null or empty
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified baseUrl is invalid
      `SystemFault` - when an unexpected system error occurs
    Since:
      18.2