Package com.collabnet.ce.soap60.webservices.discussion

# Class DiscussionAppSoap

java.lang.Object
com.collabnet.ce.soap60.webservices.WebService
com.collabnet.ce.soap60.webservices.discussion.DiscussionAppSoap

All Implemented Interfaces:
  `IDiscussionAppSoap`

public class DiscussionAppSoap extends WebService implements IDiscussionAppSoap
Provides SOAP services for managing forums, topics and posts.

Change History
Version 6.2

- createForum2 New parameters messageSize, captcha, web posting, email posting and email monitoring, added in 6.2
- createPrivateForum2 New parameters messageSize, captcha, web posting, email posting and email monitoring, added in 6.2
- getForumList2 Added message size, captcha, web posting, email posting and email monitoring to Forum2SoapRow

- createTopic2 New method, to attach multiple files while createTopic, added in 6.2
- createPost2 New method, to attach multiple files while createPost, added in 6.2

Version 6.1

- createTopic New parameters, attachment files and cc recipients, added in 6.1
- createPost New parameters, attachment files and cc recipients, added in 6.1

Version 6.0.1

- createForum New parameter replyTo added in 6.0.1
- createPrivateForum New parameter replyTo added in 6.0.1

Version 6.0

- createForum: New operation added in 6.0
- createPrivateForum: New operation added in 6.0

Version 4.4: No changes.

