Package com.collabnet.ce.soap60.webservices.scm

# Class ScmAppSoap

java.lang.Object
com.collabnet.ce.soap60.webservices.WebService
com.collabnet.ce.soap60.webservices.scm.ScmAppSoap

All Implemented Interfaces:
  `IScmAppSoap`

public class ScmAppSoap extends WebService implements IScmAppSoap
Provides SOAP services for managing the SCM system.

Change History

Version 18.2

- Added new method getExternalSystemList2: Same as getExternalSystemList, in addition the response includes 'frozen' property

Version 8.1

- Added new method getReplicaRepositoryList
- Added new method replicateRepository
- Added new method removeRepositoryFromReplica
- Added new method getReplicaListForExternalSystemId
- Added new method getSCMCheckoutCommands
- Added new method getSCMCheckoutCommandsForReplica
- Added new method getReplicaData
- Added new method setReplicaData

Version 8.0

- Added new method getExternalSystemList
- Added new method deleteRepository

Version 7.2

- Added new method setAuthorizedKeysForUser.
- Recommended to use this method in place of setAuthorizedKeys(String sessionId, String username, String authorizedKeys).

Version 7.1

- Added new method getExternalSystem: Returns information associated with an external system integrated with Teamforge.
- Added new method setExternalSystemData: Updates external system information that is integrated with Teamforge.

Version 7.0.0.1

- Added new method getCommitData2: Returns the same as getCommitData, but the File list does not contain commit message. Recommended to use this method in place of getCommitData

Version 7.0

- Added new method createRepository2: now has the repository parameters information.
- Added new method getRepositoryData2: now has the repository parameters information.
- Added new method getRepository2DataById: now has the repository parameters information.
- Added new method setRepositoryData: sets the repository data including the parameters.

Version 6.2

- Added new method getAuthorizedKeysForUser.
- Added new method getAuthorizedKeys.
- Added new method getRepositoryListForExternalSystem.
- Added new method setAuthorizedKeys.

Version 6.1.1

- getScmAdapterNames: now users with Manage SCM integration Site-wide permission are allowed to use this.
- getScmAdapterParameterNamesWithType: now users with Manage SCM integration Site-wide permission are allowed to use this.
- addExternalSystem: now users with Manage SCM integration Site-wide permission are allowed to use this.

Version 6.1

- Added new method getReplicableScmExternalSystemList.
- Added new method getReplicatedRepositoryList.
- getRepositoryData2: Renamed to getRepositoryDataById.
- createRepository2: Removed and merged into createRepository.

Version 6.0

- Added new method getCommitId.

Version 5.4

- Added new method moveRepository.
- Added new method getScmAdapterNames.
- Added new method getScmAdapterParameterNamesWithType.
- Added new method addExternalSystem.

Version 5.3

- Added new method getSCMCheckoutCommand.
- All methods taking SoapFilter arguments now support ORing filter conditions if multiple SoapFilter objects with the same name but different values are passed.

Version 5.2

- getRepositoryList: Modified in 5.2 to observe path based permission.
- getCommitList: Modified in 5.2 to observe path based permission.
- getCommitData: Modified in 5.2 to observe path based permission.
- getRepositoryData:Rendered obsolete in 5.2; getRepositoryData2() returns additional fields. Modified in 5.2 to observe path based permission.
- createRepository:Rendered obsolete in 5.2; createRepository2() supports additional field.

- getRepositoryData2: New operation added in 5.2, to support new repository field.
- createRepository2: New operation added in 5.2, to support new repository field.

