Package com.collabnet.ce.soap60.webservices.tag

# Interface ITagAppSoap

All Known Implementing Classes:
  `TagAppSoapMockStub`, `TagAppSoapStub`

public interface ITagAppSoap
Provides SOAP services for tag objects

Since:
  17.4

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TagSoapDO`
  `createTag(String sessionId, String projectId, String name, String description)`
  Creates a tag in the specified project
  `void`
  `deleteTag(String sessionId, String tagId)`
  Deletes a tag
  `TagSoapList`
  `getObjectTags(String sessionId, String objectId)`
  Gets object tags
  `TagSoapDO`
  `getTag(String sessionId, String tagId)`
  Gets tag data for the specified tag id
  `TagSoapDO`
  `getTagByName(String sessionId, String projectId, String tagName)`
  Gets tag data by name in the specified project
  `TagSoapList`
  `listTags(String sessionId, String projectId)`
  Gets the list of tags defined for the given project
  `TagSoapList`
  `setObjectTags(String sessionId, String objectId, String[] tagIds)`
  Sets object tags
  `TagSoapDO`
  `updateTag(String sessionId, String tagId, String name, String description)`
  Updates a tag's name and description

- ## Method Details

  - ### listTags

    TagSoapList listTags(String sessionId, String projectId) throws RemoteException
    Gets the list of tags defined for the given project
    Parameters:
      `sessionId` - User session id
      `projectId` - Project identifier.
    Returns:
      List of tags.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the project id is invalid.
      `PermissionDeniedFault` - when the current user does not have permission to view tags.
      `SystemFault` - when an unexpected system level error occurs.
      `RemoteException`
    Since:
      17.4

  - ### getTag

    TagSoapDO getTag(String sessionId, String tagId) throws RemoteException
    Gets tag data for the specified tag id
    Parameters:
      `sessionId` - User session id
      `tagId` - Tag id
    Returns:
      Tag data
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to view tags
      `NoSuchObjectFault` - when tag id is not valid
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`
    Since:
      17.4

  - ### getTagByName

    TagSoapDO getTagByName(String sessionId, String projectId, String tagName) throws RemoteException
    Gets tag data by name in the specified project
    Parameters:
      `sessionId` - User session id
      `projectId` - Project identifier
      `tagName` - Tag name
    Returns:
      Tag data
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to view tags
      `NoSuchObjectFault` - when project id/tag name is not valid
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`
    Since:
      17.4

  - ### createTag

    TagSoapDO createTag(String sessionId, String projectId, String name, String description) throws RemoteException
    Creates a tag in the specified project
    Parameters:
      `sessionId` - User session id
      `projectId` - Project identifier
      `name` - tag's name
      `description` - tag's description
    Returns:
      New tag's data
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to create tags
      `NoSuchObjectFault` - when project id is not valid
      `IllegalArgumentFault` - when new tag name is not valid
      `ObjectAlreadyExistsFault` - when another tag exists by the new name
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`

  - ### updateTag

    TagSoapDO updateTag(String sessionId, String tagId, String name, String description) throws RemoteException
    Updates a tag's name and description
    Parameters:
      `sessionId` - User session id
      `tagId` - Tag id
      `name` - Tag's new name
      `description` - Tag's new description
    Returns:
      Updated tag data
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to edit tags
      `NoSuchObjectFault` - when tag id is not valid
      `VersionMismatchFault` - when there is a version mismatch
      `IllegalArgumentFault` - when new tag name is not valid
      `ObjectAlreadyExistsFault` - when another tag exists by the new name
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`

  - ### deleteTag

    void deleteTag(String sessionId, String tagId) throws RemoteException
    Deletes a tag
    Parameters:
      `sessionId` - User session id
      `tagId` - Tag id
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to delete tags
      `NoSuchObjectFault` - when tag id is not valid
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`
    Since:
      17.4

  - ### getObjectTags

    TagSoapList getObjectTags(String sessionId, String objectId) throws RemoteException
    Gets object tags
    Parameters:
      `sessionId` - User session id
      `objectId` - Object id (artifact or document)
    Returns:
      List of tags for the object
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to view the specified object
      `NoSuchObjectFault` - when object id is not valid
      `InvalidOperationFault` - when object id does not represent an artifact or a document
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`

  - ### setObjectTags

    TagSoapList setObjectTags(String sessionId, String objectId, String[] tagIds) throws RemoteException
    Sets object tags
    Parameters:
      `sessionId` - User session id
      `objectId` - Object id (artifact or document)
      `tagIds` - Array of tag ids (null or empty will remove the existing tags)
    Returns:
      Updated list of tags for the object
    Throws:
      `InvalidSessionFault` - when session id is not valid
      `PermissionDeniedFault` - when current user does not have permission to edit the specified object
      `NoSuchObjectFault` - when object/tag id is not valid
      `IllegalArgumentFault` - when number of tags exceeds allowed limit (10)
      `InvalidOperationFault` - when object id does not represent an artifact or a document
      `SystemFault` - when an unexpected system level exception occurs.
      `RemoteException`