Package com.collabnet.ce.soap60.webservices.cemain

# Interface ICollabNetSoap

All Known Implementing Classes:
  `CollabNetSoap`, `CollabNetSoapMockStub`, `CollabNetSoapStub`

public interface ICollabNetSoap

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addProjectGroupAdmins(String sessionId, String projectGroupId, String[] usernames)`
  Makes the users given in the usernames parameter as administrators of the Project Group
  `void`
  `addProjectGroupMember(String sessionId, String projectGroupId, String userName)`
  Makes a user a member of a project group.
  `void`
  `addProjectMember(String sessionId, String projectId, String userName)`
  Makes a user a member of a project.
  `void`
  `addProjectsToProjectGroup(String sessionId, String projectGroupId, String[] projectIds)`
  Adds the given projects to a project group.
  `void`
  `addUserGroupMember(String sessionId, String userGroupId, String userName)`
  Adds a user to a user group.
  `boolean`
  `canReceiveOwnUpdates(String sessionId)`
  Returns whether the current user receives notifications for the user's own updates.
  `void`
  `changeIAObjectTitle(String sessionId, String pluggableObjectId, String pluggableObjectTitle)`
  Updates the title for Pluggable objects only.
  `boolean`
  `changePassword(String sessionId, String userName, String newPassword)`
  Allows the user to change the password
  `void`
  `createAssociation(String sessionId, String originId, String targetId, String description)`
  Creates an association between two objects.
  `void`
  `createAssociationWithTitles(String sessionId, String originId, String originTitle, String targetId, String targetTitle, String description)`
  Creates an association between two objects with specified title.
  `ProjectSoapDO`
  `createOrReplaceProjectTemplate(String sessionId, String projectId, String title, String description, String[] contentChoices, String templateId)`
  Creates or replaces a template from an existing project
  `ProjectSoapDO`
  `createProject(String sessionId, String name, String title, String description)`
  Creates a project.
  `ProjectSoapDO`
  `createProjectFromTemplate(String sessionId, String templateId, String name, String title, String description)`
  Creates a project from template.
  `ProjectGroupSoapDO`
  `createProjectGroup(String sessionId, String title, String description)`
  Creates a Project Group.
  `String`
  `createProjectLinkedApp(String sessionId, String projectId, String title, String applicationUrl, String iconKey, String iconFileName, String iconMimeType, boolean singleSignon)`
  Creates linked application in a given project and return the created application Id
  `String`
  `createProjectLinkedApp2(String sessionId, String projectId, String title, String applicationUrl, String iconKey, String iconFileName, String iconMimeType, boolean singleSignon, String toolId)`
  Creates linked application in a given project and return the created application Id
  `String`
  `createSiteWideLinkedApp(String sessionId, String title, String applicationUrl, String applicationType, boolean singleSignon)`
  Create a site-wide linked application and return the created application Id
  `UserSoapDO`
  `createUser(String sessionId, String userName, String email, String fullName, String organization, String locale, String timeZone, String licenseType, boolean isSuperUser, boolean isRestrictedUser, String password)`
  Creates a new user with the specified parameters.
  `UserGroupSoapDO`
  `createUserGroup(String sessionId, String fullName, String description)`
  Creates a new user group with the specified parameters.
  `void`
  `deleteAssociation(String sessionId, String originId, String targetId)`
  Deletes an association between two objects
  `void`
  `deleteAttachment(String sessionId, String objectId, String attachmentId)`
  Deletes the specified attachment of the specified object.
  `void`
  `deleteLinkedApp(String sessionId, String linkedAppId)`
  Delete the linked application.
  `void`
  `deleteProject(String sessionId, String projectId, boolean noNotification, boolean forceDeleteEvenIfChildFound)`
  Deletes a project.
  `void`
  `deleteProjectGroup(String sessionId, String projectGroupId, boolean forceDeleteEvenIfMemberProjectFound)`
  Deletes a project group.
  `void`
  `deleteUserGroup(String sessionId, String groupId)`
  Deletes a user group.
  `String`
  `doMandatoryPasswordChange(String userName, String oldPassword, String newPassword)`
  Allows user to change the password if and only if the password was set by an administrator.
  `ProjectSoapList`
  `findProjects(String sessionId, String queryString)`
  Finds a list of projects matching a search string.
  `UserSoapList`
  `findUsers(String sessionId, String queryString)`
  Finds a list of users matching a search string.
  `String`
  `getApiVersion()`
  Gets TeamForge API version.
  `AssociationSoapList`
  `getAssociationList(String sessionId, String objectId)`
  Lists all of the associations for a given object.
  `AuditHistorySoapList`
  `getAuditHistoryList(String sessionId, String objectId, boolean includeDerivedChanges)`
  Returns the list of changes made to the specified object in reverse chronological order.
  `String`
  `getBroadCastMessage(String sessionId)`
  Gets broadcast message
  `CommentSoapList`
  `getCommentList(String sessionId, String objectId)`
  Gets list of comments for object.
  `String`
  `getConfigurationValue(String sessionId, String keyValue)`
  Gets Configuration value for the passed key.
  `long`
  `getCurrentTime(String sessionId)`
  Returns the current server time in milliseconds.
  `UserSoapDO`
  `getCurrentUserData(String sessionId)`
  Gets the user details for a given user session id.
  `String`
  `getJSessionBySoapId(String soapId)`
  Deprecated.
  instead use `getJSessionId`
  `String`
  `getJSessionId(String oneTimeToken)`
  Returns current user Jsession Id using one time token id
  `LinkedApplicationSoapDO`
  `getLinkedApplicationData(String sessionId, String linkedAppId)`
  Gets Linked Application Data by Linked Application Id
  `LinkedApplication2SoapDO`
  `getLinkedApplicationData2(String sessionId, String linkedAppId)`
  Gets Linked Application Data by Linked Application Id
  `ProjectSoapList`
  `getMemberProjectsForProjectGroup(String sessionId, String projectGroupId)`
  Gets the Project List for project group.
  `String`
  `getOneTimeToken(String sessionId)`
  Gives one time token for active sessionId.
  `int`
  `getProjectAccessLevel(String sessionId, String projectId)`
  Gets the project's access level.
  `ProjectSoapDO`
  `getProjectByPath(String sessionId, String projectPath)`
  Gets the project data for a given project path.
  `ProjectSoapDO`
  `getProjectData(String sessionId, String projectId)`
  Gets a project object which includes the parent project ID, project hierarchy path and locked status flag.
  `long`
  `getProjectDiskUsage(String sessionId, String projectId)`
  Gets the filestorage disk utilization of a project specified by a project id
  `ProjectGroupSoapDO`
  `getProjectGroupData(String sessionId, String projectGroupId)`
  Gets the Project Group Data by project group id.
  `ProjectGroupMemberSoapList`
  `getProjectGroupMemberList(String sessionId, String projectGroupId)`
  Returns project group membership list.
  `ProjectGroupSoapList`
  `getProjectGroupsForProject(String sessionId, String projectId)`
  Deprecated.
  in favour of getProjectGroupsForProject1
  `ProjectGroupSoapList`
  `getProjectGroupsForProject1(String sessionId, String projectId)`
  Gets ProjectGroupList by project and user should have view permission
  `SoapNamedValues`
  `getProjectHierarchyPaths(String sessionId, String[] projectIds)`
  Returns the hierarchy path of the given projects.
  `ProjectSoapList`
  `getProjectList(String sessionId, boolean fetchHierarchyPath)`
  Returns a list of all projects visible to the user.
  `ProjectSoapList`
  `getProjectListForUser(String sessionId, String username, boolean fetchHierarchyPath, boolean includeGroupMembership)`
  Returns a list of projects
  `ProjectMemberSoapList`
  `getProjectMemberList(String sessionId, String projectId)`
  Returns project membership list.
  `long`
  `getProjectQuota(String sessionId, String projectId)`
  Gets the disk quota for a project.
  `String`
  `getSessionId(String oneTimeToken)`
  Returns current user session Id using one time token id
  `ProjectSoapList`
  `getSubprojectList(String sessionId, String projectId, boolean fetchHierarchyPath)`
  Returns a list of the immediate sub projects of a project.
  `UserSoapDO`
  `getUserByEmail(String sessionId, String email)`
  Returns the user information for the given email address.
  `UserSoapDO`
  `getUserByName(String sessionId, String fullname)`
  Returns the user information for the given full name.
  `UserSoapDO`
  `getUserData(String sessionId, String username)`
  Gets the user details for the given username.
  `User2SoapDO`
  `getUserData2(String sessionId, String username)`
  Gets the user details for the given username.
  `String`
  `getUserEffectiveMode(String sessionId)`
  Gets effective mode (ALM or SCM) for the current user
  `UserGroupSoapDO`
  `getUserGroupData(String sessionId, String groupId)`
  Returns the user group information.
  `UserGroupSoapList`
  `getUserGroupList(String sessionId)`
  Gets a list of all user groups on the system.
  `UserGroupSoapList`
  `getUserGroupListForProject(String sessionId, String projectOrProjectGroupId)`
  Returns a list of user groups that have a role in the project.
  `UserGroupSoapList`
  `getUserGroupListForUser(String sessionId, String username)`
  Gets a list of all user groups the user belongs.
  `UserSoapList`
  `getUserGroupMembers(String sessionId, String groupId)`
  Gets a list of active users who are members of a user group
  `UserSoapList`
  `getUserList(String sessionId, SoapFilter soapFilter)`
  Deprecated.
  use getUserList2 instead
  `User2SoapList`
  `getUserList2(String sessionId, SoapFilter soapFilter)`
  Gets a list of all users on the system.
  `String`
  `getUserSessionBySoapId(String soapId)`
  gets the access token using soap Id.
  `String`
  `getVersion(String sessionId)`
  Gets TeamForge version.
  `VersionInformationSoapList`
  `getVersionInformationList(String sessionId, String folderId)`
  Obtains a list of versions and last modified dates for the objects residing in the specified folder.
  `String`
  `getWebAndSoapSessionId(String oneTimeToken)`
  Gets the web and soap session id's separated by &
  `boolean`
  `hasGeneralPermission(String sessionId, String username, String projectId, String operationString, String objectId)`
  Checks if the user has general permission for the resource (specified by objectid).
  `boolean`
  `hasPermission(String sessionId, String username, String projectId, String operationString, String objectId)`
  Checks whether the given user has permission for an operation on a specified object
  `boolean`
  `hasPermission2(String sessionId, String projectId, String operationString, String objectId)`
  Checks whether the current user has permission for an operation on a specified object
  `boolean`
  `hasSitewideRolePermission(String sessionId, String operationString)`
  Checks if the current user has the given site wide permission to perform the operation.
  `boolean`
  `isHostedMode(String sessionId)`
  Verifies if the TeamForge appserver is running in Hosted Mode.
  `boolean`
  `isSoapRedirectPostOnlyMode(String sessionId)`
  Verifies if TeamForge is running in SoapRedirect Post-Only mode.
  `void`
  `keepAlive(String sessionId)`
  Deprecated.
  This operation is no longer supported.
  `AttachmentSoapList`
  `listAttachments(String sessionId, String objectId)`
  Lists the attachments associated with the object, the attachment itself is not part of the returned object.
  `UserGroupSoapList`
  `listGroupsWithGeneralPermission(String sessionId, String projectId, String operationString, String folderId, boolean includeInherited)`
  Returns a list of user groups which have some permission to perform the given operation in the given folder (Doesn't check default access permission nor site admins)
  `UserSoapList`
  `listProjectAdmins(String sessionId, String projectId)`
  Returns project administrators list.
  `ProjectGroupSoapList`
  `listProjectGroups(String sessionId)`
  Returns a list of all projects groups.
  `LinkedApplicationSoapList`
  `listProjectLinkedApps(String sessionId, String projectId)`
  Lists project-level linked applications for a given project.
  `LinkedApplication2SoapList`
  `listProjectLinkedApps2(String sessionId, String projectId)`
  Lists project-level linked applications for a given project.
  `LinkedApplicationSoapList`
  `listSiteWideLinkedApps(String sessionId)`
  Lists site-wide linked applications.
  `ProjectSoapList`
  `listTemplates(String sessionId)`
  Lists project templates within the installation.
  `UserSoapList`
  `listUsersWithGeneralPermission(String sessionId, String projectId, String operationString, String folderId)`
  Returns a list of users who have some permission to perform the given operation
  `UserSoapList`
  `listUsersWithPermissionOnObject(String sessionId, String operationString, String objectId, int flag)`
  Returns the list of users who have the given permission on the given object.
  `ProjectSoapDO`
  `lockProject(String sessionId, String projectId)`
  Locks project.
  `String`
  `login(String userName, String password)`
  Logs in a user and creates a new session.
  `String`
  `loginAnonymous(String anonSharedSecret)`
  This method allows to login as anonymous to get TF default access.
  `String`
  `loginWithToken(String username, String oneTimeToken)`
  Logs in a user and creates a new session.
  `void`
  `logoff(String userName, String sessionId)`
  Ends a user's session, but the token can still be used until it expires.
  `void`
  `reindexObject(String sessionId, String objectId)`
  Re-indexes the contents of the specified project, folder, item or user.
  `void`
  `removeProjectGroupAdmins(String sessionId, String projectGroupId, String[] usernames)`
  Removes the users given in the usernames parameter from the administrator role of the Project Group
  `void`
  `removeProjectGroupMember(String sessionId, String projectGroupId, String userName)`
  Removes a user from a project group.
  `void`
  `removeProjectMember(String sessionId, String projectId, String userName)`
  Removes a user from a project.
  `void`
  `removeProjectsFromProjectGroup(String sessionId, String[] projectMemberIds, String projectGroupId)`
  Removes projects from project group
  `void`
  `removeUserGroupMember(String sessionId, String userGroupId, String userName)`
  Removes a user from a user group.
  `void`
  `setLinkedApplicationData(String sessionId, LinkedApplicationSoapDO linkedApplicationSoapDO, String iconKey, String iconFileName, String iconMimeType)`
  Sets the linked application.
  `void`
  `setLinkedApplicationData2(String sessionId, LinkedApplication2SoapDO linkedApplication2SoapDO, String iconKey, String iconFileName, String iconMimeType)`
  Sets the linked application.
  `void`
  `setParentProject(String sessionId, String projectId, String parentProjectId)`
  Sets the parent of a project.
  `void`
  `setProjectAccessLevel(String sessionId, String projectId, int accessLevel)`
  Sets the project access level.
  `void`
  `setProjectGroupData(String sessionId, ProjectGroupSoapDO projectGroupData)`
  Sets the project group's data with the data represented in the projectGroupData parameter.
  `void`
  `setProjectQuota(String sessionId, String projectId, long quota)`
  Sets the disk quota for a project.
  `void`
  `setUserData(String sessionId, UserSoapDO userData)`
  Sets the user information.
  `void`
  `setUserData2(String sessionId, User2SoapDO userData)`
  Sets the user information.
  `void`
  `setUserGroupData(String sessionId, UserGroupSoapDO groupData)`
  Sets the user group information.
  `ProjectSoapDO`
  `unLockProject(String sessionId, String projectId)`
  Un-Locks project.

- ## Method Details

  - ### getVersion

    String getVersion(String sessionId) throws RemoteException
    Gets TeamForge version.
    Parameters:
      `sessionId` - the session id.
    Returns:
      Version as string.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `RemoteException`
    Since:
      4.1

  - ### getApiVersion

    String getApiVersion() throws RemoteException
    Gets TeamForge API version.
    Returns:
      API version as string.
    Throws:
      `RemoteException`
    Since:
      4.1-HOTFIX2

  - ### keepAlive

    @Deprecated void keepAlive(String sessionId) throws RemoteException
    Deprecated.
    This operation is no longer supported. Acquire new access token by logging in again.
    This operation is no longer supported. If token is timed out, acquire new access token by logging in again.
    Parameters:
      `sessionId` - the session id.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `RemoteException`
    Since:
      4.1

  - ### loginAnonymous

    String loginAnonymous(String anonSharedSecret) throws RemoteException
    This method allows to login as anonymous to get TF default access.
    Parameters:
      `anonSharedSecret` - Shared secret for anonymous login.
    Returns:
      Access token.
    Throws:
      `LoginFault` - when the login information is incorrect.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4

  - ### login

    String login(String userName, String password) throws RemoteException
    Logs in a user and creates a new session.
    Parameters:
      `userName` - Name of the user.
      `password` - User password.
    Returns:
      Access token.
    Throws:
      `LoginFault` - when the login information is incorrect.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.1

  - ### loginWithToken

    String loginWithToken(String username, String oneTimeToken) throws RemoteException
    Logs in a user and creates a new session.
    Parameters:
      `username` - Name of the user.
      `oneTimeToken` - a one time token for login.
    Returns:
      Access token.
    Throws:
      `LoginFault` - when the login information is incorrect.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.2

  - ### logoff

    void logoff(String userName, String sessionId) throws RemoteException
    Ends a user's session, but the token can still be used until it expires.
    Parameters:
      `userName` - User's name.
      `sessionId` - Session id.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.1

  - ### doMandatoryPasswordChange

    String doMandatoryPasswordChange(String userName, String oldPassword, String newPassword) throws RemoteException
    Allows user to change the password if and only if the password was set by an administrator.
    Parameters:
      `userName` - login name
      `oldPassword` - current password
      `newPassword` - new password
    Returns:
      User session key.
    Throws:
      `LoginFault` - when the login information is incorrect.
      `InvalidOperationFault` - if the user has already changed the password
      `SystemFault` - when an unexpected system error occurs.
      `InvalidSessionFault` - If there is a session fault.
      `InvalidPasswordFault` - If the new password is not valid.
      `PermissionDeniedFault` - If user does not have permissions to change password
      `IllegalArgumentFault` - If invalid user name is passed
      `RemoteException`
    Since:
      6.0

  - ### changePassword

    boolean changePassword(String sessionId, String userName, String newPassword) throws RemoteException
    Allows the user to change the password
    Parameters:
      `sessionId` - User session key
      `userName` - login name
      `newPassword` - new password
    Returns:
      true if the password has been successfully changed
    Throws:
      `SystemFault` - when an unexpected system error occurs.
      `InvalidSessionFault` - If there is a session fault.
      `InvalidPasswordFault` - If the new password is not valid.
      `PermissionDeniedFault` - If user does not have permissions to change password
      `IllegalArgumentFault` - If invalid user name is passed
      `RemoteException`
    Since:
      6.0

  - ### listGroupsWithGeneralPermission

    UserGroupSoapList listGroupsWithGeneralPermission(String sessionId, String projectId, String operationString, String folderId, boolean includeInherited) throws RemoteException
    Returns a list of user groups which have some permission to perform the given operation in the given folder (Doesn't check default access permission nor site admins)
    Parameters:
      `sessionId` - The current user session id
      `projectId` - Project for which permission is checked
      `operationString` - The string representation of the operation.
      `folderId` - Id of the folder for which permission needs to be checked.
      `includeInherited` - true includes groups inherited from parent projects, false otherwise
    Returns:
      a list of user groups which has the permission on a given folder
    Throws:
      `InvalidSessionFault` - When Session is invalid
      `NoSuchObjectFault` - When the folderId does not exist
      `IllegalArgumentFault` - If the operationString is in an invalid format
      `SystemFault` - Any other exceptions
      `PermissionDeniedFault` - If user does not have project view permission
      `RemoteException`
    Since:
      6.0

  - ### hasPermission

    boolean hasPermission(String sessionId, String username, String projectId, String operationString, String objectId) throws RemoteException
    Checks whether the given user has permission for an operation on a specified object
    Parameters:
      `sessionId` - the current user session id
      `username` - the name of the user to check permission
      `projectId` - the project in which the operation is defined
      `operationString` - The string representation of the operation.
      `objectId` - the object for which we are doing the permission check.
    Returns:
      whether the given user has permission for an operation on a specified object
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - The specified projectId or folderId was invalid
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - If the operationString is in an invalid format
      `RemoteException`
    Since:
      6.1
    See Also:
      - `OperationConstants`

  - ### hasPermission2

    boolean hasPermission2(String sessionId, String projectId, String operationString, String objectId) throws RemoteException
    Checks whether the current user has permission for an operation on a specified object
    Parameters:
      `sessionId` - the current user session id
      `projectId` - the project in which the operation is defined
      `operationString` - The string representation of the operation.
      `objectId` - the object for which we are doing the permission check.
    Returns:
      whether the current user has permission for an operation on a specified object
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - The specified projectId or folderId was invalid
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - If the operationString is in an invalid format
      `RemoteException`
    Since:
      6.2
    See Also:
      - `OperationConstants`

  - ### getProjectList

    ProjectSoapList getProjectList(String sessionId, boolean fetchHierarchyPath) throws RemoteException
    Returns a list of all projects visible to the user.
    Parameters:
      `sessionId` - User session key.
      `fetchHierarchyPath` - flag indicating whether to fetch the hierarchy path for each project
    Returns:
      List of projects
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `RemoteException`
    Since:
      4.1

  - ### getProjectListForUser

    ProjectSoapList getProjectListForUser(String sessionId, String username, boolean fetchHierarchyPath, boolean includeGroupMembership) throws RemoteException
    Returns a list of projects
    Parameters:
      `sessionId` - User session key.
      `username` - User name.
      `fetchHierarchyPath` - flag indicating whether to fetch the hierarchy path for each project
      `includeGroupMembership` - flag indicating whether to return projects which are accessible by group membership
    Returns:
      List of user projects.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `RemoteException`
    Since:
      4.4-SP1

  - ### getSubprojectList

    ProjectSoapList getSubprojectList(String sessionId, String projectId, boolean fetchHierarchyPath) throws RemoteException
    Returns a list of the immediate sub projects of a project.
    Parameters:
      `sessionId` - User session key.
      `projectId` - Project id (not a project group id).
      `fetchHierarchyPath` - flag indicating whether to fetch the hierarchy path for each project
    Returns:
      List of sub projects.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `NoSuchObjectFault` - when the project passed as parameter does not exist or if the project id is in fact a project group id.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `RemoteException`
    Since:
      6.0

  - ### createProject

    ProjectSoapDO createProject(String sessionId, String name, String title, String description) throws RemoteException
    Creates a project.
    Parameters:
      `sessionId` - User session key.
      `name` - The name of the project (can be null, will fall back to title or id)
      `title` - The title of the project
      `description` - The description of the project
    Returns:
      The project data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `ObjectAlreadyExistsFault` - when the project with that name already exists.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalArgumentFault` - when specified argument is invalid.
      `IllegalArgumentException` - Invalid data was passed in
      `RemoteException`
    Since:
      4.2-SP1

  - ### createOrReplaceProjectTemplate

    ProjectSoapDO createOrReplaceProjectTemplate(String sessionId, String projectId, String title, String description, String[] contentChoices, String templateId) throws RemoteException
    Creates or replaces a template from an existing project
    Parameters:
      `sessionId` - The session id.
      `projectId` - The project to copy into a template
      `title` - The title of the template
      `description` - The description of the template
      `contentChoices` - the desired application content in the template, see constants below
      `templateId` - the id of the template to replace, if null (not empty string but null), a new template will be created
    Returns:
      The template project data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the template or project does not exist.
      `IllegalArgumentFault` - when illegal argument is passed.
      `RemoteException`
    Since:
      5.3
    See Also:
      - `ProjectSoapDO.INCLUDE_ALL_CONTENT`
      - `ProjectSoapDO.INCLUDE_DISCUSSIONS_CONTENT`
      - `ProjectSoapDO.INCLUDE_DOCUMENTS_CONTENT`
      - `ProjectSoapDO.INCLUDE_FRS_CONTENT`
      - `ProjectSoapDO.INCLUDE_PLANNING_FOLDERS`
      - `ProjectSoapDO.INCLUDE_PROJECT_PAGES`
      - `ProjectSoapDO.INCLUDE_REPORTS_CONTENT`
      - `ProjectSoapDO.INCLUDE_SAVED_SEARCHES`
      - `ProjectSoapDO.INCLUDE_TRACKER_CONTENT`
      - `ProjectSoapDO.INCLUDE_WIKI_CONTENT`
      - `ProjectSoapDO.INCLUDE_TEAMS`
      - `(Supported from 17.8)`
      - `(Supported from 17.8)`

  - ### createProjectFromTemplate

    ProjectSoapDO createProjectFromTemplate(String sessionId, String templateId, String name, String title, String description) throws RemoteException
    Creates a project from template.
    Parameters:
      `sessionId` - User session key.
      `templateId` - The template project id
      `name` - The name of the project (can be null, will fall back to title or id)
      `title` - The title of the project
      `description` - The description of the project
    Returns:
      The project data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `ObjectAlreadyExistsFault` - when the project with that name already exists.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalArgumentFault` - when illegal argument is passed.
      `RemoteException`
    Since:
      4.2-SP1

  - ### listTemplates

    ProjectSoapList listTemplates(String sessionId) throws RemoteException
    Lists project templates within the installation.
    Parameters:
      `sessionId` - User session key.
    Returns:
      The list of template projects
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.2-SP1

  - ### findProjects

    ProjectSoapList findProjects(String sessionId, String queryString) throws RemoteException
    Finds a list of projects matching a search string.
    Parameters:
      `sessionId` - User session id.
      `queryString` - Query string.
    Returns:
      List of projects matching search criteria.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SearchQuerySyntaxFault` - when the specified search query string is syntactically invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - when the query string is invalid.
      `RemoteException`
    Since:
      4.1

  - ### lockProject

    ProjectSoapDO lockProject(String sessionId, String projectId) throws RemoteException
    Locks project. Thus making all the tools and their data read-only.
    Parameters:
      `sessionId` - User session key.
      `projectId` - Project id.
    Returns:
      Project data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `ProjectAlreadyLockedFault` - When a user tries to lock an already locked project
      `RemoteException`
    Since:
      6.0

  - ### unLockProject

    ProjectSoapDO unLockProject(String sessionId, String projectId) throws RemoteException
    Un-Locks project. Restoring to the normal state where the objects are editable.
    Parameters:
      `sessionId` - User session key.
      `projectId` - Project id.
    Returns:
      Project data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0

  - ### getProjectData

    ProjectSoapDO getProjectData(String sessionId, String projectId) throws RemoteException
    Gets a project object which includes the parent project ID, project hierarchy path and locked status flag.
    Parameters:
      `sessionId` - User session key.
      `projectId` - Project id.
    Returns:
      Project data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.1

  - ### getProjectMemberList

    ProjectMemberSoapList getProjectMemberList(String sessionId, String projectId) throws RemoteException
    Returns project membership list.
    Parameters:
      `sessionId` - User session id.
      `projectId` - Id of the project.
    Returns:
      Members of project.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.1

  - ### listProjectAdmins

    UserSoapList listProjectAdmins(String sessionId, String projectId) throws RemoteException
    Returns project administrators list.
    Parameters:
      `sessionId` - User session id.
      `projectId` - Id of the project.
    Returns:
      Administrators of the project.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      5.0

  - ### getUserGroupListForProject

    UserGroupSoapList getUserGroupListForProject(String sessionId, String projectOrProjectGroupId) throws RemoteException
    Returns a list of user groups that have a role in the project.
    Parameters:
      `sessionId` - User session id.
      `projectOrProjectGroupId` - Project/ProjectGroup Id.
    Returns:
      UserGroups who have a role in the project.
    Throws:
      `NoSuchObjectFault` - when the specified object id is invalid.
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4-SP1 (renamed from getProjectGroupList in 6.1)

  - ### addProjectMember

    void addProjectMember(String sessionId, String projectId, String userName) throws RemoteException
    Makes a user a member of a project.
    Parameters:
      `sessionId` - User session id.
      `projectId` - Id project Id.
      `userName` - Name of the new user.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.3

  - ### addProjectGroupMember

    void addProjectGroupMember(String sessionId, String projectGroupId, String userName) throws RemoteException
    Makes a user a member of a project group.
    Parameters:
      `sessionId` - User session id.
      `projectGroupId` - ProjectGroup id.
      `userName` - Name of the new user.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0.1

  - ### removeProjectMember

    void removeProjectMember(String sessionId, String projectId, String userName) throws RemoteException
    Removes a user from a project.
    Parameters:
      `sessionId` - User session id.
      `projectId` - Id of the project.
      `userName` - Name of the new user.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoveOnlyProjectAdminFault` - attempting to remove last project admin
      `RemoteException`
    Since:
      4.3 hotfix5

  - ### createUserGroup

    UserGroupSoapDO createUserGroup(String sessionId, String fullName, String description) throws RemoteException
    Creates a new user group with the specified parameters.
    Parameters:
      `sessionId` - User's session id.
      `fullName` - Full name of the new group.
      `description` - Description of the new group.
    Returns:
      Newly created group object.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when the specified group already exists.
      `IllegalArgumentFault` - when one or more group parameters are invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from createGroup in 6.1)

  - ### getUserGroupData

    UserGroupSoapDO getUserGroupData(String sessionId, String groupId) throws RemoteException
    Returns the user group information.
    Parameters:
      `sessionId` - User's session id.
      `groupId` - User Group id.
    Returns:
      User Group data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified group id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from getGroupData in 6.1)

  - ### setUserGroupData

    void setUserGroupData(String sessionId, UserGroupSoapDO groupData) throws RemoteException
    Sets the user group information.
    Parameters:
      `sessionId` - User's session id.
      `groupData` - User Group data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `VersionMismatchFault` - The user group version being edited is not the latest one
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when a user group with the specified user group name already exists.
      `IllegalArgumentFault` - when the specified user group name is invalid.
      `SystemFault` - when an unexpected system error occurs
      `RemoteException`
    Since:
      4.4 SP1 (renamed from setGroupData in 6.1)

  - ### deleteUserGroup

    void deleteUserGroup(String sessionId, String groupId) throws RemoteException
    Deletes a user group.
    Parameters:
      `sessionId` - User session key.
      `groupId` - The id of the user group to be deleted
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if we can't find the project with the specified user group id
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalUserModificationFault` - when a user tries to delete system created user group.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from deleteGroup in 6.1)

  - ### getUserGroupList

    UserGroupSoapList getUserGroupList(String sessionId) throws RemoteException
    Gets a list of all user groups on the system.
    Parameters:
      `sessionId` - User session id.
    Returns:
      List of user groups matching a filter.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from getGroupList in 6.1)

  - ### getUserGroupListForUser

    UserGroupSoapList getUserGroupListForUser(String sessionId, String username) throws RemoteException
    Gets a list of all user groups the user belongs.
    Parameters:
      `sessionId` - User session id.
      `username` - the name of the user
    Returns:
      List of user groups the user belongs.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from getUserGroupList in 6.1)

  - ### getUserGroupMembers

    UserSoapList getUserGroupMembers(String sessionId, String groupId) throws RemoteException
    Gets a list of active users who are members of a user group
    Parameters:
      `sessionId` - User session id.
      `groupId` - the user group id
    Returns:
      List of members of a user group
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if we can't find the project with the specified user group id.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from getActiveGroupMembers in 6.1)

  - ### addUserGroupMember

    void addUserGroupMember(String sessionId, String userGroupId, String userName) throws RemoteException
    Adds a user to a user group. The user and user group must be existing already.
    Parameters:
      `sessionId` - User session id.
      `userGroupId` - User Group to which the user should be added
      `userName` - User to be added to the user group
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if the user group and/or user does not exist
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalGroupMemberAddFault` - when an users in the system is added to system created user group.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from addGroupMember in 6.1)

  - ### removeUserGroupMember

    void removeUserGroupMember(String sessionId, String userGroupId, String userName) throws RemoteException
    Removes a user from a user group.
    Parameters:
      `sessionId` - User session id.
      `userGroupId` - User Group from which the user should be removed.
      `userName` - User to be removed.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if the user group and/or user does not exist
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4 SP1 (renamed from removeGroupMember in 6.1)

  - ### createUser

    UserSoapDO createUser(String sessionId, String userName, String email, String fullName, String organization, String locale, String timeZone, String licenseType, boolean isSuperUser, boolean isRestrictedUser, String password) throws RemoteException
    Creates a new user with the specified parameters.
    Parameters:
      `sessionId` - User's session id.
      `userName` - Name of the new user.
      `email` - Email of the new user.
      `fullName` - Full name of the new user.
      `organization` - organization name of the new user.
      `locale` - Locale of the new user (currently supported locales are "en" for English, "ja" for Japanese).
      `timeZone` - User's time zone.
      `licenseType` - User's license type. Multiple license types can be given for a user as ALM
      `isSuperUser` - Should user be given super-user privileges?
      `isRestrictedUser` - Should user be given restricted privileges?
      `password` - Password of the new user.
    Returns:
      Newly created user object.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when the specified user already exists.
      `IllegalArgumentFault` - when one or more user parameters are invalid.
      `UserLimitExceededFault` - The user limit was exceeded
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.1

  - ### getUserData

    UserSoapDO getUserData(String sessionId, String username) throws RemoteException
    Gets the user details for the given username.
    Parameters:
      `sessionId` - User session id.
      `username` - User name (login name)
    Returns:
      User data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - If the username is invalid
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.2

  - ### getUserData2

    User2SoapDO getUserData2(String sessionId, String username) throws RemoteException
    Gets the user details for the given username.
    Parameters:
      `sessionId` - User session id.
      `username` - User name (login name)
    Returns:
      User data which includes user's profile picture link.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - If the username is invalid
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      7.0

  - ### getUserByEmail

    UserSoapDO getUserByEmail(String sessionId, String email) throws RemoteException
    Returns the user information for the given email address.
    Parameters:
      `sessionId` - User session id.
      `email` - the email address of a registered user
    Returns:
      User data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - If the username is invalid
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0

  - ### getUserByName

    UserSoapDO getUserByName(String sessionId, String fullname) throws RemoteException
    Returns the user information for the given full name.
    Parameters:
      `sessionId` - User session id.
      `fullname` - the full name of a user
    Returns:
      User data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - If the username is invalid
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0

  - ### getCurrentUserData

    UserSoapDO getCurrentUserData(String sessionId) throws RemoteException
    Gets the user details for a given user session id.
    Parameters:
      `sessionId` - user session id
    Returns:
      a UserSoapDO for a given user session id.
    Throws:
      `InvalidSessionFault` - if the given session id is invalid.
      `RemoteException`
    Since:
      5.4

  - ### setUserData2

    void setUserData2(String sessionId, User2SoapDO userData) throws RemoteException
    Sets the user information.
    Parameters:
      `sessionId` - User session id.
      `userData` - User data which includes user's profile picture link.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `VersionMismatchFault` - The user version being edited is not the latest one
      `LastSuperUserFault` - The user being edited is the last super user and cannot be un-superusered
      `IllegalUserModificationFault` - If someone tried to edit a restricted property on a special user
      `PermissionDeniedFault` - if the user does not have permission to do this
      `UserLimitExceededFault` - The user limit was exceeded
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      8.0

  - ### setUserData

    void setUserData(String sessionId, UserSoapDO userData) throws RemoteException
    Sets the user information. NOTE: Only super-users are allowed to set user data.
    Parameters:
      `sessionId` - User session id.
      `userData` - User data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `VersionMismatchFault` - The user version being edited is not the latest one
      `LastSuperUserFault` - The user being edited is the last super user and cannot be un-superusered
      `IllegalUserModificationFault` - If someone tried to edit a restricted property on a special user
      `PermissionDeniedFault` - if the user does not have permission to do this
      `UserLimitExceededFault` - The user limit was exceeded
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.3

  - ### findUsers

    UserSoapList findUsers(String sessionId, String queryString) throws RemoteException
    Finds a list of users matching a search string.
    Parameters:
      `sessionId` - User session id.
      `queryString` - Query string.
    Returns:
      List of users matching search criteria.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SearchQuerySyntaxFault` - when the specified search query string is syntactically invalid.
      `IllegalArgumentFault` - when the query string is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `RemoteException`
    Since:
      4.1

  - ### getUserList

    @Deprecated UserSoapList getUserList(String sessionId, SoapFilter soapFilter) throws RemoteException
    Deprecated.
    use getUserList2 instead
    Gets a list of all users on the system.
    Parameters:
      `sessionId` - User session id.
      `soapFilter` - Search filter. See UserSoapDO.FILTER constants for supported filter names.
    Returns:
      List of users matching a filter.
    Throws:
      `SearchQuerySyntaxFault` - when the specified search query string is syntactically invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - if the user does not have permission
      `RemoteException`
    Since:
      4.3

  - ### getUserList2

    User2SoapList getUserList2(String sessionId, SoapFilter soapFilter) throws RemoteException
    Gets a list of all users on the system.
    Parameters:
      `sessionId` - User session id.
      `soapFilter` - Search filter. See UserSoapDO.FILTER constants for supported filter names.
    Returns:
      List of users matching a filter.
    Throws:
      `SearchQuerySyntaxFault` - when the specified search query string is syntactically invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - if the user does not have permission
      `RemoteException`
    Since:
      8.0

  - ### getProjectAccessLevel

    int getProjectAccessLevel(String sessionId, String projectId) throws RemoteException
    Gets the project's access level.
    Parameters:
      `sessionId` - User session Id
      `projectId` - The project Id
    Returns:
      The project access level.
    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 project id is not a valid project id or if it is a Project Group's id
      `RemoteException`
    Since:
      4.1-HOTFIX6.1
    See Also:
      - `ProjectSoapDO.PUBLIC`
      - `ProjectSoapDO.GATED_COMMUNITY`
      - `ProjectSoapDO.PRIVATE`

  - ### setProjectAccessLevel

    void setProjectAccessLevel(String sessionId, String projectId, int accessLevel) throws RemoteException
    Sets the project access level.
    Parameters:
      `sessionId` - User session Id
      `projectId` - The project Id
      `accessLevel` - The access level to set the project to
    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 project id is not a valid project id
      `IllegalArgumentFault` - When the accessLevel is invalid or if the "PROJECT_ACCESS_EDITABLE" configuration's value is false
      `RemoteException`
    Since:
      4.1-HOTFIX6.1
    See Also:
      - `getConfigurationValue(String, String)`

  - ### getCommentList

    CommentSoapList getCommentList(String sessionId, String objectId) throws RemoteException
    Gets list of comments for object.
    Parameters:
      `sessionId` - User session id.
      `objectId` - Object id.
    Returns:
      List of comments.
    Throws:
      `InvalidSessionFault` - When the specified session id is invalid.
      `NoSuchObjectFault` - When the object id is not valid
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation
      `SystemFault` - When an unexpected system level error occurs.
      `RemoteException`
    Since:
      4.2

  - ### listAttachments

    AttachmentSoapList listAttachments(String sessionId, String objectId) throws RemoteException
    Lists the attachments associated with the object, the attachment itself is not part of the returned object.
    Parameters:
      `sessionId` - user session id
      `objectId` - the id of the object from which attachments are to be listed
    Returns:
      List of attachments, does not include the actual file.
    Throws:
      `InvalidSessionFault` - When the specified session id is invalid.
      `NoSuchObjectFault` - When the object id is not valid.
      `PermissionDeniedFault` - If the user doesn't have permission to perform the operation.
      `SystemFault` - If an unexpected system fault occurs.
      `RemoteException`
    Since:
      4.4-SP1

  - ### deleteAttachment

    void deleteAttachment(String sessionId, String objectId, String attachmentId) throws RemoteException
    Deletes the specified attachment of the specified object.
    Parameters:
      `sessionId` - User session id.
      `objectId` - The id of the object from which attachment has to be deleted.
      `attachmentId` - The attachment id.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4-SP1

  - ### createAssociation

    void createAssociation(String sessionId, String originId, String targetId, String description) throws RemoteException
    Creates an association between two objects.
    Parameters:
      `sessionId` - User session id.
      `originId` - the origin object's id (Only CTF objects can be passed as origin id)
      `targetId` - the target object's id
      `description` - the description for the association
    Throws:
      `InvalidSessionFault` - if the user's session is not valid
      `PermissionDeniedFault` - if the user does not have permission to create the association
      `SystemFault` - if an unexpected system error occurs
      `NoSuchObjectFault` - if the origin or target objects do not exist
      `IllegalArgumentFault` - if a valid association cannot be created between the given objects
      `RemoteException`
    Since:
      4.1

  - ### createAssociationWithTitles

    void createAssociationWithTitles(String sessionId, String originId, String originTitle, String targetId, String targetTitle, String description) throws RemoteException
    Creates an association between two objects with specified title.
    Parameters:
      `sessionId` - User session id.
      `originId` - the origin object's id (Only CTF objects can be passed as origin id)
      `originTitle` - the origin object's title (As of 7.0 originTitle will be ignored completely)
      `targetId` - the target object's id (For pluggable app object, provide the object id for targetId parameter)
      `targetTitle` - the target object's title
      `description` - the description for the association
    Throws:
      `InvalidSessionFault` - if the user's session is not valid
      `PermissionDeniedFault` - if the user does not have permission to create the association
      `SystemFault` - if an unexpected system error occurs
      `NoSuchObjectFault` - if the origin or target objects do not exist
      `IllegalArgumentFault` - if a valid association cannot be created between the given objects
      `RemoteException`
    Since:
      7.0

  - ### changeIAObjectTitle

    void changeIAObjectTitle(String sessionId, String pluggableObjectId, String pluggableObjectTitle) throws RemoteException
    Updates the title for Pluggable objects only.
    Parameters:
      `sessionId` - User session id.
      `pluggableObjectId` - The pluggable app object id
      `pluggableObjectTitle` - the pluggable object's title
    Throws:
      `InvalidSessionFault` - if the user's session is not valid
      `PermissionDeniedFault` - if the user does not have permission to create the association
      `SystemFault` - if an unexpected system error occurs
      `NoSuchObjectFault` - if the origin or target objects do not exist
      `IllegalArgumentFault` - if a valid association cannot be created between the given objects
      `RemoteException`
    Since:
      7.0

  - ### deleteAssociation

    void deleteAssociation(String sessionId, String originId, String targetId) throws RemoteException
    Deletes an association between two objects
    Parameters:
      `sessionId` - User session id.
      `originId` - the origin object's id (Only CTF objects can be passed as origin id)
      `targetId` - the target object's id
    Throws:
      `InvalidSessionFault` - if the user's session is not valid
      `PermissionDeniedFault` - if the user does not have permission to delete the association
      `SystemFault` - if an unexpected system error occurs
      `NoSuchObjectFault` - if the origin or target objects do not exist
      `IllegalArgumentFault` - if an association does not exist between the given objects
      `RemoteException`
    Since:
      4.2

  - ### deleteProject

    void deleteProject(String sessionId, String projectId, boolean noNotification, boolean forceDeleteEvenIfChildFound) throws RemoteException
    Deletes a project.
    Parameters:
      `sessionId` - User session key.
      `projectId` - The id of the project to be deleted
      `noNotification` - if true no notifications will be sent.
      `forceDeleteEvenIfChildFound` - delete even if there are child projects
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if we can't find the project with the specified project id
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `ParentRoleUsedInChildProjectsFault` - when a role of the project is used in its child projects.
      `ChildProjectsFoundFault` - thrown if any child projects are found for the project that is deleted.
      `RemoteException`
    Since:
      4.3

  - ### getAssociationList

    AssociationSoapList getAssociationList(String sessionId, String objectId) throws RemoteException
    Lists all of the associations for a given object.
    Parameters:
      `sessionId` - The current session id.
      `objectId` - The id of the object that has associations.
    Returns:
      A list of associations for the given object.
    Throws:
      `InvalidSessionFault` - If the session is not valid.
      `NoSuchObjectFault` - If the object does not exist or is deleted.
      `PermissionDeniedFault` - If you are not allowed to view the object or its associations.
      `SystemFault` - If an unexpected error occurs.
      `RemoteException`
    Since:
      4.2

  - ### getAuditHistoryList

    AuditHistorySoapList getAuditHistoryList(String sessionId, String objectId, boolean includeDerivedChanges) throws RemoteException
    Returns the list of changes made to the specified object in reverse chronological order.
    Parameters:
      `sessionId` - The current session id.
      `objectId` - ID of the object.
      `includeDerivedChanges` - whether we want to get the derived entries
    Returns:
      List of changes made to the specified object.
    Throws:
      `InvalidSessionFault` - If the session is not valid.
      `NoSuchObjectFault` - If the object does not exist or is deleted.
      `PermissionDeniedFault` - If you are not allowed to view the object or its associations.
      `SystemFault` - If an unexpected error occurs.
      `IllegalArgumentFault` - If the objectId is not an artifact.
      `RemoteException`
    Since:
      4.1-SP3

  - ### getVersionInformationList

    VersionInformationSoapList getVersionInformationList(String sessionId, String folderId) throws RemoteException
    Obtains a list of versions and last modified dates for the objects residing in the specified folder.
    Parameters:
      `sessionId` - Soap session id
      `folderId` - Folder to obtain the list for
    Returns:
      The version information
    Throws:
      `InvalidSessionFault` - when session id is invalid.
      `NoSuchObjectFault` - when the folder does not exist.
      `PermissionDeniedFault` - when permissions are denied for the operation.
      `SystemFault` - when an unexpected error occurs.
      `RemoteException`
    Since:
      4.2

  - ### reindexObject

    void reindexObject(String sessionId, String objectId) throws RemoteException
    Re-indexes the contents of the specified project, folder, item or user.
    Parameters:
      `sessionId` - User session ID (must be a system administrator to perform this operation)
      `objectId` - Project to re-index.
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `PermissionDeniedFault` - when the user does not have sufficient privileges (must be a system admin).
      `NoSuchObjectFault` - when the specified object ID is invalid.
      `RemoteException`
    Since:
      4.1-SP3-HOTFIX9

  - ### getUserEffectiveMode

    String getUserEffectiveMode(String sessionId) throws RemoteException
    Gets effective mode (ALM or SCM) for the current user
    Parameters:
      `sessionId` - Session id.
    Returns:
      effective mode (ALM or SCM) for the current user
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `RemoteException`
    Since:
      5.4

  - ### isHostedMode

    boolean isHostedMode(String sessionId) throws RemoteException
    Verifies if the TeamForge appserver is running in Hosted Mode.
    Parameters:
      `sessionId` - Session id.
    Returns:
      true if the appserver is running in Hosted Mode.
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `RemoteException`
    Since:
      4.3

  - ### getProjectDiskUsage

    long getProjectDiskUsage(String sessionId, String projectId) throws RemoteException
    Gets the filestorage disk utilization of a project specified by a project id
    Parameters:
      `sessionId` - the soap session key
      `projectId` - the id of the project
    Returns:
      the file storage disk usage of a project
    Throws:
      `NoSuchObjectFault` - thrown if the project was not found.
      `InvalidSessionFault` - thrown if the session id is not valid.
      `PermissionDeniedFault` - thrown if sessionId is not a session started by an admin.
      `SystemFault` - If there was a problem checking the permissions.
      `RemoteException`
    Since:
      4.3

  - ### getProjectQuota

    long getProjectQuota(String sessionId, String projectId) throws RemoteException
    Gets the disk quota for a project.
    Parameters:
      `sessionId` - The id of the current session.
      `projectId` - The id of the project.
    Returns:
      The disk quota for the project.
    Throws:
      `InvalidSessionFault` - If the session id is not valid.
      `NoSuchObjectFault` - If the project id does not exist.
      `PermissionDeniedFault` - If the user is not allowed to view this information.
      `SystemFault` - If there was a problem checking the permissions.
      `RemoteException`
    Since:
      4.3

  - ### setProjectQuota

    void setProjectQuota(String sessionId, String projectId, long quota) throws RemoteException
    Sets the disk quota for a project.
    Parameters:
      `sessionId` - The id of the current session.
      `projectId` - The id of the project.
      `quota` - The disk quota to be set for the project.
    Throws:
      `InvalidSessionFault` - If the session id is not valid.
      `NoSuchObjectFault` - If the project id does not exist.
      `PermissionDeniedFault` - If the user is not allowed to view this information.
      `SystemFault` - when an unexpected system level error occurs.
      `RemoteException`
    Since:
      4.3

  - ### getConfigurationValue

    String getConfigurationValue(String sessionId, String keyValue) throws RemoteException
    Gets Configuration value for the passed key.
    Parameters:
      `sessionId` - The id of the current session.
      `keyValue` - of the configuration parameter sought for as String.
    Returns:
      The configuration value of the key requested.
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      4.4-SP1

  - ### getProjectByPath

    ProjectSoapDO getProjectByPath(String sessionId, String projectPath) throws RemoteException
    Gets the project data for a given project path.
    Parameters:
      `sessionId` - user session id
      `projectPath` - path for which the project info. is requested
    Returns:
      a ProjectSoapDO for a given project path.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      5.4

  - ### listUsersWithGeneralPermission

    UserSoapList listUsersWithGeneralPermission(String sessionId, String projectId, String operationString, String folderId) throws RemoteException
    Returns a list of users who have some permission to perform the given operation
    Parameters:
      `sessionId` - user session id
      `projectId` - project for which permission is checked
      `operationString` - The string representation of the operation.
      `folderId` - id of the folder for which permission needs to be checked.
    Returns:
      List of users who have permission on the given object for the given operation
    Throws:
      `InvalidSessionFault` - when session is invalid
      `NoSuchObjectFault` - when the objectId does not exist
      `IllegalArgumentFault` - if the operationString is in an invalid format
      `SystemFault` - any other exceptions
      `PermissionDeniedFault` - If user does not have project view permission
      `RemoteException`
    Since:
      5.4

  - ### hasGeneralPermission

    boolean hasGeneralPermission(String sessionId, String username, String projectId, String operationString, String objectId) throws RemoteException
    Checks if the user has general permission for the resource (specified by objectid).
    Parameters:
      `sessionId` - User session
      `username` - user for which permission needs to be checked
      `projectId` - Project for which permission is checked
      `operationString` - The string representation of the operation.
      `objectId` - Object id can't be null for which permission needs to be checked.
    Returns:
      Does the user has permission on this resource for this project
    Throws:
      `InvalidSessionFault` - When Session is invalid
      `NoSuchObjectFault` - When the objectId does not exist
      `IllegalArgumentFault` - Illegal arguments for the operation string
      `SystemFault` - Any other exceptions
      `RemoteException`
    Since:
      6.0

  - ### hasSitewideRolePermission

    boolean hasSitewideRolePermission(String sessionId, String operationString) throws RemoteException
    Checks if the current user has the given site wide permission to perform the operation.
    Parameters:
      `sessionId` - User session id
      `operationString` - The string representation of the operation.
    Returns:
      true if the user has the permission for the operation at Site-Wide scope, false otherwise.
    Throws:
      `InvalidSessionFault` - when the sessionId is invalid
      `IllegalArgumentFault` - If the operationString is in an invalid format
      `SystemFault` - when an unexpected system error occurs
      `RemoteException`
    Since:
      6.1.1

  - ### setParentProject

    void setParentProject(String sessionId, String projectId, String parentProjectId) throws RemoteException
    Sets the parent of a project.
    Removes the parent, if the given parentProjectId is null or empty.
    Parameters:
      `sessionId` - User session id.
      `projectId` - Id of the project whose parent needs to be set.
      `parentProjectId` - Id of the project which is to be set as parent; null/empty, removes the parent.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - if the parent is one of the child projects or is same as the project.
      `PermissionDeniedFault` - if the user does not have permission to do this
      `ChangeParentNotAllowedFault` - if the project is system project (look project).
      `ParentRoleUsedInChildProjectsFault` - if any role of this or ancestor project
      `SystemFault` - unexpected error
      `RemoteException`
    Since:
      6.0

  - ### getProjectHierarchyPaths

    SoapNamedValues getProjectHierarchyPaths(String sessionId, String[] projectIds) throws RemoteException
    Returns the hierarchy path of the given projects.
    Parameters:
      `sessionId` - User session key.
      `projectIds` - An array of project Ids.
    Returns:
      A name-value pair of project hierarchy paths
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs
      `PermissionDeniedFault` - when the user has insufficient privileges on any of the given projects.
      `RemoteException`
    Since:
      6.0

  - ### getCurrentTime

    long getCurrentTime(String sessionId) throws RemoteException
    Returns the current server time in milliseconds.
    Parameters:
      `sessionId` - user session id.
    Returns:
      the current server time in milliseconds
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `RemoteException`
    Since:
      6.0

  - ### canReceiveOwnUpdates

    boolean canReceiveOwnUpdates(String sessionId) throws RemoteException
    Returns whether the current user receives notifications for the user's own updates.
    Parameters:
      `sessionId` - user session id.
    Returns:
      whether the user can receive notifications on own updates
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when anything unexpected happen.
      `RemoteException`
    Since:
      6.0

  - ### createProjectGroup

    ProjectGroupSoapDO createProjectGroup(String sessionId, String title, String description) throws RemoteException
    Creates a Project Group.
    Parameters:
      `sessionId` - User session key.
      `title` - The title of the project group
      `description` - The description of the project group
    Returns:
      The project group data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `ObjectAlreadyExistsFault` - when the project group with that name already exists.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalArgumentFault` - when invalid data was passed in
      `RemoteException`
    Since:
      6.0.1

  - ### addProjectsToProjectGroup

    void addProjectsToProjectGroup(String sessionId, String projectGroupId, String[] projectIds) throws RemoteException
    Adds the given projects to a project group.
    Parameters:
      `sessionId` - the user session id
      `projectGroupId` - the project group id
      `projectIds` - the project ids
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `IllegalArgumentFault` - when invalid data was passed in
      `RemoteException`
    Since:
      6.0.1

  - ### listProjectGroups

    ProjectGroupSoapList listProjectGroups(String sessionId) throws RemoteException
    Returns a list of all projects groups.
    Parameters:
      `sessionId` - User session key.
    Returns:
      List of project groups
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `SystemFault` - when an unexpected system level error occurs.
      `PermissionDeniedFault`
      `RemoteException`
    Since:
      6.0.1

  - ### getProjectGroupData

    ProjectGroupSoapDO getProjectGroupData(String sessionId, String projectGroupId) throws RemoteException
    Gets the Project Group Data by project group id.
    Parameters:
      `sessionId` - user session id
      `projectGroupId` - project group Id
    Returns:
      projectGroupSoapDO Project Group data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `RemoteException`
    Since:
      6.0.1

  - ### setProjectGroupData

    void setProjectGroupData(String sessionId, ProjectGroupSoapDO projectGroupData) throws RemoteException
    Sets the project group's data with the data represented in the projectGroupData parameter.
    Parameters:
      `sessionId` - user session id
      `projectGroupData` - project group's ProjectGroupSoapDO
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `VersionMismatchFault` - when the project group version being edited is not the latest one
      `RemoteException`
    Since:
      6.0.1

  - ### addProjectGroupAdmins

    void addProjectGroupAdmins(String sessionId, String projectGroupId, String[] usernames) throws RemoteException
    Makes the users given in the usernames parameter as administrators of the Project Group
    Parameters:
      `sessionId` - user session id
      `projectGroupId` - project group's id
      `usernames` - The username of the users that need to be made as admins for this Project Group
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the specified object id is invalid
      `RemoteException`
    Since:
      6.0.1

  - ### removeProjectGroupAdmins

    void removeProjectGroupAdmins(String sessionId, String projectGroupId, String[] usernames) throws RemoteException
    Removes the users given in the usernames parameter from the administrator role of the Project Group
    Parameters:
      `sessionId` - user session id
      `projectGroupId` - project group's id
      `usernames` - The username of the users that need to be made as admins for this Project Group
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `RemoteException`
    Since:
      6.0.1

  - ### getMemberProjectsForProjectGroup

    ProjectSoapList getMemberProjectsForProjectGroup(String sessionId, String projectGroupId) throws RemoteException
    Gets the Project List for project group.
    Parameters:
      `sessionId` - the user session id
      `projectGroupId` - the project group id
    Returns:
      ProjectList the list of projects.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the given projectGroupId does not exist.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0.1

  - ### removeProjectsFromProjectGroup

    void removeProjectsFromProjectGroup(String sessionId, String[] projectMemberIds, String projectGroupId) throws RemoteException
    Removes projects from project group
    Parameters:
      `sessionId` - user session id
      `projectMemberIds` - project members in project group
      `projectGroupId` - project group id
    Throws:
      `InvalidSessionFault`
      `SystemFault` - when an unexpected system error occurs.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `RemoteException`
    Since:
      6.0.1

  - ### removeProjectGroupMember

    void removeProjectGroupMember(String sessionId, String projectGroupId, String userName) throws RemoteException
    Removes a user from a project group.
    Parameters:
      `sessionId` - User session id.
      `projectGroupId` - Id of the project group.
      `userName` - Name of the new user.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoveOnlyProjectAdminFault` - attempting to remove last project group admin
      `RemoteException`
    Since:
      6.0.1

  - ### getProjectGroupMemberList

    ProjectGroupMemberSoapList getProjectGroupMemberList(String sessionId, String projectGroupId) throws RemoteException
    Returns project group membership list.
    Parameters:
      `sessionId` - User session id.
      `projectGroupId` - Id of the project group.
    Returns:
      Members of project group.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0.1

  - ### getProjectGroupsForProject

    @Deprecated ProjectGroupSoapList getProjectGroupsForProject(String sessionId, String projectId) throws RemoteException
    Deprecated.
    in favour of getProjectGroupsForProject1
    Gets ProjectGroupList by project
    Parameters:
      `sessionId` - User session id.
      `projectId` - project id
    Returns:
      projectgroup list
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      6.0.1

  - ### getProjectGroupsForProject1

    ProjectGroupSoapList getProjectGroupsForProject1(String sessionId, String projectId) throws RemoteException
    Gets ProjectGroupList by project and user should have view permission
    Parameters:
      `sessionId` - User session id.
      `projectId` - project id
    Returns:
      list of projectgroups on which the user has access
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      8.0

  - ### deleteProjectGroup

    void deleteProjectGroup(String sessionId, String projectGroupId, boolean forceDeleteEvenIfMemberProjectFound) throws RemoteException
    Deletes a project group.
    Parameters:
      `sessionId` - User session key.
      `projectGroupId` - The id of the project group to be deleted
      `forceDeleteEvenIfMemberProjectFound` - delete the project group even if it has member project(s)
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - if we can't find the project group with the specified projectGroupId
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `ChildProjectsFoundFault` - if the project group has any member project(s)
      `RemoteException`
    Since:
      6.0.1

  - ### listUsersWithPermissionOnObject

    UserSoapList listUsersWithPermissionOnObject(String sessionId, String operationString, String objectId, int flag) throws RemoteException
    Returns the list of users who have the given permission on the given object.
    Parameters:
      `sessionId` - User session
      `operationString` - The string representation of the operation.
      `objectId` - The object to check permission for the users with access; It can't be null
      `flag` - either WITHOUT_SUPERUSERS or WITH_SUPERUSERS or WITH_PROJECT_MEMBERS or WITH_ASSIGNED_GROUP_MEMBERS or WITHOUT_GROUP_MEMBERS
    Returns:
      List of Users who have the given permission on the given object
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - When the objectId is invalid or does not exist
      `IllegalArgumentFault` - If the operationString is in an invalid format
      `SystemFault` - when an unexpected system level error occurs.
      `PermissionDeniedFault` - If user does not have project view permission
      `RemoteException`
    Since:
      6.0.1
    See Also:
      - `OperationConstants`
      - `UserSoapDO.WITHOUT_SUPERUSERS`
      - `UserSoapDO.WITH_SUPERUSERS`
      - `UserSoapDO.WITH_PROJECT_MEMBERS`
      - `UserSoapDO.WITH_ASSIGNED_GROUP_MEMBERS`
      - `UserSoapDO.WITHOUT_GROUP_MEMBERS`

  - ### getSessionId

    String getSessionId(String oneTimeToken) throws RemoteException
    Returns current user session Id using one time token id
    Parameters:
      `oneTimeToken` - a one time token for login.
    Returns:
      Access token.
    Throws:
      `LoginFault` - when the login information is incorrect.
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      5.4

  - ### getJSessionId

    String getJSessionId(String oneTimeToken) throws RemoteException
    Returns current user Jsession Id using one time token id
    Parameters:
      `oneTimeToken` - a one time token for login.
    Returns:
      User jsession Id.
    Throws:
      `SystemFault` - when an unexpected system error occurs.
      `RemoteException`
    Since:
      5.4

  - ### getWebAndSoapSessionId

    String getWebAndSoapSessionId(String oneTimeToken) throws RemoteException
    Gets the web and soap session id's separated by &
    Parameters:
      `oneTimeToken` - a one time token for login.
    Returns:
      a string containing the web and soap session id's separated by &
    Throws:
      `SystemFault` - when an unexpected system error occurs.
      `LoginFault` - when the login information is incorrect
      `RemoteException`
    Since:
      5.4

  - ### getBroadCastMessage

    String getBroadCastMessage(String sessionId) throws RemoteException
    Gets broadcast message
    Parameters:
      `sessionId` - the session id.
    Returns:
      current broadcast message
    Throws:
      `InvalidSessionFault` - when fault occurs.
      `RemoteException`
    Since:
      6.1

  - ### getJSessionBySoapId

    @Deprecated String getJSessionBySoapId(String soapId) throws RemoteException
    Deprecated.
    instead use `getJSessionId`
    Gets the JsessionID using soap Id.
    Parameters:
      `soapId` - webservice soap id
    Returns:
      String jsession id
    Throws:
      `InvalidSessionFault` - when fault occurs.
      `RemoteException`
    Since:
      5.4

  - ### getUserSessionBySoapId

    String getUserSessionBySoapId(String soapId) throws RemoteException
    gets the access token using soap Id.
    Parameters:
      `soapId` - webservice soap id
    Returns:
      the access token
    Throws:
      `InvalidSessionFault` - when fault occurs.
      `RemoteException`
    Since:
      6.1

  - ### createSiteWideLinkedApp

    String createSiteWideLinkedApp(String sessionId, String title, String applicationUrl, String applicationType, boolean singleSignon) throws RemoteException
    Create a site-wide linked application and return the created application Id
    Parameters:
      `title` - A name for the linked application, which appears on the link
      `applicationUrl` - the location url of the linked application
      `applicationType` - determines how the linked app should appear
      `singleSignon` - Whether single signon should be enabled.
    Returns:
      A linked application id representing the newly created application
    Throws:
      `InvalidSessionFault` - When Session is invalid
      `NoSuchObjectFault` - When an attempt to retrieve the created linked app results in error
      `IllegalArgumentFault` - If any arguments is of invalid format
      `SystemFault` - Any other exceptions, such as object already exists
      `PermissionDeniedFault` - If user does not have site admin permission
      `RemoteException`
    Since:
      7.0

  - ### createProjectLinkedApp

    String createProjectLinkedApp(String sessionId, String projectId, String title, String applicationUrl, String iconKey, String iconFileName, String iconMimeType, boolean singleSignon) throws RemoteException
    Creates linked application in a given project and return the created application Id
    Parameters:
      `sessionId` - user session
      `projectId` - id of the given project
      `title` - name for the linked application, which appears on the link
      `applicationUrl` - the URL of the linked application
      `iconKey` - the key of the icon
      `iconFileName` - the file name of the icon (e.g. "iconFile.jpg")
      `iconMimeType` - the mime type of the icon (e.g. "image/jpg") Supported formats are: JPG, GIF and PNG.
      `singleSignon` - indicates whether single signon should be enabled.
    Returns:
      A linked application id representing the newly created application
    Throws:
      `InvalidSessionFault` - whem sesion is invalid
      `NoSuchObjectFault` - when an attempt to retrieve the created linked app results in error
      `IllegalArgumentFault` - if any argument is invalid
      `PermissionDeniedFault` - if the user does not have admin permission
      `SystemFault` - any other exception
      `RemoteException`
    Since:
      8.0

  - ### createProjectLinkedApp2

    String createProjectLinkedApp2(String sessionId, String projectId, String title, String applicationUrl, String iconKey, String iconFileName, String iconMimeType, boolean singleSignon, String toolId) throws RemoteException
    Creates linked application in a given project and return the created application Id
    Parameters:
      `sessionId` - user session
      `projectId` - id of the given project
      `title` - name for the linked application, which appears on the link
      `applicationUrl` - the URL of the linked application
      `iconKey` - the key of the icon
      `iconFileName` - the file name of the icon (e.g. "iconFile.jpg")
      `iconMimeType` - the mime type of the icon (e.g. "image/jpg") Supported formats are: JPG, GIF and PNG.
      `singleSignon` - indicates whether single signon should be enabled.
      `toolId` - the id of tool in orchestrate
    Returns:
      A linked application id representing the newly created application
    Throws:
      `InvalidSessionFault` - whem sesion is invalid
      `NoSuchObjectFault` - when an attempt to retrieve the created linked app results in error
      `IllegalArgumentFault` - if any argument is invalid
      `PermissionDeniedFault` - if the user does not have admin permission
      `SystemFault` - any other exception
      `RemoteException`
    Since:
      8.2

  - ### getLinkedApplicationData

    LinkedApplicationSoapDO getLinkedApplicationData(String sessionId, String linkedAppId) throws RemoteException
    Gets Linked Application Data by Linked Application Id
    Parameters:
      `sessionId` -
      `linkedAppId` -
    Returns:
      Linked Application Soap Data
    Throws:
      `RemoteException`
    Since:
      8.0

  - ### getLinkedApplicationData2

    LinkedApplication2SoapDO getLinkedApplicationData2(String sessionId, String linkedAppId) throws RemoteException
    Gets Linked Application Data by Linked Application Id
    Parameters:
      `sessionId` -
      `linkedAppId` -
    Returns:
      Linked Application2 Soap Data
    Throws:
      `RemoteException`
    Since:
      8.2

  - ### setLinkedApplicationData

    void setLinkedApplicationData(String sessionId, LinkedApplicationSoapDO linkedApplicationSoapDO, String iconKey, String iconFileName, String iconMimeType) throws RemoteException
    Sets the linked application.
    Parameters:
      `sessionId` - user session
      `linkedApplicationSoapDO` - the linkedApplication Data Object
      `iconKey` - the key of the icon (e.g. guid9baa2613b27278f720000c58)
      `iconFileName` - the file name of the icon (e.g. "iconFile.jpg")
      `iconMimeType` - the mime type of the icon (e.g. "image/jpg") Supported formats are: JPG, GIF and PNG.
    Throws:
      `RemoteException`
    Since:
      8.0

  - ### setLinkedApplicationData2

    void setLinkedApplicationData2(String sessionId, LinkedApplication2SoapDO linkedApplication2SoapDO, String iconKey, String iconFileName, String iconMimeType) throws RemoteException
    Sets the linked application.
    Parameters:
      `sessionId` - user session
      `linkedApplication2SoapDO` - the linkedApplication Data Object
      `iconKey` - the key of the icon (e.g. guid9baa2613b27278f720000c58)
      `iconFileName` - the file name of the icon (e.g. "iconFile.jpg")
      `iconMimeType` - the mime type of the icon (e.g. "image/jpg") Supported formats are: JPG, GIF and PNG.
    Throws:
      `RemoteException`
    Since:
      8.2

  - ### deleteLinkedApp

    void deleteLinkedApp(String sessionId, String linkedAppId) throws RemoteException
    Delete the linked application.
    Parameters:
      `sessionId` - the session id
      `linkedAppId` - - LinkedApplication Id which is requested to be deleted
    Throws:
      `InvalidSessionFault`
      `NoSuchObjectFault`
      `IllegalArgumentFault`
      `PermissionDeniedFault`
      `SystemFault`
      `RemoteException`
    Since:
      8.0

  - ### listSiteWideLinkedApps

    LinkedApplicationSoapList listSiteWideLinkedApps(String sessionId) throws RemoteException
    Lists site-wide linked applications.
    Parameters:
      `sessionId` - user session
    Returns:
      LinkedApplicationSoapList
    Throws:
      `RemoteException`

  - ### listProjectLinkedApps

    LinkedApplicationSoapList listProjectLinkedApps(String sessionId, String projectId) throws RemoteException
    Lists project-level linked applications for a given project.
    Parameters:
      `sessionId` - user session
      `projectId` - id of the given project
    Returns:
      LinkedapplicationSoapList
    Throws:
      `RemoteException`

  - ### listProjectLinkedApps2

    LinkedApplication2SoapList listProjectLinkedApps2(String sessionId, String projectId) throws RemoteException
    Lists project-level linked applications for a given project.
    Parameters:
      `sessionId` - user session
      `projectId` - id of the given project
    Returns:
      LinkedapplicationSoapList
    Throws:
      `RemoteException`
    Since:
      8.2

  - ### isSoapRedirectPostOnlyMode

    boolean isSoapRedirectPostOnlyMode(String sessionId) throws RemoteException
    Verifies if TeamForge is running in SoapRedirect Post-Only mode.
    Parameters:
      `sessionId` - Session id.
    Returns:
      true if Teamforge is running in SoapRedirect Post-Only Mode.
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `RemoteException`
    Since:
      7.1

  - ### getOneTimeToken

    String getOneTimeToken(String sessionId) throws RemoteException
    Gives one time token for active sessionId.
    Parameters:
      `sessionId` - Session id.
    Returns:
      one time token.
    Throws:
      `InvalidSessionFault` - when the user session ID is invalid or timed out.
      `RemoteException`
    Since:
      8.0