Since:
  4.1

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `PARAM_USE_INTERNAL_CODE_BROWSER`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScmAppSoap()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `addExternalSystem(String sessionId, String adapterType, String title, String description, SoapNamedValues adapterTypeParameters)`
  Adds an external system of the given adapter type with its title, description and respective list of parameters.
  `RepositorySoapDO`
  `createRepository(String sessionId, String projectId, String externalSystemId, String repositoryDirectory, String title, String description, boolean idRequiredOnCommit, boolean hideMonitoringDetails, String comment)`
  Creates a new repository in the given SCM server.
  `Repository2SoapDO`
  `createRepository2(String sessionId, String projectId, String externalSystemId, String repositoryDirectory, String title, String description, boolean idRequiredOnCommit, boolean hideMonitoringDetails, String comment, RepositoryParameter2SoapDO[] params)`
  Creates a new repository in the given SCM server.
  `void`
  `deleteRepository(String sessionId, String repositoryId)`
  Delete the repository with specified ID.
  `String`
  `getAuthorizedKeys(String sessionId)`
  Get all authorized keys for calling user.
  `String`
  `getAuthorizedKeysForUser(String sessionId, String username)`
  Get all authorized keys for a user with a given username.
  `CommitSoapDO`
  `getCommitData(String sessionId, String commitId)`
  Deprecated.
  from 7.0.0.1 in favour of getCommitData2() that returns Commit2SoapDO, similar to CommitSoapDO except that the scmfile list does not contain the commit message for each file.
  `Commit2SoapDO`
  `getCommitData2(String sessionId, String commitId)`
  Returns data associated with a specific commit.
  `String`
  `getCommitId(String sessionId, String revision, String externalSystemId, String repoPath)`
  Returns a commit Id corresponding to an commit version.
  `CommitSoapList`
  `getCommitList(String sessionId, String repositoryId, SoapFilter[] filters)`
  Lists the commits on a given repository.
  `ExternalSystemSoapDO`
  `getExternalSystem(String sessionId, String systemId)`
  Returns information associated with an external system integrated with TeamForge.
  `ExternalSystemSoapList`
  `getExternalSystemList(String sessionId)`
  Gets a list of external scm systems integrated with TeamForge.
  `ExternalSystem2SoapList`
  `getExternalSystemList2(String sessionId)`
  Gets a list of external scm systems integrated with TeamForge.
  `ReplicableScmExternalSystemSoapList`
  `getReplicableScmExternalSystemList(String sessionId)`
  Deprecated.
  since 8.1 as this call does not return replicable Git external systems.
  `ReplicableScmExternalSystemSoapList`
  `getReplicableScmExternalSystemList2(String sessionId, String adapterName)`
  Lists the replicable external systems for all adapter types or for a given adapter type.
  `ReplicaDataSoapDO`
  `getReplicaData(String sessionId, String replicaId)`
  For a given replica server id get the replica server data.
  `ReplicaServerSoapList`
  `getReplicaListForExternalSystem(String sessionId, String externalSystemId, boolean approvedOnly)`
  Returns list of replicas for given external system id.
  `ReplicaRepositorySoapList`
  `getReplicaRepositoryList(String sessionId, String replicaId)`
  Lists repositories of the specified replica.
  `ReplicatedRepositorySoapList`
  `getReplicatedRepositoryList(String sessionId, String masterRepositoryId)`
  Lists replicated repositories of the specified SCM master.
  `Repository2SoapDO`
  `getRepository2Data(String sessionId, String externalSystemId, String repositoryDirectory)`
  Returns data associated with a specific repository.
  `Repository2SoapDO`
  `getRepository2DataById(String sessionId, String repositoryId)`
  Returns data associated with a specific repository
  `RepositorySoapDO`
  `getRepositoryData(String sessionId, String externalSystemId, String repositoryDirectory)`
  Returns data associated with a specific repository.
  `RepositorySoapDO`
  `getRepositoryDataById(String sessionId, String repositoryId)`
  Returns data associated with a specific repository
  `RepositorySoapList`
  `getRepositoryList(String sessionId, String projectId)`
  Lists the repositories within a given project that the current user has been granted view permission through roles and path based permission.
  `RepositorySoapList`
  `getRepositoryListForExternalSystem(String sessionId, String externalSystemId, String userName)`
  Lists the repositories on a given external system (SCM Adapter) for which the specified user has been granted view permission.
  `String[]`
  `getScmAdapterNames(String sessionId)`
  Returns a string array containing the known list of supported SCM adapters on the server.
  `SoapNamedValues`
  `getScmAdapterParameterNamesWithType(String sessionId, String adapterName)`
  Returns the SCM adapter parameter names with their corresponding type.
  `String`
  `getSCMCheckoutCommand(String sessionId, String repositoryId, String userName)`
  Returns the command needed to check out a specific repository.
  `CheckoutCommandSoapList`
  `getSCMCheckoutCommands(String sessionId, String repositoryId)`
  Returns the list of commands that might be used to check out a specific repository.
  `CheckoutCommandSoapList`
  `getSCMCheckoutCommandsForReplica(String sessionId, String repositoryId, String replicaId)`
  Returns the list of commands that might be used to check out a repository's replica.
  `static boolean`
  `isAdapterTypeValid(com.vasoftware.sf.server.types.NamedValue[] adapterTypeParams, String givenParamName, String givenParamValue)`
  Validates whether the value of providedParam is one of the adapters type.
  `RepositorySoapDO`
  `moveRepository(String sessionId, String repositoryId, String projectId)`
  Moves the repository from its current project to the one specified.
  `void`
  `removeRepositoryFromReplica(String sessionId, String repositoryId, String replicaId)`
  Remove process of replicating of a given repository on a given replica.
  `void`
  `replicateRepository(String sessionId, String repositoryId, String replicaId)`
  Initiates the process of replicating of a given repository on a given replica.
  `void`
  `setAuthorizedKeys(String sessionId, String authorizedKeys)`
  Set authorized keys for calling user.
  `void`
  `setAuthorizedKeys(String sessionId, String username, String authorizedKeys)`
  Deprecated.
  from 7.2.0.0 in favour of setAuthorizedKeysForUser() which does the same.
  `void`
  `setAuthorizedKeysForUser(String sessionId, String username, String authorizedKeys)`
  Set authorized keys for given user.
  `void`
  `setExternalSystemData(String sessionId, ExternalSystemSoapDO systemData)`
  Updates information associated with an external system integrated with TeamForge.
  `void`
  `setReplicaData(String sessionId, ReplicaDataSoapDO replica)`
  Sets replica server data.
  `void`
  `setRepositoryData(String sessionId, Repository2SoapDO repository)`
  Sets the repository data

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

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

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

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

