[
  {
    "comment": "/**\n * @module\n * @name ConversationsService\n * @version 2.42.0-lts.4 - Documentation generated on 2026/04/24T11:38:22.926Z\n * @public\n * @description\n * This module is the basic module for handling conversations in Rainbow. In Rainbow, conversations are the way to get in touch with someone or something (i.e. a Rainbow contact, a external phone number, a connected thing, ...) so a conversation is the \"long tail\" of communication between you and someone or something else like a bubble. <br>\n * A Rainbow conversation by default supports sending and receiving Instant Messages with a single recipient (one-to-one conversation) or with several persons (bubble). Using the FileStorage service, you can share files in conversations. <br>\n * <br>\n * The main methods and events proposed in that service allow to: <br>\n *   - Create or close a Rainbow conversation (one-to-one of bubble), <br>\n *   - Get all conversations or get a conversation by Id, bubbleID or bubbleJid <br>\n *   - Retrieve all information linked to that conversation, <br>\n * <br>\n *\n */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 28,
      "columnno": 0,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "kind": "module",
    "name": "ConversationsService",
    "version": "2.42.0-lts.4 - Documentation generated on 2026/04/24T11:38:22.926Z",
    "access": "public",
    "description": "This module is the basic module for handling conversations in Rainbow. In Rainbow, conversations are the way to get in touch with someone or something (i.e. a Rainbow contact, a external phone number, a connected thing, ...) so a conversation is the \"long tail\" of communication between you and someone or something else like a bubble. <br>\nA Rainbow conversation by default supports sending and receiving Instant Messages with a single recipient (one-to-one conversation) or with several persons (bubble). Using the FileStorage service, you can share files in conversations. <br>\n<br>\nThe main methods and events proposed in that service allow to: <br>\n  - Create or close a Rainbow conversation (one-to-one of bubble), <br>\n  - Get all conversations or get a conversation by Id, bubbleID or bubbleJid <br>\n  - Retrieve all information linked to that conversation, <br>\n<br>",
    "longname": "module:ConversationsService",
    "$longname": "ConversationsService",
    "$kind": "module"
  },
  {
    "comment": "",
    "meta": {
      "range": [
        3259,
        4624
      ],
      "filename": "ConversationsService.js",
      "lineno": 58,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {
        "id": "astnode100000308",
        "name": "ConversationsService_1",
        "type": "MethodDefinition",
        "paramnames": [
          "_core",
          "_eventEmitter",
          "_logger",
          "_startConfig",
          "_conversationsRetrievedFormat",
          "_nbMaxConversations",
          "_autoLoadConversations",
          "_autoLoadConversationHistory"
        ]
      },
      "vars": {
        "": null
      }
    },
    "undocumented": true,
    "name": "ConversationsService_1",
    "longname": "module:ConversationsService.ConversationsService_1",
    "kind": "class",
    "memberof": "module:ConversationsService",
    "scope": "static",
    "params": [],
    "$longname": "ConversationsService.ConversationsService_1",
    "$kind": "constructor"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method ackAllMessages\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    Mark all unread messages in the conversation as read. <br>\n     * @param {string} conversationDbId ID of the conversation (dbId field)\n     * @param {boolean} maskRead=false if true Im won't be shown as read on peer conversation side. Default value : false\n     * @async\n     * @return {Promise<Conversation[]>}\n     * @fulfil {Conversation[]} - Array of Conversation object\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 314,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Conversation[]} - Array of Conversation object",
        "value": "{Conversation[]} - Array of Conversation object"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "ackAllMessages",
    "scope": "instance",
    "description": "Mark all unread messages in the conversation as read. <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "ID of the conversation (dbId field)",
        "name": "conversationDbId"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "if true Im won't be shown as read on peer conversation side. Default value : false",
        "name": "maskRead"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Array.<Conversation>>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#ackAllMessages",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#ackAllMessages",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method cleanConversations\n     * @category CONVERSATIONS\n     * @instance\n     * @async\n     * @description\n     *    Allows to clean openned conversations. It keep openned the maxConversations last modified conversations. If maxConversations is not defined then keep the last 15 conversations. <br>\n     * @return {Promise<any>} the result of the deletion.\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 2133,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "cleanConversations",
    "scope": "instance",
    "async": true,
    "description": "Allows to clean openned conversations. It keep openned the maxConversations last modified conversations. If maxConversations is not defined then keep the last 15 conversations. <br>",
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<any>"
          ]
        },
        "description": "the result of the deletion."
      }
    ],
    "longname": "module:ConversationsService#cleanConversations",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#cleanConversations",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method closeConversation\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Close a conversation <br>\n     *    This method returns a promise <br>\n     * @param {Conversation} conversation The conversation to close\n     * @async\n     * @return {Promise}\n     * @fulfil {} Return nothing in case success\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 2062,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{} Return nothing in case success",
        "value": "{} Return nothing in case success"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "closeConversation",
    "scope": "instance",
    "description": "Close a conversation <br>\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to close",
        "name": "conversation"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#closeConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#closeConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n     *\n     * @public\n     * @since 1.67.0\n     * @nodered true\n     * @method deleteAllMessageInOneToOneConversation\n     * @category MESSAGES\n     * @instance\n     * @async\n     * @description\n     *   Delete all messages for the connected user on a one to one conversation. <br>\n     * @param {Conversation} conversation The conversation object\n     * @return {Message} - message object with updated replaceMsgs property\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1198,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "since": "1.67.0",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "deleteAllMessageInOneToOneConversation",
    "scope": "instance",
    "async": true,
    "description": "Delete all messages for the connected user on a one to one conversation. <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation object",
        "name": "conversation"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Message"
          ]
        },
        "description": "- message object with updated replaceMsgs property"
      }
    ],
    "longname": "module:ConversationsService#deleteAllMessageInOneToOneConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#deleteAllMessageInOneToOneConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method deleteConversationBookmark\n     * @instance\n     * @category MESSAGES\n     * @async\n     * @since 2.21.0\n     * @return {Object} The result\n     *\n     *\n     * | Champ | Type | Description |\n     * | --- | --- | --- |\n     * | status | String | Status message. |\n     * | data | Object\\[\\] | No data (empty Array) |\n     *\n     * @description\n     *          This API can be used to set or replace a bookmarked message in a conversation. This API can only be used by user himself. </br>\n     * @param {string} userId User unique identifier.\n     * @param {string} conversationId conversation unique identifier (the dbId property in Conversation).\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1454,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "deleteConversationBookmark",
    "scope": "instance",
    "async": true,
    "since": "2.21.0",
    "returns": [
      {
        "type": {
          "names": [
            "Object"
          ]
        },
        "description": "The result\n\n\n| Champ | Type | Description |\n| --- | --- | --- |\n| status | String | Status message. |\n| data | Object\\[\\] | No data (empty Array) |"
      }
    ],
    "description": "This API can be used to set or replace a bookmarked message in a conversation. This API can only be used by user himself. </br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "User unique identifier.",
        "name": "userId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "conversation unique identifier (the dbId property in Conversation).",
        "name": "conversationId"
      }
    ],
    "longname": "module:ConversationsService#deleteConversationBookmark",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#deleteConversationBookmark",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @since 1.58\n     * @nodered true\n     * @method deleteMessage\n     * @category MESSAGES\n     * @instance\n     * @async\n     * @description\n     *    Delete a message by sending an empty string in a correctedMessage <br>\n     * @param {Conversation} conversation The conversation object\n     * @param {string} messageId The id of the message to be deleted\n     * @param {DataStoreType} p_messagesDataStore=undefined used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\n     * DataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\n     * DataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\n     * DataStoreType.StoreTwinSide The messages are fully stored.</br>\n     * DataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\n     * DataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\n     * However a sender may want to indicate that a message is worth storing even though it might not match those rules\n     * (e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.</br>\n     * @return {Message} - message object with updated replaceMsgs property\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1160,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "since": "1.58",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "deleteMessage",
    "scope": "instance",
    "async": true,
    "description": "Delete a message by sending an empty string in a correctedMessage <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation object",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "The id of the message to be deleted",
        "name": "messageId"
      },
      {
        "type": {
          "names": [
            "DataStoreType"
          ]
        },
        "description": "used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\nDataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\nDataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\nDataStoreType.StoreTwinSide The messages are fully stored.</br>\nDataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\nDataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\nHowever a sender may want to indicate that a message is worth storing even though it might not match those rules\n(e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.</br>",
        "name": "p_messagesDataStore"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Message"
          ]
        },
        "description": "- message object with updated replaceMsgs property"
      }
    ],
    "longname": "module:ConversationsService#deleteMessage",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#deleteMessage",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method deleteServerConversation\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Allows to delete a conversation on server (p2p and bubbles) <br>\n     * @param {string} conversationId of the conversation (id field)\n     * @return {Promise}\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1722,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "deleteServerConversation",
    "scope": "instance",
    "description": "Allows to delete a conversation on server (p2p and bubbles) <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "of the conversation (id field)",
        "name": "conversationId"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Promise"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#deleteServerConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#deleteServerConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n * @public\n     * @nodered true\n     * @method getAllConversations\n * @category CONVERSATIONS\n * @instance\n * @description\n *    Allows to get the list of existing conversations (p2p and bubbles) <br>\n * @return {Conversation[]} An array of Conversation object\n */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1559,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getAllConversations",
    "scope": "instance",
    "description": "Allows to get the list of existing conversations (p2p and bubbles) <br>",
    "returns": [
      {
        "type": {
          "names": [
            "Array.<Conversation>"
          ]
        },
        "description": "An array of Conversation object"
      }
    ],
    "longname": "module:ConversationsService#getAllConversations",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getAllConversations",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getBubbleConversation\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Get a conversation associated to a bubble (using the bubble ID to retrieve it) <br>\n     * @param {string} bubbleJid JID of the bubble (dbId field)\n     * @param {string} conversationDbId\n     * @param {Date} lastModification\n     * @param {string} lastMessageText\n     * @param {number} missedIMCounter\n     * @param {boolean} noError\n     * @param {boolean} muted\n     * @param {Date} creationDate\n     * @param {string} lastMessageSender\n     * @async\n     * @return {Promise<Conversation>}\n     * @fulfil {Conversation} - Conversation object or null if not found\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1943,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Conversation} - Conversation object or null if not found",
        "value": "{Conversation} - Conversation object or null if not found"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "getBubbleConversation",
    "scope": "instance",
    "description": "Get a conversation associated to a bubble (using the bubble ID to retrieve it) <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "JID of the bubble (dbId field)",
        "name": "bubbleJid"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "name": "conversationDbId"
      },
      {
        "type": {
          "names": [
            "Date"
          ]
        },
        "name": "lastModification"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "name": "lastMessageText"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "name": "missedIMCounter"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "name": "noError"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "name": "muted"
      },
      {
        "type": {
          "names": [
            "Date"
          ]
        },
        "name": "creationDate"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "name": "lastMessageSender"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Conversation>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#getBubbleConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getBubbleConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n     *\n     * @public\n     * @nodered true\n     * @method getContactsMessagesFromConversationId\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    To retrieve messages exchanged by contacts in a conversation. The result is the messages without event type. <br>\n     * @param {string} conversationId : Id of the conversation\n     * @param {boolean} useBulk=false Does the history should be retrieved with a bulk (group) of messages\n     * @async\n     * @return {Promise<any>}\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 744,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "getContactsMessagesFromConversationId",
    "scope": "instance",
    "description": "To retrieve messages exchanged by contacts in a conversation. The result is the messages without event type. <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": ": Id of the conversation",
        "name": "conversationId"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "Does the history should be retrieved with a bulk (group) of messages",
        "name": "useBulk"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<any>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#getContactsMessagesFromConversationId",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getContactsMessagesFromConversationId",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getConversationByBubbleId\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *      Get a bubble conversation by bubble id <br>\n     * @param {string} bubbleId Bubble id of the conversation to retrieve\n     * @return {Conversation} The conversation to retrieve\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1895,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getConversationByBubbleId",
    "scope": "instance",
    "description": "Get a bubble conversation by bubble id <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Bubble id of the conversation to retrieve",
        "name": "bubbleId"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to retrieve"
      }
    ],
    "longname": "module:ConversationsService#getConversationByBubbleId",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getConversationByBubbleId",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getConversationByBubbleJid\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *      Get a bubble conversation by bubble id <br>\n     * @param {string} bubbleJid Bubble jid of the conversation to retrieve\n     * @return {Conversation} The conversation to retrieve\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1919,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getConversationByBubbleJid",
    "scope": "instance",
    "description": "Get a bubble conversation by bubble id <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Bubble jid of the conversation to retrieve",
        "name": "bubbleJid"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to retrieve"
      }
    ],
    "longname": "module:ConversationsService#getConversationByBubbleJid",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getConversationByBubbleJid",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getConversationByDbId\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *      Get a conversation by db id <br>\n     * @param {string} dbId db id of the conversation to retrieve\n     * @return {Conversation} The conversation to retrieve\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1871,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getConversationByDbId",
    "scope": "instance",
    "description": "Get a conversation by db id <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "db id of the conversation to retrieve",
        "name": "dbId"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to retrieve"
      }
    ],
    "longname": "module:ConversationsService#getConversationByDbId",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getConversationByDbId",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getConversationById\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *      Get a p2p conversation by id <br>\n     * @param {string} conversationId Conversation id of the conversation to clean\n     * @return {Conversation} The conversation to retrieve\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1845,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getConversationById",
    "scope": "instance",
    "description": "Get a p2p conversation by id <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Conversation id of the conversation to clean",
        "name": "conversationId"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to retrieve"
      }
    ],
    "longname": "module:ConversationsService#getConversationById",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getConversationById",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @method getHistoryPage\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    Retrieve the remote history of a specific conversation. <br>\n     * @param {Conversation} conversation Conversation to retrieve\n     * @param {number} size=30 Maximum number of element to retrieve\n     * @param {boolean} useBulk=false Does the history should be retrieved with a bulk (group) of messages\n     * @async\n     * @return {Promise<Conversation[]>}\n     * @fulfil {Conversation[]} - Array of Conversation object\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 343,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "kind": "function",
    "name": "getHistoryPage",
    "scope": "instance",
    "tags": [
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Conversation[]} - Array of Conversation object",
        "value": "{Conversation[]} - Array of Conversation object"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "description": "Retrieve the remote history of a specific conversation. <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "Conversation to retrieve",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "defaultvalue": 30,
        "description": "Maximum number of element to retrieve",
        "name": "size"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "Does the history should be retrieved with a bulk (group) of messages",
        "name": "useBulk"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Array.<Conversation>>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#getHistoryPage",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getHistoryPage",
    "$kind": "method"
  },
  {
    "comment": "/**\n     *\n     * @public\n     * @nodered true\n     * @method getOneMessageFromConversationId\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    To retrieve ONE message archived on server exchanged in a conversation based on the specified message Id and the timestamp <br>\n     * <br>\n     *    Time stamp is mandatory - the search is performed using it. <br>\n     *    Once results are returned, we look for a message with the message id specified. <br>\n     * @param {string} conversationId : Id of the conversation\n     * @param {string} messageId : Id of the message\n     * @param {string} stamp : Time stamp. Time stamp is mandatory - the search is performed using it.\n     * @async\n     * @return {Promise<any>}\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 641,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "getOneMessageFromConversationId",
    "scope": "instance",
    "description": "To retrieve ONE message archived on server exchanged in a conversation based on the specified message Id and the timestamp <br>\n<br>\n   Time stamp is mandatory - the search is performed using it. <br>\n   Once results are returned, we look for a message with the message id specified. <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": ": Id of the conversation",
        "name": "conversationId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": ": Id of the message",
        "name": "messageId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": ": Time stamp. Time stamp is mandatory - the search is performed using it.",
        "name": "stamp"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<any>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#getOneMessageFromConversationId",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getOneMessageFromConversationId",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @method getS2SMessagesByConversationId\n     * @instance\n     * @category MESSAGES\n     * @description\n     *   Retrieve the remote history of a specific conversation. <br>\n     * @param {string} conversationId Id of conversation\n     * @param {number} limit Maximum number of messages to return (0 for counting)\n     * @param {number} before Get messages before this Epoch timestamp in microseconds\n     * @param {number} after Get messages after this Epoch timestamp in microseconds\n     * @returns {Promise<any>}\n     * @fulfil {Pomise<any>} - result object\n     * @category async     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 418,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "kind": "function",
    "name": "getS2SMessagesByConversationId",
    "scope": "instance",
    "tags": [
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Pomise<any>} - result object",
        "value": "{Pomise<any>} - result object"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "description": "Retrieve the remote history of a specific conversation. <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Id of conversation",
        "name": "conversationId"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "description": "Maximum number of messages to return (0 for counting)",
        "name": "limit"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "description": "Get messages before this Epoch timestamp in microseconds",
        "name": "before"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "description": "Get messages after this Epoch timestamp in microseconds",
        "name": "after"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<any>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#getS2SMessagesByConversationId",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getS2SMessagesByConversationId",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getS2SServerConversation\n     * @since 1.65\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    get a conversation from id on S2S API Server.<br>\n     *    This method returns a promise <br>\n     * @param {string} conversationId The id of the conversation to find.\n     * @return {Conversation} The conversation (created or retrieved) or null in case of error\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1671,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getS2SServerConversation",
    "since": "1.65",
    "scope": "instance",
    "description": "get a conversation from id on S2S API Server.<br>\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "The id of the conversation to find.",
        "name": "conversationId"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation (created or retrieved) or null in case of error"
      }
    ],
    "longname": "module:ConversationsService#getS2SServerConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getS2SServerConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method getTheNumberOfHitsOfASubstringInAllUsersconversations\n     * @instance\n     * @category CONVERSATIONS\n     * @async\n     * @since 2.21.0\n     * @return {Object} The result\n     *\n     *\n     * | Champ | Type | Description |\n     * | --- | --- | --- |\n     * | jid | String | the JID of the peer (P2P, BOT or ROOM) |\n     * | count | Integer | The number of hits |\n     *\n     * @description\n     *          This API can be used to search a text substring in all conversations for a given user from recent to old messages. </br>\n     *          For technical reasons, the same limit value applies on all peer to peer conversations but also on all room conversations. </br>\n     *          This API can only be used by user himself (i.e. userId of logged-in user). </br>\n     * @param {string} userId User unique identifier\n     * @param {string} substring Text to search\n     * @param {number} limit=100 Max number of matching messages count (expect up to 2x limit counts since the limit applies both to P2P and Room messages). Default value : 100\n     * @param {boolean} webinar=true Include webinars (excluded by default). Default value : false\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 692,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "getTheNumberOfHitsOfASubstringInAllUsersconversations",
    "scope": "instance",
    "async": true,
    "since": "2.21.0",
    "returns": [
      {
        "type": {
          "names": [
            "Object"
          ]
        },
        "description": "The result\n\n\n| Champ | Type | Description |\n| --- | --- | --- |\n| jid | String | the JID of the peer (P2P, BOT or ROOM) |\n| count | Integer | The number of hits |"
      }
    ],
    "description": "This API can be used to search a text substring in all conversations for a given user from recent to old messages. </br>\n         For technical reasons, the same limit value applies on all peer to peer conversations but also on all room conversations. </br>\n         This API can only be used by user himself (i.e. userId of logged-in user). </br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "User unique identifier",
        "name": "userId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Text to search",
        "name": "substring"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "defaultvalue": 100,
        "description": "Max number of matching messages count (expect up to 2x limit counts since the limit applies both to P2P and Room messages). Default value : 100",
        "name": "limit"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": true,
        "description": "Include webinars (excluded by default). Default value : false",
        "name": "webinar"
      }
    ],
    "longname": "module:ConversationsService#getTheNumberOfHitsOfASubstringInAllUsersconversations",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#getTheNumberOfHitsOfASubstringInAllUsersconversations",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method loadConversationHistory\n     * @instance\n     * @category MESSAGES\n     * @async\n     * @description\n     *    Retrieve the remote history of a specific conversation. <br>\n     * @param {Conversation} conversation Conversation to retrieve\n     * @param {string} pageSize=30 number of message in each page to retrieve messages.\n     * @param {boolean} useBulk=false Does the history should be retrieved with a bulk (group) of messages\n     * @async\n     * @return {Promise<Conversation[]>}\n     * @fulfil {Conversation[]} - Array of Conversation object\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 436,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Conversation[]} - Array of Conversation object",
        "value": "{Conversation[]} - Array of Conversation object"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "loadConversationHistory",
    "scope": "instance",
    "async": true,
    "description": "Retrieve the remote history of a specific conversation. <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "Conversation to retrieve",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "defaultvalue": 30,
        "description": "number of message in each page to retrieve messages.",
        "name": "pageSize"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "Does the history should be retrieved with a bulk (group) of messages",
        "name": "useBulk"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Array.<Conversation>>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#loadConversationHistory",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#loadConversationHistory",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method loadConversationHistoryAsync\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    Retrieve the remote history of a specific conversation asynchronously. The result only said that the request has succesfully started (or not).\n     *    </br>The result of the loading process is sent with the event `rainbow_onloadConversationHistoryCompleted`<br>\n     * @param {Conversation} conversation Conversation to retrieve\n     * @param {string} pageSize=30 number of message in each page to retrieve messages.\n     * @param {boolean} useBulk=false Does the history should be retrieved with a bulk (group) of messages\n     * @async\n     * @return {Promise<{code:number,label:string}>}\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 484,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "loadConversationHistoryAsync",
    "scope": "instance",
    "description": "Retrieve the remote history of a specific conversation asynchronously. The result only said that the request has succesfully started (or not).\n   </br>The result of the loading process is sent with the event `rainbow_onloadConversationHistoryCompleted`<br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "Conversation to retrieve",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "defaultvalue": 30,
        "description": "number of message in each page to retrieve messages.",
        "name": "pageSize"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "Does the history should be retrieved with a bulk (group) of messages",
        "name": "useBulk"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<{code:number, label:string}>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#loadConversationHistoryAsync",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#loadConversationHistoryAsync",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method openConversationForBubble\n     * @since 1.65\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Open a conversation to a bubble <br>\n     *    Create a new one if the conversation doesn't exist or reopen a closed conversation<br>\n     *    This method returns a promise <br>\n     * @param {Bubble} bubble The bubble involved in this conversation\n     * @return {Promise<Conversation>} The conversation (created or retrieved) or null in case of error\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1634,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "openConversationForBubble",
    "since": "1.65",
    "scope": "instance",
    "description": "Open a conversation to a bubble <br>\n   Create a new one if the conversation doesn't exist or reopen a closed conversation<br>\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "Bubble"
          ]
        },
        "description": "The bubble involved in this conversation",
        "name": "bubble"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Conversation>"
          ]
        },
        "description": "The conversation (created or retrieved) or null in case of error"
      }
    ],
    "longname": "module:ConversationsService#openConversationForBubble",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#openConversationForBubble",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method openConversationForContact\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Open a conversation to a contact <br>\n     *    Create a new one if the conversation doesn't exist or reopen a closed conversation<br>\n     *    This method returns a promise <br>\n     * @param {Contact} contact The contact involved in the conversation\n     * @return {Conversation} The conversation (created or retrieved) or null in case of error\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1593,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      }
    ],
    "kind": "function",
    "name": "openConversationForContact",
    "scope": "instance",
    "description": "Open a conversation to a contact <br>\n   Create a new one if the conversation doesn't exist or reopen a closed conversation<br>\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "Contact"
          ]
        },
        "description": "The contact involved in the conversation",
        "name": "contact"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation (created or retrieved) or null in case of error"
      }
    ],
    "longname": "module:ConversationsService#openConversationForContact",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#openConversationForContact",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method removeAllMessages\n     * @category MESSAGES\n     * @instance\n     * @description\n     *    Cleanup a conversation by removing all previous messages<br>\n     *\n     *    If conversation is P2P then the messages are deleted on Bot side.\n     *\n     *    This method returns a promise <br>\n     * @param {Conversation} conversation The conversation to clean\n     * @async\n     * @return {Promise}\n     * @fulfil {} Return nothing in case success\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1254,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{} Return nothing in case success",
        "value": "{} Return nothing in case success"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "removeAllMessages",
    "scope": "instance",
    "description": "Cleanup a conversation by removing all previous messages<br>\n\n   If conversation is P2P then the messages are deleted on Bot side.\n\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to clean",
        "name": "conversation"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#removeAllMessages",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#removeAllMessages",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method removeMessagesFromConversation\n     * @category MESSAGES\n     * @instance\n     * @description\n     *    Remove a specific range of message in a conversation<br>\n     *    This method returns a promise <br>\n     * @param {Conversation} conversation The conversation to clean\n     * @param {Date} date The date since when the message should be deleted.\n     * @param {number} number max number of messages to delete.\n     * @async\n     * @return {Promise}\n     * @fulfil {} Return nothing in case success\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1315,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{} Return nothing in case success",
        "value": "{} Return nothing in case success"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "removeMessagesFromConversation",
    "scope": "instance",
    "description": "Remove a specific range of message in a conversation<br>\n   This method returns a promise <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation to clean",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "Date"
          ]
        },
        "description": "The date since when the message should be deleted.",
        "name": "date"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "description": "max number of messages to delete.",
        "name": "number"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#removeMessagesFromConversation",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#removeMessagesFromConversation",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method sendConversationByEmail\n     * @category CONVERSATIONS\n     * @instance\n     * @description\n     *    Allows to get the specified conversation as mail attachment to the login email of the current user (p2p and bubbles) <br>\n     *    can be used to backup a conversation between a rainbow user and another one, or between a user and a room, <br>\n     *    The backup of the conversation is restricted to a number of days before now. By default the limit is 30 days. <br>\n     * @param {string} conversationDbId ID of the conversation (dbId field)\n     * @param {Array<string>} emails Allows to send the backup to users from an emails list.</BR> When one email matchs with a Rainbow user loginEmail, the mail sent is localized using this user's language.\n     * @param {string} lang=\"en\" Language of the email notification if user language value is not available (for no Rainbow users). Default value : en\n     * @async\n     * @return {Promise<Conversation[]>}\n     * @fulfil {Conversation[]} - Array of Conversation object\n     * @category async\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1776,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "CONVERSATIONS",
        "value": "CONVERSATIONS"
      },
      {
        "originalTitle": "fulfil",
        "title": "fulfil",
        "text": "{Conversation[]} - Array of Conversation object",
        "value": "{Conversation[]} - Array of Conversation object"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "async",
        "value": "async"
      }
    ],
    "kind": "function",
    "name": "sendConversationByEmail",
    "scope": "instance",
    "description": "Allows to get the specified conversation as mail attachment to the login email of the current user (p2p and bubbles) <br>\n   can be used to backup a conversation between a rainbow user and another one, or between a user and a room, <br>\n   The backup of the conversation is restricted to a number of days before now. By default the limit is 30 days. <br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "ID of the conversation (dbId field)",
        "name": "conversationDbId"
      },
      {
        "type": {
          "names": [
            "Array.<string>"
          ]
        },
        "description": "Allows to send the backup to users from an emails list.</BR> When one email matchs with a Rainbow user loginEmail, the mail sent is localized using this user's language.",
        "name": "emails"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "defaultvalue": "\"en\"",
        "description": "Language of the email notification if user language value is not available (for no Rainbow users). Default value : en",
        "name": "lang"
      }
    ],
    "async": true,
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<Array.<Conversation>>"
          ]
        }
      }
    ],
    "longname": "module:ConversationsService#sendConversationByEmail",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#sendConversationByEmail",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method sendCorrectedChatMessage\n     * @category MESSAGES\n     * @instance\n     * @description\n     *    Send a corrected message to a conversation <br>\n     *    This method works for sending messages to a one-to-one conversation or to a bubble conversation<br>\n     *    The new message has the property originalMessageReplaced which spot on original message // Warning this is a circular depend. <br>\n     *    The original message has the property replacedByMessage  which spot on the new message // Warning this is a circular depend. <br>\n     *    Note: The connected user must be the sender of the original message. <br>\n     * @param {Conversation} conversation\n     * @param {string} data The message string corrected\n     * @param {string} origMsgId The id of the original corrected message.\n     * @param {Object} content Allows to send alternative text base content\n     * @param {String} content.type The content message type `text/markdown`\n     * @param {String} content.message The content message body\n     * @param {string} urgency=std The urgence of the message. Value can be :   'high' Urgent message, 'middle' important message, 'low' information message, \"std' or null standard message\n     * @param {DataStoreType} p_messagesDataStore=undefined used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\n     * DataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\n     * DataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\n     * DataStoreType.StoreTwinSide The messages are fully stored.</br>\n     * DataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\n     * DataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\n     * However a sender may want to indicate that a message is worth storing even though it might not match those rules\n     * (e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.\n     * @returns {Promise<string>} message the message new correction message sent. Throw an error if the send fails.\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1029,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "sendCorrectedChatMessage",
    "scope": "instance",
    "description": "Send a corrected message to a conversation <br>\n   This method works for sending messages to a one-to-one conversation or to a bubble conversation<br>\n   The new message has the property originalMessageReplaced which spot on original message // Warning this is a circular depend. <br>\n   The original message has the property replacedByMessage  which spot on the new message // Warning this is a circular depend. <br>\n   Note: The connected user must be the sender of the original message. <br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "The message string corrected",
        "name": "data"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "The id of the original corrected message.",
        "name": "origMsgId"
      },
      {
        "type": {
          "names": [
            "Object"
          ]
        },
        "description": "Allows to send alternative text base content",
        "name": "content"
      },
      {
        "type": {
          "names": [
            "String"
          ]
        },
        "description": "The content message type `text/markdown`",
        "name": "content.type"
      },
      {
        "type": {
          "names": [
            "String"
          ]
        },
        "description": "The content message body",
        "name": "content.message"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "defaultvalue": "std",
        "description": "The urgence of the message. Value can be :   'high' Urgent message, 'middle' important message, 'low' information message, \"std' or null standard message",
        "name": "urgency"
      },
      {
        "type": {
          "names": [
            "DataStoreType"
          ]
        },
        "description": "used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\nDataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\nDataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\nDataStoreType.StoreTwinSide The messages are fully stored.</br>\nDataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\nDataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\nHowever a sender may want to indicate that a message is worth storing even though it might not match those rules\n(e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.",
        "name": "p_messagesDataStore"
      }
    ],
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<string>"
          ]
        },
        "description": "message the message new correction message sent. Throw an error if the send fails."
      }
    ],
    "longname": "module:ConversationsService#sendCorrectedChatMessage",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#sendCorrectedChatMessage",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method sendExistingFSMessage\n     * @instance\n     * @category MESSAGES\n     * @description\n     *    Send a message to this conversation <br>\n     * @return {Message} The message sent\n     * @param {Conversation} conversation\n     * @param {string} message\n     * @param {any} fileDescriptor\n     * @param {DataStoreType} p_messagesDataStore=undefined used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\n     * DataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\n     * DataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\n     * DataStoreType.StoreTwinSide The messages are fully stored.</br>\n     * DataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\n     * DataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\n     * However a sender may want to indicate that a message is worth storing even though it might not match those rules\n     * (e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 953,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "sendExistingFSMessage",
    "scope": "instance",
    "description": "Send a message to this conversation <br>",
    "returns": [
      {
        "type": {
          "names": [
            "Message"
          ]
        },
        "description": "The message sent"
      }
    ],
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "name": "message"
      },
      {
        "type": {
          "names": [
            "any"
          ]
        },
        "name": "fileDescriptor"
      },
      {
        "type": {
          "names": [
            "DataStoreType"
          ]
        },
        "description": "used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\nDataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\nDataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\nDataStoreType.StoreTwinSide The messages are fully stored.</br>\nDataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\nDataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\nHowever a sender may want to indicate that a message is worth storing even though it might not match those rules\n(e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.",
        "name": "p_messagesDataStore"
      }
    ],
    "longname": "module:ConversationsService#sendExistingFSMessage",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#sendExistingFSMessage",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method sendIsTypingState\n     * @category MESSAGES\n     * @instance\n     * @description\n     *    Switch the \"is typing\" state in a conversation<br>\n     * @param {Conversation} conversation The conversation recipient\n     * @param {boolean} status=false The status, true for setting \"is Typing\", false to remove it. Default Value : false.\n     * @param {DataStoreType} p_messagesDataStore=undefined used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\n     * DataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\n     * DataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\n     * DataStoreType.StoreTwinSide The messages are fully stored.</br>\n     * DataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\n     * DataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\n     * However a sender may want to indicate that a message is worth storing even though it might not match those rules\n     * (e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.</br>\n     * @return a promise with no success parameter\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1359,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "sendIsTypingState",
    "scope": "instance",
    "description": "Switch the \"is typing\" state in a conversation<br>",
    "params": [
      {
        "type": {
          "names": [
            "Conversation"
          ]
        },
        "description": "The conversation recipient",
        "name": "conversation"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "defaultvalue": false,
        "description": "The status, true for setting \"is Typing\", false to remove it. Default Value : false.",
        "name": "status"
      },
      {
        "type": {
          "names": [
            "DataStoreType"
          ]
        },
        "description": "used to override the general of SDK's parameter \"messagesDataStore\". default value `undefined` to use the general value.</br>\nDataStoreType.NoStore Tell the server to NOT store the messages for delay distribution or for history of the bot and the contact.</br>\nDataStoreType.NoPermanentStore Tell the server to NOT store the messages for history of the bot and the contact. But being stored temporarily as a normal part of delivery (e.g. if the recipient is offline at the time of sending).</br>\nDataStoreType.StoreTwinSide The messages are fully stored.</br>\nDataStoreType.UsestoreMessagesField to follow the storeMessages SDK's parameter behaviour.</br>\nDataStoreType.Store Offline storage and Message Archive Management (XEP-0313) [4] can define their own rules on what messages to store and usually only store messages that contain a body element.\nHowever a sender may want to indicate that a message is worth storing even though it might not match those rules\n(e.g. an encrypted message that carries the payload outside the body element). Such a message can be marked with a <store/> hint.</br>",
        "name": "p_messagesDataStore"
      }
    ],
    "returns": [
      {
        "description": "a promise with no success parameter"
      }
    ],
    "longname": "module:ConversationsService#sendIsTypingState",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#sendIsTypingState",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method showAllMatchingMessagesForAPeer\n     * @since 2.21.0\n     * @instance\n     * @category MESSAGES\n     * @description\n     * This API can be used to return all matching messages for one specific peer. This API can only be used by user himself. <br>\n     * @return {Promise<any>} An object of the result\n     *\n     *\n     * | Champ | Type | Description |\n     * | --- | --- | --- |\n     * | timestamp | Integer | Message timestamp in microseconds |\n     * | msgId | String | The message ID |\n     *\n     * @param {string} userId User unique identifier\n     * @param {string} substring Text to search\n     * @param {string} peer Peer JID\n     * @param {boolean} isRoom Is the peer a room ?\n     * @param {number} limit=20 Max number of matching messages references. Default value : 20\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1502,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "showAllMatchingMessagesForAPeer",
    "since": "2.21.0",
    "scope": "instance",
    "description": "This API can be used to return all matching messages for one specific peer. This API can only be used by user himself. <br>",
    "returns": [
      {
        "type": {
          "names": [
            "Promise.<any>"
          ]
        },
        "description": "An object of the result\n\n\n| Champ | Type | Description |\n| --- | --- | --- |\n| timestamp | Integer | Message timestamp in microseconds |\n| msgId | String | The message ID |"
      }
    ],
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "User unique identifier",
        "name": "userId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Text to search",
        "name": "substring"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "Peer JID",
        "name": "peer"
      },
      {
        "type": {
          "names": [
            "boolean"
          ]
        },
        "description": "Is the peer a room ?",
        "name": "isRoom"
      },
      {
        "type": {
          "names": [
            "number"
          ]
        },
        "defaultvalue": 20,
        "description": "Max number of matching messages references. Default value : 20",
        "name": "limit"
      }
    ],
    "longname": "module:ConversationsService#showAllMatchingMessagesForAPeer",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#showAllMatchingMessagesForAPeer",
    "$kind": "method"
  },
  {
    "comment": "/**\n     * @public\n     * @nodered true\n     * @method updateConversationBookmark\n     * @instance\n     * @category MESSAGES\n     * @async\n     * @since 2.21.0\n     * @return {Object} The result\n     *\n     *\n     * | Champ | Type | Description |\n     * | --- | --- | --- |\n     * | status | String | Status message. |\n     * | data | Object\\[\\] | No data (empty Array) |\n     *\n     * @description\n     *          This API can be used to set or replace a bookmarked message in a conversation. This API can only be used by user himself. </br>\n     * @param {string} userId User unique identifier.\n     * @param {string} conversationId conversation unique identifier (the dbId property in Conversation).\n     * @param {string} messageId message unique identifier.\n     */",
    "meta": {
      "filename": "ConversationsService.js",
      "lineno": 1400,
      "columnno": 4,
      "path": "/home/jenkins/workspace/cts_Rainbow-Node-SDK_LTSDelivery/lib/services",
      "code": {}
    },
    "access": "public",
    "tags": [
      {
        "originalTitle": "nodered",
        "title": "nodered",
        "text": "true",
        "value": "true"
      },
      {
        "originalTitle": "category",
        "title": "category",
        "text": "MESSAGES",
        "value": "MESSAGES"
      }
    ],
    "kind": "function",
    "name": "updateConversationBookmark",
    "scope": "instance",
    "async": true,
    "since": "2.21.0",
    "returns": [
      {
        "type": {
          "names": [
            "Object"
          ]
        },
        "description": "The result\n\n\n| Champ | Type | Description |\n| --- | --- | --- |\n| status | String | Status message. |\n| data | Object\\[\\] | No data (empty Array) |"
      }
    ],
    "description": "This API can be used to set or replace a bookmarked message in a conversation. This API can only be used by user himself. </br>",
    "params": [
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "User unique identifier.",
        "name": "userId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "conversation unique identifier (the dbId property in Conversation).",
        "name": "conversationId"
      },
      {
        "type": {
          "names": [
            "string"
          ]
        },
        "description": "message unique identifier.",
        "name": "messageId"
      }
    ],
    "longname": "module:ConversationsService#updateConversationBookmark",
    "memberof": "module:ConversationsService",
    "$longname": "ConversationsService#updateConversationBookmark",
    "$kind": "method"
  }
]