Since:
  4.1

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DiscussionAppSoap()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ForumSoapDO`
  `createForum(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize)`
  Creates a discussion forum
  `Forum2SoapDO`
  `createForum2(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize, int emailPosting, int emailMonitoring, int webPosting, String captcha)`
  Creates a public discussion forum
  `PostSoapDO`
  `createPost(String sessionId, String parentPostId, String title, String message, String attachmentFileName, String attachmentMimeType, String attachmentFileId, String ccRecipients)`
  Posts a new message to the discussion topic.
  `PostSoapDO`
  `createPost2(String sessionId, String parentPostId, String title, String message, AttachmentSoapDO[] attachments, String ccRecipients)`
  Posts a new message to the discussion topic with multiple attachment support.
  `ForumSoapDO`
  `createPrivateForum(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize)`
  Creates a discussion forum
  `Forum2SoapDO`
  `createPrivateForum2(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize, int emailPosting, int emailMonitoring, int webPosting, String captcha)`
  Creates a private discussion forum
  `TopicSoapDO`
  `createTopic(String sessionId, String forumId, String title, String message, String attachmentFileName, String attachmentMimeType, String attachmentFileId, String ccRecipients)`
  Creates a new discussion topic within a specified forum but unlike `createTopic`, this method lets you set the attachment files and cc email values at creation time and returns a TopicSoapData Object
  `TopicSoapDO`
  `createTopic2(String sessionId, String forumId, String title, String message, AttachmentSoapDO[] attachments, String ccRecipients)`
  Creates a new discussion topic within a specified forum but unlike `createTopic`, this method lets you set the attachment files and cc email values at creation time and returns a TopicSoapData Object
  `void`
  `deletePost(String sessionId, String postId)`
  Deletes the specified post.
  `void`
  `deleteTopic(String sessionId, String topicId)`
  Deletes the specified topic.
  `PostSoapList`
  `findPosts(String sessionId, String queryString, String projectId, boolean searchAttachments)`
  Finds a list of posts matching a search string.
  `ForumSoapList`
  `getForumList(String sessionId, String projectId)`
  Returns a list of forums within a specified project.
  `Forum2SoapList`
  `getForumList2(String sessionId, String projectId)`
  Returns a list of forums within a specified project.
  `PostSoapList`
  `getPostList(String sessionId, String topicId)`
  Returns a list of posts associated with a specified topic.
  `TopicSoapList`
  `getTopicList(String sessionId, String forumId)`
  Gets a list of all topics in a forum.

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

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

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

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

- ## Constructor Details

  - ### DiscussionAppSoap

    public DiscussionAppSoap()

- ## Method Details

  - ### getForumList

    public ForumSoapList getForumList(String sessionId, String projectId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Returns a list of forums within a specified project.
    Specified by:
      `getForumList` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - The user session id
      `projectId` - The id of the project
    Returns:
      The list of forums 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

  - ### getForumList2

    public Forum2SoapList getForumList2(String sessionId, String projectId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Returns a list of forums within a specified project. The forumRow contains additional details such as captcha, webPosting, emailPosting, emailMonitoring and messageSize settings for the forum.
    Specified by:
      `getForumList2` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - The user session id
      `projectId` - The id of the project
    Returns:
      The list of forums 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:
      6.2

  - ### createTopic

    public TopicSoapDO createTopic(String sessionId, String forumId, String title, String message, String attachmentFileName, String attachmentMimeType, String attachmentFileId, String ccRecipients) throws InvalidSessionFault, NoSuchObjectFault, SystemFault, IllegalArgumentFault, PermissionDeniedFault
    Creates a new discussion topic within a specified forum but unlike `createTopic`, this method lets you set the attachment files and cc email values at creation time and returns a TopicSoapData Object
    Specified by:
      `createTopic` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `forumId` - The id of the forum in which to create a topic.
      `title` - The topic title
      `message` - The content for the first post of this topic
      `attachmentFileName` - Name of the attached file (or null)
      `attachmentMimeType` - Mime type of the attached file (or null)
      `attachmentFileId` - ID of the attached file (previously uploaded via *FileStorage service) or null
      `ccRecipients` - list of recipients to whom the mail should be cc'd
    Returns:
      the TopicSoapData Object
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `IllegalArgumentFault` - when one or more parameters are invalid.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.1

  - ### createTopic2

    public TopicSoapDO createTopic2(String sessionId, String forumId, String title, String message, AttachmentSoapDO[] attachments, String ccRecipients) throws InvalidSessionFault, NoSuchObjectFault, SystemFault, IllegalArgumentFault, PermissionDeniedFault
    Creates a new discussion topic within a specified forum but unlike `createTopic`, this method lets you set the attachment files and cc email values at creation time and returns a TopicSoapData Object
    Specified by:
      `createTopic2` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `forumId` - The id of the forum in which to create a topic.
      `title` - The topic title
      `message` - The content for the first post of this topic
      `attachments` - List of attachment Files.
      `ccRecipients` - list of recipients to whom the mail should be cc'd
    Returns:
      the TopicSoapData Object
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `IllegalArgumentFault` - when one or more parameters are invalid.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      6.2

  - ### deleteTopic

    public void deleteTopic(String sessionId, String topicId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Deletes the specified topic.
    Specified by:
      `deleteTopic` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `topicId` - The id of the topic to delete.
    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.
    Since:
      4.1

  - ### getTopicList

    public TopicSoapList getTopicList(String sessionId, String forumId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Gets a list of all topics in a forum.
    Specified by:
      `getTopicList` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - The user session id
      `forumId` - The id of the forum for which we want the topics
    Returns:
      The TopicSummarySoapList of all topics in the forum
    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.
    Since:
      4.1

  - ### createPost

    public PostSoapDO createPost(String sessionId, String parentPostId, String title, String message, String attachmentFileName, String attachmentMimeType, String attachmentFileId, String ccRecipients) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, IllegalArgumentFault, SystemFault
    Posts a new message to the discussion topic. with multiple file attachment support. It also lets you set the attachment files and cc email values at creation time and returns a PostSoapData Object.
    Specified by:
      `createPost` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - The user session id.
      `parentPostId` - Parent post to which this is a reply.
      `title` - Post title.
      `message` - Post message.
      `attachmentFileName` - Name of the attached file (or null)
      `attachmentMimeType` - Mime type of the attached file (or null)
      `attachmentFileId` - ID of the attached file (previously uploaded via *FileStorage service) or null
      `ccRecipients` - list of recipients to whom the mail should be cc'd
    Returns:
      Newly created post object data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified parent post id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `IllegalArgumentFault` - when one or more parameters are invalid.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.1

  - ### createPost2

    public PostSoapDO createPost2(String sessionId, String parentPostId, String title, String message, AttachmentSoapDO[] attachments, String ccRecipients) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, IllegalArgumentFault, SystemFault
    Posts a new message to the discussion topic with multiple attachment support. It also lets you set the attachment files and cc email values at creation time and returns a PostSoapData Object.
    Specified by:
      `createPost2` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - The user session id.
      `parentPostId` - Parent post to which this is a reply.
      `title` - Post title.
      `message` - Post message.
      `attachments` - List of attachment files.
      `ccRecipients` - list of recipients to whom the mail should be cc'd
    Returns:
      Newly created post object data.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified parent post id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `IllegalArgumentFault` - when one or more parameters are invalid.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      6.2

  - ### deletePost

    public void deletePost(String sessionId, String postId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, IllegalArgumentFault, SystemFault
    Deletes the specified post.
    Specified by:
      `deletePost` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `postId` - The id of the post to delete.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified object id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `IllegalArgumentFault` - when specified post id is the first post in a topic.
      `SystemFault` - when an unexpected system error occurs.
    Since:
      4.1

  - ### getPostList

    public PostSoapList getPostList(String sessionId, String topicId) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, SystemFault
    Returns a list of posts associated with a specified topic.
    Specified by:
      `getPostList` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `topicId` - Topic id.
    Returns:
      List of posts on this topic.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified topic id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      4.1

  - ### findPosts

    public PostSoapList findPosts(String sessionId, String queryString, String projectId, boolean searchAttachments) throws InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, IllegalArgumentFault, SearchQuerySyntaxFault, SystemFault
    Finds a list of posts matching a search string.
    Specified by:
      `findPosts` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id.
      `queryString` - Query string.
      `projectId` - The project in which to find posts. (if null, search all projects)
      `searchAttachments` - Whether to search attachments.
    Returns:
      List of posts matching search criteria.
    Throws:
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `IllegalArgumentFault` - when query string is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `SearchQuerySyntaxFault` - when the specified search query string is syntactically invalid.
      `SystemFault` - when an unexpected system level error occurs.
    Since:
      4.1

  - ### createForum

    public ForumSoapDO createForum(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize) throws SystemFault, IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, ObjectAlreadyExistsFault, InvalidForumTypeFault
    Creates a discussion forum
    Specified by:
      `createForum` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id
      `projectId` - the project in which the forum is to be created
      `listName` - name of the associated mailing list
      `forumName` - Name for the forum
      `description` - description of the forum
      `listEnabled` - is a mailing list enabled with this forum
      `prefix` - prefix to be added to the subject of all posts to this forum
      `footer` - footer to be appended to the bottom of every mail in this forum
      `forumType` - whether the forum should be moderated. Moderated -'MF'; Unmoderated - 'UF'
      `moderators` - The userId's for persons to be added as moderators for this forum.
      `trustedUsers` - The userId's for persons to be added as trusted for this forum.
      `replyTo` - The value of reply header for the post's mail in this forum. The following are available options: "REPLYTOSENDER" Add sender's mail address as replyto header "REPLYTOLIST" Add list name as replyto header "NOREPLYTO" Do not add replyto header "xxx@host.domain" Add the given email address as replyto header
      `messageSize` - threshold size (MB) of message content and attachment of any posts in a forum. Set 0 for unlimited message size.
    Returns:
      a data object of the created forum
    Throws:
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - thrown when the given parameters are invalid.
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when an object by this name already exists in the project.
      `InvalidForumTypeFault` - when type is other than MF or UF.
    Since:
      6.0

  - ### createForum2

    public Forum2SoapDO createForum2(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize, int emailPosting, int emailMonitoring, int webPosting, String captcha) throws SystemFault, IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, ObjectAlreadyExistsFault, InvalidForumTypeFault
    Creates a public discussion forum
    Specified by:
      `createForum2` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id
      `projectId` - the project in which the forum is to be created
      `listName` - name of the associated mailing list
      `forumName` - Name for the forum
      `description` - description of the forum
      `listEnabled` - is a mailing list enabled with this forum
      `prefix` - prefix to be added to the subject of all posts to this forum
      `footer` - footer to be appended to the bottom of every mail in this forum
      `forumType` - whether the forum should be moderated. Moderated -'MF'; Unmoderated - 'UF'
      `moderators` - The userId's for persons to be added as moderators for this forum.
      `trustedUsers` - The userId's for persons to be added as trusted for this forum.
      `replyTo` - The value of reply header for the post's mail in this forum. The following are available options: "REPLYTOSENDER" Add sender's mail address as replyto header "REPLYTOLIST" Add list name as replyto header "NOREPLYTO" Do not add replyto header "xxx@host.domain" Add the given email address as replyto header
      `messageSize` - threshold size (MB) of message content and attachment of any posts in a forum. Set 0 for unlimited message size.
      `emailPosting` - This will be ignored if mailing list is not enabled. The email posting setting for the forum, permissible values for this are: 0 - Allow only forum admins 1 - Users with roles and permissions 4 - All logged in users 5 - All known email addresses only 6 - Allow all site users and guests
      `emailMonitoring` - This will be ignored if mailing list is not enabled. The email monitoring setting for the forum, permissible values for this are: 0 - Allow only forum admins 1 - Users with roles and permissions 4 - All logged in users 5 - Allow all site users and guests
      `webPosting` - The web posting setting for the forum, permissible values for this are: 0 - Allow only forum admins 1 - Users with roles and permissions 2 - All logged in users 3 - Allow all site users and guests
      `captcha` - whether CAPTCHA to be enforced for all web posts, only for logged-out users or for nobody. Permissible values for this are: "AL" - Use CAPTCHA for all web posts "AN" - Use CAPTCHA for anonymous web posts only "NO" - Do not use CAPTCHA for any web posts
    Returns:
      a data object of the created forum
    Throws:
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - thrown when the given parameters are invalid.
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when an object by this name already exists in the project.
      `InvalidForumTypeFault` - when type is other than MF or UF.
    Since:
      6.2

  - ### createPrivateForum

    public ForumSoapDO createPrivateForum(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize) throws SystemFault, IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, ObjectAlreadyExistsFault, InvalidForumTypeFault
    Creates a discussion forum
    Specified by:
      `createPrivateForum` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id
      `projectId` - the project in which the forum is to be created
      `listName` - name of the associated mailing list
      `forumName` - Name for the forum
      `description` - description of the forum
      `listEnabled` - is a mailing list enabled with this forum
      `prefix` - prefix to be added to the subject of all posts to this forum
      `footer` - footer to be appended to the bottom of every mail in this forum
      `forumType` - whether the forum should be moderated. Moderated -'MF'; Unmoderated - 'UF'
      `moderators` - The userId's for persons to be added as moderators for this forum.
      `trustedUsers` - The userId's for persons to be added as trusted for this forum.
      `replyTo` - The value of reply header for the post's mail in this forum. The following are available options: "REPLYTOSENDER" Add sender's mail address as replyto header "REPLYTOLIST" Add list name as replyto header "NOREPLYTO" Do not add replyto header "xxx@host.domain" Add the given email address as replyto header
      `messageSize` - threshold size of message content and attachment of any posts in a forum
    Returns:
      a data object of the created forum
    Throws:
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - thrown when the given parameters are invalid.
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when an object by this name already exists in the project.
      `InvalidForumTypeFault` - when type is other than MF or UF.
    Since:
      6.0.1

  - ### createPrivateForum2

    public Forum2SoapDO createPrivateForum2(String sessionId, String projectId, String listName, String forumName, String description, boolean listEnabled, String prefix, String footer, String forumType, String[] moderators, String[] trustedUsers, String replyTo, int messageSize, int emailPosting, int emailMonitoring, int webPosting, String captcha) throws SystemFault, IllegalArgumentFault, InvalidSessionFault, NoSuchObjectFault, PermissionDeniedFault, ObjectAlreadyExistsFault, InvalidForumTypeFault
    Creates a private discussion forum
    Specified by:
      `createPrivateForum2` in interface `IDiscussionAppSoap`
    Parameters:
      `sessionId` - User session id
      `projectId` - the project in which the forum is to be created
      `listName` - name of the associated mailing list
      `forumName` - Name for the forum
      `description` - description of the forum
      `listEnabled` - is a mailing list enabled with this forum
      `prefix` - prefix to be added to the subject of all posts to this forum
      `footer` - footer to be appended to the bottom of every mail in this forum
      `forumType` - whether the forum should be moderated. Moderated -'MF'; Unmoderated - 'UF'
      `moderators` - The userId's for persons to be added as moderators for this forum.
      `trustedUsers` - The userId's for persons to be added as trusted for this forum.
      `replyTo` - The value of reply header for the post's mail in this forum. The following are available options: "REPLYTOSENDER" Add sender's mail address as replyto header "REPLYTOLIST" Add list name as replyto header "NOREPLYTO" Do not add replyto header "xxx@host.domain" Add the given email address as replyto header
      `messageSize` - threshold size of message content and attachment of any posts in a forum
      `emailPosting` - This will be ignored if mailing list is not enabled. The email posting setting for the forum, the permissible values are: 0 - Allow only forum admins 1 - Users with roles and permissions 4 - All logged in users 5 - All known email addresses only
      `emailMonitoring` - This will be ignored if mailing list is not enabled. The email monitoring setting for the forum, the permissible values are: 0 - Allow only forum admins 1 - Users with roles and permissions 4 - All logged in users
      `webPosting` - The web posting setting for the forum, permissible values for this are: 0 - Allow only forum admins 1 - Users with roles and permissions
      `captcha` - whether CAPTCHA to be enforced for all web posts, only for logged-out users or for nobody. Permissible values for this are: "AL" - Use CAPTCHA for all web posts "AN" - Use CAPTCHA for anonymous web posts only "NO" - Do not use CAPTCHA for any web posts
    Returns:
      a data object of the created forum
    Throws:
      `SystemFault` - when an unexpected system level error occurs.
      `IllegalArgumentFault` - thrown when the given parameters are invalid.
      `InvalidSessionFault` - when the specified session id is invalid.
      `NoSuchObjectFault` - when the specified project id is invalid.
      `PermissionDeniedFault` - when the user has insufficient privileges.
      `ObjectAlreadyExistsFault` - when an object by this name already exists in the project.
      `InvalidForumTypeFault` - when type is other than MF or UF.
    Since:
      6.2