- ## Field Details

  - ### PARAM_USE_INTERNAL_CODE_BROWSER

    public static final String PARAM_USE_INTERNAL_CODE_BROWSER
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ScmAppSoap

    public ScmAppSoap()

- ## Method Details

  - ### getRepositoryList

    public RepositorySoapList getRepositoryList(String sessionId, String projectId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Lists the repositories within a given project that the current user has been granted view permission through roles and path based permission.

    Note that if a user belongs to a role that has set up path based permission on a repository, that repository will appear in this list.

    Specified by:
      `getRepositoryList` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectId` - The project id.
    Returns:
      List of SCM repositories within the specified project.
    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.
    Since:
      4.1

  - ### getRepositoryListForExternalSystem

    public RepositorySoapList getRepositoryListForExternalSystem(String sessionId, String externalSystemId, String userName) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault, IllegalArgumentFault
    Lists the repositories on a given external system (SCM Adapter) for which the specified user has been granted view permission.
    Specified by:
      `getRepositoryListForExternalSystem` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id. Must be site admin.
      `externalSystemId` - The external system (SCM adapter) id.
      `userName` - Name of the user.
    Returns:
      List of repositories on a given external system (SCM Adapter) for which the current user has been granted view permission.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified external system id is not valid
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `IllegalArgumentFault` - when any of the parameters is null/empty
    Since:
      6.2

  - ### getCommitList

    public CommitSoapList getCommitList(String sessionId, String repositoryId, SoapFilter[] filters) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault, InvalidFilterFault
    Lists the commits on a given repository.

    Note that if a user belongs to a role that has set up path based permission on a repository, that user can view all the commits for the repository, even for commits to paths for which the user does not have view permission (though file details will be filtered appropriately when getCommitDetails() is called).

    Change History
    Version 4.3
    - Added additional parameter `filters`. The valid filter names are: createdAfter, createdBefore, createdBy.
    - The list is always paired down to include no more than 5000 results.
    Specified by:
      `getCommitList` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The repository id.
      `filters` - Array of filters to apply (null to return unfiltered list).
    Returns:
      List of SCM commits on the specified repository.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `InvalidFilterFault` - If the filters are not valid.
    Since:
      4.1

  - ### getCommitData

    @Deprecated public CommitSoapDO getCommitData(String sessionId, String commitId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Deprecated.
    from 7.0.0.1 in favour of getCommitData2() that returns Commit2SoapDO, similar to CommitSoapDO except that the scmfile list does not contain the commit message for each file.
    Returns data associated with a specific commit. Only files that are visible through roles or path based permission are included in the commit data.

    Recommended to use getCommitData2() in place of getCommitData()

    Specified by:
      `getCommitData` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `commitId` - The commit id.
    Returns:
      Commit data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified commit id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.1

  - ### getCommitData2

    public Commit2SoapDO getCommitData2(String sessionId, String commitId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Returns data associated with a specific commit. Only files that are visible through roles or path based permission are included in the commit data. Commit Message is not appended to each file. Recommended to use this method in place of getCommitData()
    Specified by:
      `getCommitData2` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `commitId` - The commit id.
    Returns:
      Commit data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified commit id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      7.0.0.1

  - ### getRepositoryData

    public RepositorySoapDO getRepositoryData(String sessionId, String externalSystemId, String repositoryDirectory) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns data associated with a specific repository.

    Note that a user has permission to view the repository data if the user belongs to a role that has either full view permission or any path-based permission on this repository.

    Specified by:
      `getRepositoryData` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `externalSystemId` - The id of the external system that the repository is located on
      `repositoryDirectory` - The directory on the external system that the repository is located in
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.2SP1

  - ### getRepository2Data

    public Repository2SoapDO getRepository2Data(String sessionId, String externalSystemId, String repositoryDirectory) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns data associated with a specific repository.

    Note that a user has permission to view the repository data if the user belongs to a role that has either full view permission or any path-based permission on this repository.

    Specified by:
      `getRepository2Data` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `externalSystemId` - The id of the external system that the repository is located on
      `repositoryDirectory` - The directory on the external system that the repository is located in
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      7.0

  - ### getRepositoryDataById

    public RepositorySoapDO getRepositoryDataById(String sessionId, String repositoryId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns data associated with a specific repository

    Note that a user has permission to view the repository data if the user belongs to a role that has either full view permission or any path-based permission on this repository.

    Specified by:
      `getRepositoryDataById` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The id of the repository
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.2SP1 (renamed from getRepositoryData2 in 6.1)

  - ### getRepository2DataById

    public Repository2SoapDO getRepository2DataById(String sessionId, String repositoryId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns data associated with a specific repository

    Note that a user has permission to view the repository data if the user belongs to a role that has either full view permission or any path-based permission on this repository.

    Specified by:
      `getRepository2DataById` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The id of the repository
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      7.0

  - ### setRepositoryData

    public void setRepositoryData(String sessionId, Repository2SoapDO repository) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, VersionMismatchFault
    Sets the repository data
    Specified by:
      `setRepositoryData` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repository` - The repository data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
      `VersionMismatchFault`
    Since:
      7.0

  - ### getReplicaData

    public ReplicaDataSoapDO getReplicaData(String sessionId, String replicaId) throws RemoteException, SystemFault
    For a given replica server id get the replica server data.
    Specified by:
      `getReplicaData` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - the user session
      `replicaId` - the replica server id
    Returns:
      the replica server data
    Throws:
      `InvalidSessionFault`
      `PermissionDeniedFault`
      `SystemFault`
      `NoSuchObjectFault`
      `InvalidSessionFault`
      `PermissionDeniedFault`
      `SystemFault`
      `NoSuchObjectFault`
      `RemoteException`

  - ### setReplicaData

    public void setReplicaData(String sessionId, ReplicaDataSoapDO replica) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault, VersionMismatchFault
    Sets replica server data.
    Specified by:
      `setReplicaData` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - user session id
      `replica` - the replica server data to be set
    Throws:
      `InvalidSessionFault`
      `PermissionDeniedFault`
      `SystemFault`
      `NoSuchObjectFault`
      `VersionMismatchFault`

  - ### getSCMCheckoutCommand

    public String getSCMCheckoutCommand(String sessionId, String repositoryId, String userName) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns the command needed to check out a specific repository.

    Note that a user has permission to view the checkout command if the user belongs to a role that has either full view permission or any path-based permission on this repository.

    Specified by:
      `getSCMCheckoutCommand` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The id of the repository
      `userName` - User name.
    Returns:
      command to check out the repository
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      5.3

  - ### getSCMCheckoutCommands

    public CheckoutCommandSoapList getSCMCheckoutCommands(String sessionId, String repositoryId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns the list of commands that might be used to check out a specific repository. Note that a user has permission to view the checkout command if the user belongs to a role that has either full view permission or any path-based permission on this repository.
    Specified by:
      `getSCMCheckoutCommands` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The id of the repository
    Returns:
      protocol to checkout command tuples
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      8.1

  - ### getSCMCheckoutCommandsForReplica

    public CheckoutCommandSoapList getSCMCheckoutCommandsForReplica(String sessionId, String repositoryId, String replicaId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Returns the list of commands that might be used to check out a repository's replica. Note that a user has permission to view the checkout command if the user belongs to a role that has either full view permission or any path-based permission on this repository.
    Specified by:
      `getSCMCheckoutCommandsForReplica` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `repositoryId` - The id of the repository
      `replicaId` - The id of the replica to which checkout command should point
    Returns:
      protocol to checkout command tuples
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      8.1

  - ### createRepository

    public RepositorySoapDO createRepository(String sessionId, String projectId, String externalSystemId, String repositoryDirectory, String title, String description, boolean idRequiredOnCommit, boolean hideMonitoringDetails, String comment) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Creates a new repository in the given SCM server. Create repository request for Site Admin and SCM Admin will not go for approval. For non-admin user, if the create repository request is sent for approval, then it returns the empty RepositoryDO.
    Specified by:
      `createRepository` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectId` - The project that will host the new repository
      `externalSystemId` - The id of the external system on which the new repository will be created
      `repositoryDirectory` - The directory on the external system for the new repository
      `title` - The name of the new repository
      `description` - The description for the new repository
      `idRequiredOnCommit` - Whether an artifact ID is required for commits to this repository
      `hideMonitoringDetails` - Controls whether monitoring messages for commit include full details
      `comment` - The comment for documenting the creation of the repository
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.2SP1

  - ### createRepository2

    public Repository2SoapDO createRepository2(String sessionId, String projectId, String externalSystemId, String repositoryDirectory, String title, String description, boolean idRequiredOnCommit, boolean hideMonitoringDetails, String comment, RepositoryParameter2SoapDO[] params) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Creates a new repository in the given SCM server. Create repository request for Site Admin and SCM Admin will not go for approval. For non-admin user, if the create repository request is sent for approval, then it returns the empty RepositoryDO.
    Specified by:
      `createRepository2` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - User session id.
      `projectId` - The project that will host the new repository
      `externalSystemId` - The id of the external system on which the new repository will be created
      `repositoryDirectory` - The directory on the external system for the new repository
      `title` - The name of the new repository
      `description` - The description for the new repository
      `idRequiredOnCommit` - Whether an artifact ID is required for commits to this repository
      `hideMonitoringDetails` - Controls whether monitoring messages for commit include full details
      `comment` - The comment for documenting the creation of the repository
      `params` - The repository parameter
    Returns:
      Repository Data
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified repository id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      7.0

  - ### deleteRepository

    public void deleteRepository(String sessionId, String repositoryId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Delete the repository with specified ID. Delete repository request for Site Admin and SCM Admin will not go for approval.
    Specified by:
      `deleteRepository` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - The user's SOAP session id
      `repositoryId` - The id of the repository to be deleted
    Throws:
      `InvalidSessionFault` - If the user's session is invalid
      `PermissionDeniedFault` - If the user doesn't have proper permissions to delete the repository
      `SystemFault` - All other faults
      `NoSuchObjectFault` - If repository id doesn't exist
    Since:
      8.0

  - ### moveRepository

    public RepositorySoapDO moveRepository(String sessionId, String repositoryId, String projectId) throws InvalidSessionFault, NoSuchObjectFault, ObjectAlreadyExistsFault, PermissionDeniedFault, SystemFault
    Moves the repository from its current project to the one specified.
    Specified by:
      `moveRepository` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - The user's SOAP session id
      `repositoryId` - The id of the repository to move
      `projectId` - The id of the project to move the repository to
    Returns:
      RepositorySoapDO The repository object post-move
    Throws:
      `InvalidSessionFault` - If the user's session is invalid
      `NoSuchObjectFault` - If either the repository id or project id doesn't exist
      `ObjectAlreadyExistsFault` - If the destination project is the same as the current project
      `PermissionDeniedFault` - If the user doesn't have proper permissions on either the repository or the project
      `SystemFault` - All other faults
    Since:
      5.4

  - ### getScmAdapterNames

    public String[] getScmAdapterNames(String sessionId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault
    Returns a string array containing the known list of supported SCM adapters on the server.
    Specified by:
      `getScmAdapterNames` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - The user's SOAP session id
    Returns:
      String[] The known SCM adapter names
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `PermissionDeniedFault` - If the user is not a site administrator
      `SystemFault` - If anything else goes wrong
    Since:
      5.4

  - ### getScmAdapterParameterNamesWithType

    public SoapNamedValues getScmAdapterParameterNamesWithType(String sessionId, String adapterName) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Returns the SCM adapter parameter names with their corresponding type.
    Specified by:
      `getScmAdapterParameterNamesWithType` in interface `IScmAppSoap`
    Parameters:
      `sessionId` - The user's SOAP session id
      `adapterName` - The SCM adapter's name
    Returns:
      SoapNamedValues The named values with type for the SCM adapter parameters
    Throws:
      `InvalidSessionFault` - If the session is invalid
      `NoSuchObjectFault` - If the adapter name is not available
      `PermissionDeniedFault` - If the user is not a site administrator
      `SystemFault` - If anything else goes wrong
    Since:
      5.4

  - ### addExternalSystem

    public String addExternalSystem(String sessionId, String adapterType, String title, String description, SoapNamedValues adapterTypeParameters) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
    Adds an external system of the given adapter type with its title, description and respective list of parameters.

  - Pre-condition: the adapter type and adapter type parameters must be the ones expected as documented.

Specified by:
  `addExternalSystem` in interface `IScmAppSoap`
Parameters:
  `sessionId` - is the user session id.
  `adapterType` - is be the adapter type created, which is one value of the call "getScmAdapterNames()".
  `title` - is the title of the external system.
  `description` - is the description of the external system.
  `adapterTypeParameters` - is the list of parameters of names and associated values for the given adapter type. The list of the needed parameters and their expected associated data type is retrieved by calling "getScmAdapterParameterNamesWithType(adapterType)".
Returns:
  The GUID of the newly added external system.
Throws:
  `InvalidSessionFault` - When the specified session id is invalid.
  `NoSuchObjectFault` - If the adapter does not exist internally.
  `PermissionDeniedFault` - When the user has insufficient privileges.
  `SystemFault` - When wrong parameters are provided or an unexpected system error occurs.
Since:
  5.4

- ### getExternalSystem

  public ExternalSystemSoapDO getExternalSystem(String sessionId, String systemId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
  Returns information associated with an external system integrated with TeamForge.
  Specified by:
    `getExternalSystem` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the user session id.
    `systemId` - The GUID of the external system.
  Returns:
    the external system data.
  Throws:
    `InvalidSessionFault` - When the specified session id is invalid.
    `NoSuchObjectFault` - If the external system does not exist internally.
    `PermissionDeniedFault` - When the user has insufficient privileges.
    `SystemFault` - When wrong parameters are provided or an unexpected system error occurs.
  Since:
    7.1

- ### getExternalSystemList

  public ExternalSystemSoapList getExternalSystemList(String sessionId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault
  Gets a list of external scm systems integrated with TeamForge.
  Specified by:
    `getExternalSystemList` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the user session id.
  Returns:
    the external system list.
  Throws:
    `InvalidSessionFault` - When the specified session id is invalid.
    `PermissionDeniedFault` - When the user has insufficient privileges.
    `SystemFault` - When wrong parameters are provided or an unexpected system error occurs.
  Since:
    8.0

- ### getExternalSystemList2

  public ExternalSystem2SoapList getExternalSystemList2(String sessionId) throws InvalidSessionFault, PermissionDeniedFault, SystemFault
  Gets a list of external scm systems integrated with TeamForge.
  Specified by:
    `getExternalSystemList2` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the user session id.
  Returns:
    the external system list.
  Throws:
    `InvalidSessionFault` - When the specified session id is invalid.
    `PermissionDeniedFault` - When the user has insufficient privileges.
    `SystemFault` - When wrong parameters are provided or an unexpected system error occurs.
  Since:
    18.2

- ### setExternalSystemData

  public void setExternalSystemData(String sessionId, ExternalSystemSoapDO systemData) throws NoSuchObjectFault, SystemFault, InvalidSessionFault, PermissionDeniedFault, InvalidOperationFault
  Updates information associated with an external system integrated with TeamForge.
  Specified by:
    `setExternalSystemData` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the user session id.
    `systemData` - the external system data to be updated
  Throws:
    `NoSuchObjectFault` - If the external system does not exist internally.
    `SystemFault` - When wrong parameters are provided or an unexpected system error occurs.
    `InvalidSessionFault` - When the specified session id is invalid.
    `PermissionDeniedFault` - When the user has insufficient privileges.
    `InvalidOperationFault` - When an attempt is made to set different adapterName or adapterCatrogory.
  Since:
    7.1

- ### isAdapterTypeValid

  public static boolean isAdapterTypeValid(com.vasoftware.sf.server.types.NamedValue[] adapterTypeParams, String givenParamName, String givenParamValue)
  Validates whether the value of providedParam is one of the adapters type.
  Parameters:
    `adapterTypeParams` - is the collection of adapter type parameters.
    `givenParamName` - is a provided parameter by the SOAP client.
    `givenParamValue` -
  Returns:
    true if the given providedParam is on the list of adapterTypeParams.

- ### getCommitId

  public String getCommitId(String sessionId, String revision, String externalSystemId, String repoPath) throws InvalidSessionFault, PermissionDeniedFault, SystemFault, NoSuchObjectFault
  Returns a commit Id corresponding to an commit version.
  Specified by:
    `getCommitId` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - User session id.
    `revision` - The Revision Number
    `externalSystemId` - External system id.
    `repoPath` - Repository path.
  Returns:
    The commit Id
  Throws:
    `InvalidSessionFault` - when the session is invalid (expired / time out)
    `PermissionDeniedFault` - when the user does not have read access.
    `SystemFault` - when an unexpected system error occurs.
    `NoSuchObjectFault` - when the specified repository id is invalid.
  Since:
    6.0

- ### getReplicableScmExternalSystemList

  @Deprecated public ReplicableScmExternalSystemSoapList getReplicableScmExternalSystemList(String sessionId) throws SystemFault, InvalidSessionFault
  Deprecated.
  since 8.1 as this call does not return replicable Git external systems. To get the all replicable external systems use getReplicableScmExternalSystemList2 with `null` parameter.
  Lists the replicable external systems. That is, the list of SvnEdge external systems that supports replication.
  Specified by:
    `getReplicableScmExternalSystemList` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - User session id.
  Returns:
    List of the replicable external systems
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
  Since:
    6.1

- ### getReplicableScmExternalSystemList2

  public ReplicableScmExternalSystemSoapList getReplicableScmExternalSystemList2(String sessionId, String adapterName) throws SystemFault, InvalidSessionFault
  Lists the replicable external systems for all adapter types or for a given adapter type.
  Specified by:
    `getReplicableScmExternalSystemList2` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - User session id.
    `adapterName` - the adapter name or `null` to list replicable systems for all adapters.
  Returns:
    List of the replicable external systems.
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
  Since:
    8.1

- ### getReplicatedRepositoryList

  public ReplicatedRepositorySoapList getReplicatedRepositoryList(String sessionId, String masterRepositoryId) throws InvalidSessionFault, PermissionDeniedFault, NoSuchObjectFault, SystemFault
  Lists replicated repositories of the specified SCM master.
  Specified by:
    `getReplicatedRepositoryList` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `masterRepositoryId` - the repository Id for which to find replicas
  Returns:
    a list of ReplicatedRepository
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `NoSuchObjectFault` - when the specified master repository id is invalid.
    `PermissionDeniedFault` - when the user has insufficient privileges.
    `SystemFault` - when an unexpected system error occurs.
  Since:
    6.1

- ### getReplicaListForExternalSystem

  public ReplicaServerSoapList getReplicaListForExternalSystem(String sessionId, String externalSystemId, boolean approvedOnly) throws InvalidSessionFault, IllegalArgumentFault
  Returns list of replicas for given external system id.
  Specified by:
    `getReplicaListForExternalSystem` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the user session id.
    `externalSystemId` - The GUID of the external system.
    `approvedOnly` - The GUID of the external system.
  Returns:
    replicas list.
  Throws:
    `IllegalArgumentFault` - When wrong parameters are provided.
    `InvalidSessionFault` - When the specified session id is invalid.
  Since:
    8.1

- ### getReplicaRepositoryList

  public ReplicaRepositorySoapList getReplicaRepositoryList(String sessionId, String replicaId) throws NoSuchObjectFault, InvalidSessionFault, IllegalArgumentFault
  Lists repositories of the specified replica.
  Specified by:
    `getReplicaRepositoryList` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `replicaId` - the replica Id for which to find repositories
  Returns:
    a list of ReplicatedRepository
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `NoSuchObjectFault` - when the specified replica id is invalid.
    `IllegalArgumentFault`
  Since:
    8.1

- ### replicateRepository

  public void replicateRepository(String sessionId, String repositoryId, String replicaId) throws IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, SystemFault, PermissionDeniedFault
  Initiates the process of replicating of a given repository on a given replica.
  Specified by:
    `replicateRepository` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `repositoryId` - the id of the given repository
    `replicaId` - the id of the given replica
  Throws:
    `IllegalArgumentFault` - when the repositoryId or replicaId are null or empty
    `InvalidSessionFault` - when the specified session id is invalid.
    `NoSuchObjectFault` - when the specified master repository or replica are not valid
    `SystemFault` - if replica command creation fails
    `PermissionDeniedFault` - if the user has no permission
  Since:
    8.1

- ### removeRepositoryFromReplica

  public void removeRepositoryFromReplica(String sessionId, String repositoryId, String replicaId) throws IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, SystemFault, PermissionDeniedFault
  Remove process of replicating of a given repository on a given replica.
  Specified by:
    `removeRepositoryFromReplica` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `repositoryId` - the id of the given repository
    `replicaId` - the id of the given replica
  Throws:
    `IllegalArgumentFault` - when the repositoryId or replicaId are null or empty
    `InvalidSessionFault` - when the specified session id is invalid.
    `NoSuchObjectFault` - when the specified master repository or replica are not valid
    `SystemFault` - if replica command creation fails
    `PermissionDeniedFault` - if the user has no permission
  Since:
    8.1

- ### getAuthorizedKeysForUser

  public String getAuthorizedKeysForUser(String sessionId, String username) throws RemoteException
  Get all authorized keys for a user with a given username.
  Specified by:
    `getAuthorizedKeysForUser` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `username` - name of the user
  Returns:
    Authorized keys, separated by '\n' character. Returns empty string if the user has no keys or cannot be found.
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `PermissionDeniedFault` - when the user has insufficient privileges (the sessionId is not of a site admin).
    `SystemFault` - when an unexpected system error occurs.
    `InvalidSessionFault` - when the specified session id is invalid.
    `PermissionDeniedFault` - when the user has insufficient privileges (the sessionId is not of a site admin).
    `SystemFault` - when an unexpected system error occurs.
    `RemoteException`
  Since:
    6.2

- ### getAuthorizedKeys

  public String getAuthorizedKeys(String sessionId) throws RemoteException
  Get all authorized keys for calling user.
  Specified by:
    `getAuthorizedKeys` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
  Returns:
    Authorized keys, separated by '\n' character. Returns empty string if the user has no keys.
  Throws:
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
    `RemoteException`
  Since:
    6.2

- ### setAuthorizedKeys

  public void setAuthorizedKeys(String sessionId, String authorizedKeys) throws RemoteException
  Set authorized keys for calling user. Note: overwrites previous keys, if any.
  Specified by:
    `setAuthorizedKeys` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `authorizedKeys` - the string containing authorized keys, separated by '\n' character.
  Throws:
    `com.collabnet.ctf.common.exceptions.InvalidUsernameException` - when username is invalid
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
    `RemoteException`
  Since:
    6.2

- ### setAuthorizedKeysForUser

  public void setAuthorizedKeysForUser(String sessionId, String username, String authorizedKeys) throws RemoteException
  Set authorized keys for given user. Note: overwrites previous keys, if any. Recommended to use this method in place of setAuthorizedKeys(String sessionId, String username, String authorizedKeys).
  Specified by:
    `setAuthorizedKeysForUser` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `username` - username for whom the authorized keys to be set
    `authorizedKeys` - the string containing authorized keys, separated by '\n' character.
  Throws:
    `RemoteException` - when username is invalid
  Since:
    7.2

- ### setAuthorizedKeys

  @Deprecated public void setAuthorizedKeys(String sessionId, String username, String authorizedKeys) throws InvalidSessionFault, SystemFault, PermissionDeniedFault, NoSuchObjectFault
  Deprecated.
  from 7.2.0.0 in favour of setAuthorizedKeysForUser() which does the same.
  Set authorized keys for given user. Note: overwrites previous keys, if any. Recommended to use setAuthorizedKeysForUser() in place of this.
  Specified by:
    `setAuthorizedKeys` in interface `IScmAppSoap`
  Parameters:
    `sessionId` - the session key
    `username` - username for whom the authorized keys to be set
    `authorizedKeys` - the string containing authorized keys, separated by '\n' character.
  Throws:
    `com.collabnet.ctf.common.exceptions.InvalidUsernameException` - when username is invalid
    `InvalidSessionFault` - when the specified session id is invalid.
    `SystemFault` - when an unexpected system error occurs.
    `PermissionDeniedFault` - when the user has insufficient privileges.
    `NoSuchObjectFault` - when the specified username is invalid.
  Since:
    6.2